~medibuntu-maintainers/mplayer/medibuntu.precise

« back to all changes in this revision

Viewing changes to ffmpeg/doc/avconv.texi

  • Committer: Package Import Robot
  • Author(s): Reinhard Tartler
  • Date: 2012-01-12 22:23:28 UTC
  • mfrom: (0.4.7 sid)
  • mto: This revision was merged to the branch mainline in revision 76.
  • Revision ID: package-import@ubuntu.com-20120112222328-8jqdyodym3p84ygu
Tags: 2:1.0~rc4.dfsg1+svn34540-1
* New upstream snapshot
* upload to unstable

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
\input texinfo @c -*- texinfo -*-
 
2
 
 
3
@settitle avconv Documentation
 
4
@titlepage
 
5
@center @titlefont{avconv Documentation}
 
6
@end titlepage
 
7
 
 
8
@top
 
9
 
 
10
@contents
 
11
 
 
12
@chapter Synopsis
 
13
 
 
14
The generic syntax is:
 
15
 
 
16
@example
 
17
@c man begin SYNOPSIS
 
18
avconv [global options] [[infile options][@option{-i} @var{infile}]]... @{[outfile options] @var{outfile}@}...
 
19
@c man end
 
20
@end example
 
21
 
 
22
@chapter Description
 
23
@c man begin DESCRIPTION
 
24
 
 
25
avconv is a very fast video and audio converter that can also grab from
 
26
a live audio/video source. It can also convert between arbitrary sample
 
27
rates and resize video on the fly with a high quality polyphase filter.
 
28
 
 
29
avconv reads from an arbitrary number of input "files" (which can be regular
 
30
files, pipes, network streams, grabbing devices, etc.), specified by the
 
31
@code{-i} option, and writes to an arbitrary number of output "files", which are
 
32
specified by a plain output filename. Anything found on the command line which
 
33
cannot be interpreted as an option is considered to be an output filename.
 
34
 
 
35
Each input or output file can in principle contain any number of streams of
 
36
different types (video/audio/subtitle/attachment/data). Allowed number and/or
 
37
types of streams can be limited by the container format. Selecting, which
 
38
streams from which inputs go into output, is done either automatically or with
 
39
the @code{-map} option (see the Stream selection chapter).
 
40
 
 
41
To refer to input files in options, you must use their indices (0-based). E.g.
 
42
the first input file is @code{0}, the second is @code{1} etc. Similarly, streams
 
43
within a file are referred to by their indices. E.g. @code{2:3} refers to the
 
44
fourth stream in the third input file. See also the Stream specifiers chapter.
 
45
 
 
46
As a general rule, options are applied to the next specified
 
47
file. Therefore, order is important, and you can have the same
 
48
option on the command line multiple times. Each occurrence is
 
49
then applied to the next input or output file.
 
50
Exceptions from this rule are the global options (e.g. verbosity level),
 
51
which should be specified first.
 
52
 
 
53
Do not mix input and output files -- first specify all input files, then all
 
54
output files. Also do not mix options which belong to different files. All
 
55
options apply ONLY to the next input or output file and are reset between files.
 
56
 
 
57
@itemize
 
58
@item
 
59
To set the video bitrate of the output file to 64kbit/s:
 
60
@example
 
61
avconv -i input.avi -b 64k output.avi
 
62
@end example
 
63
 
 
64
@item
 
65
To force the frame rate of the output file to 24 fps:
 
66
@example
 
67
avconv -i input.avi -r 24 output.avi
 
68
@end example
 
69
 
 
70
@item
 
71
To force the frame rate of the input file (valid for raw formats only)
 
72
to 1 fps and the frame rate of the output file to 24 fps:
 
73
@example
 
74
avconv -r 1 -i input.m2v -r 24 output.avi
 
75
@end example
 
76
@end itemize
 
77
 
 
78
The format option may be needed for raw input files.
 
79
 
 
80
@c man end DESCRIPTION
 
81
 
 
82
@chapter Stream selection
 
83
@c man begin STREAM SELECTION
 
84
 
 
85
By default avconv tries to pick the "best" stream of each type present in input
 
86
files and add them to each output file. For video, this means the highest
 
87
resolution, for audio the highest channel count. For subtitle it's simply the
 
88
first subtitle stream.
 
89
 
 
90
You can disable some of those defaults by using @code{-vn/-an/-sn} options. For
 
91
full manual control, use the @code{-map} option, which disables the defaults just
 
92
described.
 
93
 
 
94
@c man end STREAM SELECTION
 
95
 
 
96
@chapter Options
 
97
@c man begin OPTIONS
 
98
 
 
99
@include avtools-common-opts.texi
 
100
 
 
101
@section Main options
 
102
 
 
103
@table @option
 
104
 
 
105
@item -f @var{fmt} (@emph{input/output})
 
106
Force input or output file format. The format is normally autodetected for input
 
107
files and guessed from file extension for output files, so this option is not
 
108
needed in most cases.
 
109
 
 
110
@item -i @var{filename} (@emph{input})
 
111
input file name
 
112
 
 
113
@item -y (@emph{global})
 
114
Overwrite output files without asking.
 
115
 
 
116
@item -c[:@var{stream_specifier}] @var{codec} (@emph{input/output,per-stream})
 
117
@itemx -codec[:@var{stream_specifier}] @var{codec} (@emph{input/output,per-stream})
 
118
Select an encoder (when used before an output file) or a decoder (when used
 
119
before an input file) for one or more streams. @var{codec} is the name of a
 
120
decoder/encoder or a special value @code{copy} (output only) to indicate that
 
121
the stream is not to be reencoded.
 
122
 
 
123
For example
 
124
@example
 
125
avconv -i INPUT -map 0 -c:v libx264 -c:a copy OUTPUT
 
126
@end example
 
127
encodes all video streams with libx264 and copies all audio streams.
 
128
 
 
129
For each stream, the last matching @code{c} option is applied, so
 
130
@example
 
131
avconv -i INPUT -map 0 -c copy -c:v:1 libx264 -c:a:137 libvorbis OUTPUT
 
132
@end example
 
133
will copy all the streams except the second video, which will be encoded with
 
134
libx264, and the 138th audio, which will be encoded with libvorbis.
 
135
 
 
136
@item -t @var{duration} (@emph{output})
 
137
Stop writing the output after its duration reaches @var{duration}.
 
138
@var{duration} may be a number in seconds, or in @code{hh:mm:ss[.xxx]} form.
 
139
 
 
140
@item -fs @var{limit_size} (@emph{output})
 
141
Set the file size limit.
 
142
 
 
143
@item -ss @var{position} (@emph{input/output})
 
144
When used as an input option (before @code{-i}), seeks in this input file to
 
145
@var{position}. When used as an output option (before an output filename),
 
146
decodes but discards input until the timestamps reach @var{position}. This is
 
147
slower, but more accurate.
 
148
 
 
149
@var{position} may be either in seconds or in @code{hh:mm:ss[.xxx]} form.
 
150
 
 
151
@item -itsoffset @var{offset} (@emph{input})
 
152
Set the input time offset in seconds.
 
153
@code{[-]hh:mm:ss[.xxx]} syntax is also supported.
 
154
The offset is added to the timestamps of the input files.
 
155
Specifying a positive offset means that the corresponding
 
156
streams are delayed by @var{offset} seconds.
 
157
 
 
158
@item -metadata[:metadata_specifier] @var{key}=@var{value} (@emph{output,per-metadata})
 
159
Set a metadata key/value pair.
 
160
 
 
161
An optional @var{metadata_specifier} may be given to set metadata
 
162
on streams or chapters. See @code{-map_metadata} documentation for
 
163
details.
 
164
 
 
165
This option overrides metadata set with @code{-map_metadata}. It is
 
166
also possible to delete metadata by using an empty value.
 
167
 
 
168
For example, for setting the title in the output file:
 
169
@example
 
170
avconv -i in.avi -metadata title="my title" out.flv
 
171
@end example
 
172
 
 
173
To set the language of the first audio stream:
 
174
@example
 
175
avconv -i INPUT -metadata:s:a:0 language=eng OUTPUT
 
176
@end example
 
177
 
 
178
@item -target @var{type} (@emph{output})
 
179
Specify target file type (@code{vcd}, @code{svcd}, @code{dvd}, @code{dv},
 
180
@code{dv50}). @var{type} may be prefixed with @code{pal-}, @code{ntsc-} or
 
181
@code{film-} to use the corresponding standard. All the format options
 
182
(bitrate, codecs, buffer sizes) are then set automatically. You can just type:
 
183
 
 
184
@example
 
185
avconv -i myfile.avi -target vcd /tmp/vcd.mpg
 
186
@end example
 
187
 
 
188
Nevertheless you can specify additional options as long as you know
 
189
they do not conflict with the standard, as in:
 
190
 
 
191
@example
 
192
avconv -i myfile.avi -target vcd -bf 2 /tmp/vcd.mpg
 
193
@end example
 
194
 
 
195
@item -dframes @var{number} (@emph{output})
 
196
Set the number of data frames to record. This is an alias for @code{-frames:d}.
 
197
 
 
198
@item -frames[:@var{stream_specifier}] @var{framecount} (@emph{output,per-stream})
 
199
Stop writing to the stream after @var{framecount} frames.
 
200
 
 
201
@item -q[:@var{stream_specifier}] @var{q} (@emph{output,per-stream})
 
202
@itemx -qscale[:@var{stream_specifier}] @var{q} (@emph{output,per-stream})
 
203
Use fixed quality scale (VBR). The meaning of @var{q} is
 
204
codec-dependent.
 
205
 
 
206
@item -filter[:@var{stream_specifier}] @var{filter_graph} (@emph{output,per-stream})
 
207
@var{filter_graph} is a description of the filter graph to apply to
 
208
the stream. Use @code{-filters} to show all the available filters
 
209
(including also sources and sinks).
 
210
@item -pre[:@var{stream_specifier}] @var{preset_name} (@emph{output,per-stream})
 
211
Specify the preset for matching stream(s).
 
212
 
 
213
@item -stats (@emph{global})
 
214
Print encoding progress/statistics. On by default.
 
215
 
 
216
@item -attach @var{filename} (@emph{output})
 
217
Add an attachment to the output file. This is supported by a few formats
 
218
like Matroska for e.g. fonts used in rendering subtitles. Attachments
 
219
are implemented as a specific type of stream, so this option will add
 
220
a new stream to the file. It is then possible to use per-stream options
 
221
on this stream in the usual way. Attachment streams created with this
 
222
option will be created after all the other streams (i.e. those created
 
223
with @code{-map} or automatic mappings).
 
224
 
 
225
Note that for Matroska you also have to set the mimetype metadata tag:
 
226
@example
 
227
avconv -i INPUT -attach DejaVuSans.ttf -metadata:s:2 mimetype=application/x-truetype-font out.mkv
 
228
@end example
 
229
(assuming that the attachment stream will be third in the output file).
 
230
 
 
231
@item -dump_attachment[:@var{stream_specifier}] @var{filename} (@emph{input,per-stream})
 
232
Extract the matching attachment stream into a file named @var{filename}. If
 
233
@var{filename} is empty, then the value of the @code{filename} metadata tag
 
234
will be used.
 
235
 
 
236
E.g. to extract the first attachment to a file named 'out.ttf':
 
237
@example
 
238
avconv -dump_attachment:t:0 out.ttf INPUT
 
239
@end example
 
240
To extract all attachments to files determined by the @code{filename} tag:
 
241
@example
 
242
avconv -dump_attachment:t "" INPUT
 
243
@end example
 
244
 
 
245
Technical note -- attachments are implemented as codec extradata, so this
 
246
option can actually be used to extract extradata from any stream, not just
 
247
attachments.
 
248
 
 
249
@end table
 
250
 
 
251
@section Video Options
 
252
 
 
253
@table @option
 
254
@item -vframes @var{number} (@emph{output})
 
255
Set the number of video frames to record. This is an alias for @code{-frames:v}.
 
256
@item -r[:@var{stream_specifier}] @var{fps} (@emph{input/output,per-stream})
 
257
Set frame rate (Hz value, fraction or abbreviation), (default = 25).
 
258
@item -s[:@var{stream_specifier}] @var{size} (@emph{input/output,per-stream})
 
259
Set frame size. The format is @samp{wxh} (default - same as source).
 
260
The following abbreviations are recognized:
 
261
@table @samp
 
262
@item sqcif
 
263
128x96
 
264
@item qcif
 
265
176x144
 
266
@item cif
 
267
352x288
 
268
@item 4cif
 
269
704x576
 
270
@item 16cif
 
271
1408x1152
 
272
@item qqvga
 
273
160x120
 
274
@item qvga
 
275
320x240
 
276
@item vga
 
277
640x480
 
278
@item svga
 
279
800x600
 
280
@item xga
 
281
1024x768
 
282
@item uxga
 
283
1600x1200
 
284
@item qxga
 
285
2048x1536
 
286
@item sxga
 
287
1280x1024
 
288
@item qsxga
 
289
2560x2048
 
290
@item hsxga
 
291
5120x4096
 
292
@item wvga
 
293
852x480
 
294
@item wxga
 
295
1366x768
 
296
@item wsxga
 
297
1600x1024
 
298
@item wuxga
 
299
1920x1200
 
300
@item woxga
 
301
2560x1600
 
302
@item wqsxga
 
303
3200x2048
 
304
@item wquxga
 
305
3840x2400
 
306
@item whsxga
 
307
6400x4096
 
308
@item whuxga
 
309
7680x4800
 
310
@item cga
 
311
320x200
 
312
@item ega
 
313
640x350
 
314
@item hd480
 
315
852x480
 
316
@item hd720
 
317
1280x720
 
318
@item hd1080
 
319
1920x1080
 
320
@end table
 
321
 
 
322
@item -aspect[:@var{stream_specifier}] @var{aspect} (@emph{output,per-stream})
 
323
Set the video display aspect ratio specified by @var{aspect}.
 
324
 
 
325
@var{aspect} can be a floating point number string, or a string of the
 
326
form @var{num}:@var{den}, where @var{num} and @var{den} are the
 
327
numerator and denominator of the aspect ratio. For example "4:3",
 
328
"16:9", "1.3333", and "1.7777" are valid argument values.
 
329
 
 
330
@item -vn (@emph{output})
 
331
Disable video recording.
 
332
@item -bt @var{tolerance}
 
333
Set video bitrate tolerance (in bits, default 4000k).
 
334
Has a minimum value of: (target_bitrate/target_framerate).
 
335
In 1-pass mode, bitrate tolerance specifies how far ratecontrol is
 
336
willing to deviate from the target average bitrate value. This is
 
337
not related to min/max bitrate. Lowering tolerance too much has
 
338
an adverse effect on quality.
 
339
@item -maxrate @var{bitrate}
 
340
Set max video bitrate (in bit/s).
 
341
Requires -bufsize to be set.
 
342
@item -minrate @var{bitrate}
 
343
Set min video bitrate (in bit/s).
 
344
Most useful in setting up a CBR encode:
 
345
@example
 
346
avconv -i myfile.avi -b 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k out.m2v
 
347
@end example
 
348
It is of little use elsewise.
 
349
@item -bufsize @var{size}
 
350
Set video buffer verifier buffer size (in bits).
 
351
@item -vcodec @var{codec} (@emph{output})
 
352
Set the video codec. This is an alias for @code{-codec:v}.
 
353
@item -same_quant
 
354
Use same quantizer as source (implies VBR).
 
355
 
 
356
Note that this is NOT SAME QUALITY. Do not use this option unless you know you
 
357
need it.
 
358
 
 
359
@item -pass @var{n}
 
360
Select the pass number (1 or 2). It is used to do two-pass
 
361
video encoding. The statistics of the video are recorded in the first
 
362
pass into a log file (see also the option -passlogfile),
 
363
and in the second pass that log file is used to generate the video
 
364
at the exact requested bitrate.
 
365
On pass 1, you may just deactivate audio and set output to null,
 
366
examples for Windows and Unix:
 
367
@example
 
368
avconv -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y NUL
 
369
avconv -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y /dev/null
 
370
@end example
 
371
 
 
372
@item -passlogfile @var{prefix} (@emph{global})
 
373
Set two-pass log file name prefix to @var{prefix}, the default file name
 
374
prefix is ``av2pass''. The complete file name will be
 
375
@file{PREFIX-N.log}, where N is a number specific to the output
 
376
stream.
 
377
 
 
378
@item -vf @var{filter_graph} (@emph{output})
 
379
@var{filter_graph} is a description of the filter graph to apply to
 
380
the input video.
 
381
Use the option "-filters" to show all the available filters (including
 
382
also sources and sinks).  This is an alias for @code{-filter:v}.
 
383
 
 
384
@end table
 
385
 
 
386
@section Advanced Video Options
 
387
 
 
388
@table @option
 
389
@item -pix_fmt[:@var{stream_specifier}] @var{format} (@emph{input/output,per-stream})
 
390
Set pixel format. Use @code{-pix_fmts} to show all the supported
 
391
pixel formats.
 
392
@item -sws_flags @var{flags} (@emph{input/output})
 
393
Set SwScaler flags.
 
394
@item -g @var{gop_size}
 
395
Set the group of pictures size.
 
396
@item -vdt @var{n}
 
397
Discard threshold.
 
398
@item -qmin @var{q}
 
399
minimum video quantizer scale (VBR)
 
400
@item -qmax @var{q}
 
401
maximum video quantizer scale (VBR)
 
402
@item -qdiff @var{q}
 
403
maximum difference between the quantizer scales (VBR)
 
404
@item -qblur @var{blur}
 
405
video quantizer scale blur (VBR) (range 0.0 - 1.0)
 
406
@item -qcomp @var{compression}
 
407
video quantizer scale compression (VBR) (default 0.5).
 
408
Constant of ratecontrol equation. Recommended range for default rc_eq: 0.0-1.0
 
409
 
 
410
@item -lmin @var{lambda}
 
411
minimum video lagrange factor (VBR)
 
412
@item -lmax @var{lambda}
 
413
max video lagrange factor (VBR)
 
414
@item -mblmin @var{lambda}
 
415
minimum macroblock quantizer scale (VBR)
 
416
@item -mblmax @var{lambda}
 
417
maximum macroblock quantizer scale (VBR)
 
418
 
 
419
These four options (lmin, lmax, mblmin, mblmax) use 'lambda' units,
 
420
but you may use the QP2LAMBDA constant to easily convert from 'q' units:
 
421
@example
 
422
avconv -i src.ext -lmax 21*QP2LAMBDA dst.ext
 
423
@end example
 
424
 
 
425
@item -rc_init_cplx @var{complexity}
 
426
initial complexity for single pass encoding
 
427
@item -b_qfactor @var{factor}
 
428
qp factor between P- and B-frames
 
429
@item -i_qfactor @var{factor}
 
430
qp factor between P- and I-frames
 
431
@item -b_qoffset @var{offset}
 
432
qp offset between P- and B-frames
 
433
@item -i_qoffset @var{offset}
 
434
qp offset between P- and I-frames
 
435
@item -rc_eq @var{equation}
 
436
Set rate control equation (see section "Expression Evaluation")
 
437
(default = @code{tex^qComp}).
 
438
 
 
439
When computing the rate control equation expression, besides the
 
440
standard functions defined in the section "Expression Evaluation", the
 
441
following functions are available:
 
442
@table @var
 
443
@item bits2qp(bits)
 
444
@item qp2bits(qp)
 
445
@end table
 
446
 
 
447
and the following constants are available:
 
448
@table @var
 
449
@item iTex
 
450
@item pTex
 
451
@item tex
 
452
@item mv
 
453
@item fCode
 
454
@item iCount
 
455
@item mcVar
 
456
@item var
 
457
@item isI
 
458
@item isP
 
459
@item isB
 
460
@item avgQP
 
461
@item qComp
 
462
@item avgIITex
 
463
@item avgPITex
 
464
@item avgPPTex
 
465
@item avgBPTex
 
466
@item avgTex
 
467
@end table
 
468
 
 
469
@item -rc_override[:@var{stream_specifier}] @var{override} (@emph{output,per-stream})
 
470
rate control override for specific intervals
 
471
@item -me_method @var{method}
 
472
Set motion estimation method to @var{method}.
 
473
Available methods are (from lowest to best quality):
 
474
@table @samp
 
475
@item zero
 
476
Try just the (0, 0) vector.
 
477
@item phods
 
478
@item log
 
479
@item x1
 
480
@item hex
 
481
@item umh
 
482
@item epzs
 
483
(default method)
 
484
@item full
 
485
exhaustive search (slow and marginally better than epzs)
 
486
@end table
 
487
 
 
488
@item -er @var{n}
 
489
Set error resilience to @var{n}.
 
490
@table @samp
 
491
@item 1
 
492
FF_ER_CAREFUL (default)
 
493
@item 2
 
494
FF_ER_COMPLIANT
 
495
@item 3
 
496
FF_ER_AGGRESSIVE
 
497
@item 4
 
498
FF_ER_VERY_AGGRESSIVE
 
499
@end table
 
500
 
 
501
@item -ec @var{bit_mask}
 
502
Set error concealment to @var{bit_mask}. @var{bit_mask} is a bit mask of
 
503
the following values:
 
504
@table @samp
 
505
@item 1
 
506
FF_EC_GUESS_MVS (default = enabled)
 
507
@item 2
 
508
FF_EC_DEBLOCK (default = enabled)
 
509
@end table
 
510
 
 
511
@item -bf @var{frames}
 
512
Use 'frames' B-frames (supported for MPEG-1, MPEG-2 and MPEG-4).
 
513
@item -mbd @var{mode}
 
514
macroblock decision
 
515
@table @samp
 
516
@item 0
 
517
FF_MB_DECISION_SIMPLE: Use mb_cmp (cannot change it yet in avconv).
 
518
@item 1
 
519
FF_MB_DECISION_BITS: Choose the one which needs the fewest bits.
 
520
@item 2
 
521
FF_MB_DECISION_RD: rate distortion
 
522
@end table
 
523
 
 
524
@item -bug @var{param}
 
525
Work around encoder bugs that are not auto-detected.
 
526
@item -strict @var{strictness}
 
527
How strictly to follow the standards.
 
528
 
 
529
@item -deinterlace
 
530
Deinterlace pictures.
 
531
@item -vstats
 
532
Dump video coding statistics to @file{vstats_HHMMSS.log}.
 
533
@item -vstats_file @var{file}
 
534
Dump video coding statistics to @var{file}.
 
535
@item -top[:@var{stream_specifier}] @var{n} (@emph{output,per-stream})
 
536
top=1/bottom=0/auto=-1 field first
 
537
@item -dc @var{precision}
 
538
Intra_dc_precision.
 
539
@item -vtag @var{fourcc/tag} (@emph{output})
 
540
Force video tag/fourcc. This is an alias for @code{-tag:v}.
 
541
@item -qphist (@emph{global})
 
542
Show QP histogram.
 
543
@item -force_key_frames[:@var{stream_specifier}] @var{time}[,@var{time}...] (@emph{output,per-stream})
 
544
Force key frames at the specified timestamps, more precisely at the first
 
545
frames after each specified time.
 
546
This option can be useful to ensure that a seek point is present at a
 
547
chapter mark or any other designated place in the output file.
 
548
The timestamps must be specified in ascending order.
 
549
 
 
550
@item -copyinkf[:@var{stream_specifier}] (@emph{output,per-stream})
 
551
When doing stream copy, copy also non-key frames found at the
 
552
beginning.
 
553
@end table
 
554
 
 
555
@section Audio Options
 
556
 
 
557
@table @option
 
558
@item -aframes @var{number} (@emph{output})
 
559
Set the number of audio frames to record. This is an alias for @code{-frames:a}.
 
560
@item -ar[:@var{stream_specifier}] @var{freq} (@emph{input/output,per-stream})
 
561
Set the audio sampling frequency. For output streams it is set by
 
562
default to the frequency of the corresponding input stream. For input
 
563
streams this option only makes sense for audio grabbing devices and raw
 
564
demuxers and is mapped to the corresponding demuxer options.
 
565
@item -aq @var{q} (@emph{output})
 
566
Set the audio quality (codec-specific, VBR). This is an alias for -q:a.
 
567
@item -ac[:@var{stream_specifier}] @var{channels} (@emph{input/output,per-stream})
 
568
Set the number of audio channels. For output streams it is set by
 
569
default to the number of input audio channels. For input streams
 
570
this option only makes sense for audio grabbing devices and raw demuxers
 
571
and is mapped to the corresponding demuxer options.
 
572
@item -an (@emph{output})
 
573
Disable audio recording.
 
574
@item -acodec @var{codec} (@emph{input/output})
 
575
Set the audio codec. This is an alias for @code{-codec:a}.
 
576
@item -sample_fmt[:@var{stream_specifier}] @var{sample_fmt} (@emph{output,per-stream})
 
577
Set the audio sample format. Use @code{-sample_fmts} to get a list
 
578
of supported sample formats.
 
579
@end table
 
580
 
 
581
@section Advanced Audio options:
 
582
 
 
583
@table @option
 
584
@item -atag @var{fourcc/tag} (@emph{output})
 
585
Force audio tag/fourcc. This is an alias for @code{-tag:a}.
 
586
@item -audio_service_type @var{type}
 
587
Set the type of service that the audio stream contains.
 
588
@table @option
 
589
@item ma
 
590
Main Audio Service (default)
 
591
@item ef
 
592
Effects
 
593
@item vi
 
594
Visually Impaired
 
595
@item hi
 
596
Hearing Impaired
 
597
@item di
 
598
Dialogue
 
599
@item co
 
600
Commentary
 
601
@item em
 
602
Emergency
 
603
@item vo
 
604
Voice Over
 
605
@item ka
 
606
Karaoke
 
607
@end table
 
608
@end table
 
609
 
 
610
@section Subtitle options:
 
611
 
 
612
@table @option
 
613
@item -scodec @var{codec} (@emph{input/output})
 
614
Set the subtitle codec. This is an alias for @code{-codec:s}.
 
615
@item -sn (@emph{output})
 
616
Disable subtitle recording.
 
617
@end table
 
618
 
 
619
@section Audio/Video grab options
 
620
 
 
621
@table @option
 
622
@item -isync (@emph{global})
 
623
Synchronize read on input.
 
624
@end table
 
625
 
 
626
@section Advanced options
 
627
 
 
628
@table @option
 
629
@item -map [-]@var{input_file_id}[:@var{stream_specifier}][,@var{sync_file_id}[:@var{stream_specifier}]] (@emph{output})
 
630
 
 
631
Designate one or more input streams as a source for the output file. Each input
 
632
stream is identified by the input file index @var{input_file_id} and
 
633
the input stream index @var{input_stream_id} within the input
 
634
file. Both indices start at 0. If specified,
 
635
@var{sync_file_id}:@var{stream_specifier} sets which input stream
 
636
is used as a presentation sync reference.
 
637
 
 
638
The first @code{-map} option on the command line specifies the
 
639
source for output stream 0, the second @code{-map} option specifies
 
640
the source for output stream 1, etc.
 
641
 
 
642
A @code{-} character before the stream identifier creates a "negative" mapping.
 
643
It disables matching streams from already created mappings.
 
644
 
 
645
For example, to map ALL streams from the first input file to output
 
646
@example
 
647
avconv -i INPUT -map 0 output
 
648
@end example
 
649
 
 
650
For example, if you have two audio streams in the first input file,
 
651
these streams are identified by "0:0" and "0:1". You can use
 
652
@code{-map} to select which streams to place in an output file. For
 
653
example:
 
654
@example
 
655
avconv -i INPUT -map 0:1 out.wav
 
656
@end example
 
657
will map the input stream in @file{INPUT} identified by "0:1" to
 
658
the (single) output stream in @file{out.wav}.
 
659
 
 
660
For example, to select the stream with index 2 from input file
 
661
@file{a.mov} (specified by the identifier "0:2"), and stream with
 
662
index 6 from input @file{b.mov} (specified by the identifier "1:6"),
 
663
and copy them to the output file @file{out.mov}:
 
664
@example
 
665
avconv -i a.mov -i b.mov -c copy -map 0:2 -map 1:6 out.mov
 
666
@end example
 
667
 
 
668
To select all video and the third audio stream from an input file:
 
669
@example
 
670
avconv -i INPUT -map 0:v -map 0:a:2 OUTPUT
 
671
@end example
 
672
 
 
673
To map all the streams except the second audio, use negative mappings
 
674
@example
 
675
avconv -i INPUT -map 0 -map -0:a:1 OUTPUT
 
676
@end example
 
677
 
 
678
Note that using this option disables the default mappings for this output file.
 
679
 
 
680
@item -map_metadata[:@var{metadata_spec_out}] @var{infile}[:@var{metadata_spec_in}] (@emph{output,per-metadata})
 
681
Set metadata information of the next output file from @var{infile}. Note that
 
682
those are file indices (zero-based), not filenames.
 
683
Optional @var{metadata_spec_in/out} parameters specify, which metadata to copy.
 
684
A metadata specifier can have the following forms:
 
685
@table @option
 
686
@item @var{g}
 
687
global metadata, i.e. metadata that applies to the whole file
 
688
 
 
689
@item @var{s}[:@var{stream_spec}]
 
690
per-stream metadata. @var{stream_spec} is a stream specifier as described
 
691
in the @ref{Stream specifiers} chapter. In an input metadata specifier, the first
 
692
matching stream is copied from. In an output metadata specifier, all matching
 
693
streams are copied to.
 
694
 
 
695
@item @var{c}:@var{chapter_index}
 
696
per-chapter metadata. @var{chapter_index} is the zero-based chapter index.
 
697
 
 
698
@item @var{p}:@var{program_index}
 
699
per-program metadata. @var{program_index} is the zero-based program index.
 
700
@end table
 
701
If metadata specifier is omitted, it defaults to global.
 
702
 
 
703
By default, global metadata is copied from the first input file,
 
704
per-stream and per-chapter metadata is copied along with streams/chapters. These
 
705
default mappings are disabled by creating any mapping of the relevant type. A negative
 
706
file index can be used to create a dummy mapping that just disables automatic copying.
 
707
 
 
708
For example to copy metadata from the first stream of the input file to global metadata
 
709
of the output file:
 
710
@example
 
711
avconv -i in.ogg -map_metadata 0:s:0 out.mp3
 
712
@end example
 
713
 
 
714
To do the reverse, i.e. copy global metadata to all audio streams:
 
715
@example
 
716
avconv -i in.mkv -map_metadata:s:a 0:g out.mkv
 
717
@end example
 
718
Note that simple @code{0} would work as well in this example, since global
 
719
metadata is assumed by default.
 
720
 
 
721
@item -map_chapters @var{input_file_index} (@emph{output})
 
722
Copy chapters from input file with index @var{input_file_index} to the next
 
723
output file. If no chapter mapping is specified, then chapters are copied from
 
724
the first input file with at least one chapter. Use a negative file index to
 
725
disable any chapter copying.
 
726
@item -debug
 
727
Print specific debug info.
 
728
@item -benchmark (@emph{global})
 
729
Show benchmarking information at the end of an encode.
 
730
Shows CPU time used and maximum memory consumption.
 
731
Maximum memory consumption is not supported on all systems,
 
732
it will usually display as 0 if not supported.
 
733
@item -timelimit @var{duration} (@emph{global})
 
734
Exit after avconv has been running for @var{duration} seconds.
 
735
@item -dump (@emph{global})
 
736
Dump each input packet to stderr.
 
737
@item -hex (@emph{global})
 
738
When dumping packets, also dump the payload.
 
739
@item -ps @var{size}
 
740
Set RTP payload size in bytes.
 
741
@item -re (@emph{input})
 
742
Read input at native frame rate. Mainly used to simulate a grab device.
 
743
@item -threads @var{count}
 
744
Thread count.
 
745
@item -vsync @var{parameter}
 
746
Video sync method.
 
747
 
 
748
@table @option
 
749
@item passthrough
 
750
Each frame is passed with its timestamp from the demuxer to the muxer.
 
751
@item cfr
 
752
Frames will be duplicated and dropped to achieve exactly the requested
 
753
constant framerate.
 
754
@item vfr
 
755
Frames are passed through with their timestamp or dropped so as to
 
756
prevent 2 frames from having the same timestamp.
 
757
@item auto
 
758
Chooses between 1 and 2 depending on muxer capabilities. This is the
 
759
default method.
 
760
@end table
 
761
 
 
762
With -map you can select from which stream the timestamps should be
 
763
taken. You can leave either video or audio unchanged and sync the
 
764
remaining stream(s) to the unchanged one.
 
765
 
 
766
@item -async @var{samples_per_second}
 
767
Audio sync method. "Stretches/squeezes" the audio stream to match the timestamps,
 
768
the parameter is the maximum samples per second by which the audio is changed.
 
769
-async 1 is a special case where only the start of the audio stream is corrected
 
770
without any later correction.
 
771
@item -copyts
 
772
Copy timestamps from input to output.
 
773
@item -copytb
 
774
Copy input stream time base from input to output when stream copying.
 
775
@item -shortest
 
776
Finish encoding when the shortest input stream ends.
 
777
@item -dts_delta_threshold
 
778
Timestamp discontinuity delta threshold.
 
779
@item -muxdelay @var{seconds} (@emph{input})
 
780
Set the maximum demux-decode delay.
 
781
@item -muxpreload @var{seconds} (@emph{input})
 
782
Set the initial demux-decode delay.
 
783
@item -streamid @var{output-stream-index}:@var{new-value} (@emph{output})
 
784
Assign a new stream-id value to an output stream. This option should be
 
785
specified prior to the output filename to which it applies.
 
786
For the situation where multiple output files exist, a streamid
 
787
may be reassigned to a different value.
 
788
 
 
789
For example, to set the stream 0 PID to 33 and the stream 1 PID to 36 for
 
790
an output mpegts file:
 
791
@example
 
792
avconv -i infile -streamid 0:33 -streamid 1:36 out.ts
 
793
@end example
 
794
 
 
795
@item -bsf[:@var{stream_specifier}] @var{bitstream_filters} (@emph{output,per-stream})
 
796
Set bitstream filters for matching streams. @var{bistream_filters} is
 
797
a comma-separated list of bitstream filters. Use the @code{-bsfs} option
 
798
to get the list of bitstream filters.
 
799
@example
 
800
avconv -i h264.mp4 -c:v copy -vbsf h264_mp4toannexb -an out.h264
 
801
@end example
 
802
@example
 
803
avconv -i file.mov -an -vn -sbsf mov2textsub -c:s copy -f rawvideo sub.txt
 
804
@end example
 
805
 
 
806
@item -tag[:@var{stream_specifier}] @var{codec_tag} (@emph{output,per-stream})
 
807
Force a tag/fourcc for matching streams.
 
808
@end table
 
809
@c man end OPTIONS
 
810
 
 
811
@chapter Tips
 
812
@c man begin TIPS
 
813
 
 
814
@itemize
 
815
@item
 
816
For streaming at very low bitrate application, use a low frame rate
 
817
and a small GOP size. This is especially true for RealVideo where
 
818
the Linux player does not seem to be very fast, so it can miss
 
819
frames. An example is:
 
820
 
 
821
@example
 
822
avconv -g 3 -r 3 -t 10 -b 50k -s qcif -f rv10 /tmp/b.rm
 
823
@end example
 
824
 
 
825
@item
 
826
The parameter 'q' which is displayed while encoding is the current
 
827
quantizer. The value 1 indicates that a very good quality could
 
828
be achieved. The value 31 indicates the worst quality. If q=31 appears
 
829
too often, it means that the encoder cannot compress enough to meet
 
830
your bitrate. You must either increase the bitrate, decrease the
 
831
frame rate or decrease the frame size.
 
832
 
 
833
@item
 
834
If your computer is not fast enough, you can speed up the
 
835
compression at the expense of the compression ratio. You can use
 
836
'-me zero' to speed up motion estimation, and '-intra' to disable
 
837
motion estimation completely (you have only I-frames, which means it
 
838
is about as good as JPEG compression).
 
839
 
 
840
@item
 
841
To have very low audio bitrates, reduce the sampling frequency
 
842
(down to 22050 Hz for MPEG audio, 22050 or 11025 for AC-3).
 
843
 
 
844
@item
 
845
To have a constant quality (but a variable bitrate), use the option
 
846
'-qscale n' when 'n' is between 1 (excellent quality) and 31 (worst
 
847
quality).
 
848
 
 
849
@end itemize
 
850
@c man end TIPS
 
851
 
 
852
@chapter Examples
 
853
@c man begin EXAMPLES
 
854
 
 
855
@section Preset files
 
856
 
 
857
A preset file contains a sequence of @var{option=value} pairs, one for
 
858
each line, specifying a sequence of options which can be specified also on
 
859
the command line. Lines starting with the hash ('#') character are ignored and
 
860
are used to provide comments. Empty lines are also ignored. Check the
 
861
@file{presets} directory in the Libav source tree for examples.
 
862
 
 
863
Preset files are specified with the @code{pre} option, this option takes a
 
864
preset name as input.  Avconv searches for a file named @var{preset_name}.avpreset in
 
865
the directories @file{$AVCONV_DATADIR} (if set), and @file{$HOME/.avconv}, and in
 
866
the data directory defined at configuration time (usually @file{$PREFIX/share/avconv})
 
867
in that order.  For example, if the argument is @code{libx264-max}, it will
 
868
search for the file @file{libx264-max.avpreset}.
 
869
 
 
870
@section Video and Audio grabbing
 
871
 
 
872
If you specify the input format and device then avconv can grab video
 
873
and audio directly.
 
874
 
 
875
@example
 
876
avconv -f oss -i /dev/dsp -f video4linux2 -i /dev/video0 /tmp/out.mpg
 
877
@end example
 
878
 
 
879
Note that you must activate the right video source and channel before
 
880
launching avconv with any TV viewer such as
 
881
@uref{http://linux.bytesex.org/xawtv/, xawtv} by Gerd Knorr. You also
 
882
have to set the audio recording levels correctly with a
 
883
standard mixer.
 
884
 
 
885
@section X11 grabbing
 
886
 
 
887
Grab the X11 display with avconv via
 
888
 
 
889
@example
 
890
avconv -f x11grab -s cif -r 25 -i :0.0 /tmp/out.mpg
 
891
@end example
 
892
 
 
893
0.0 is display.screen number of your X11 server, same as
 
894
the DISPLAY environment variable.
 
895
 
 
896
@example
 
897
avconv -f x11grab -s cif -r 25 -i :0.0+10,20 /tmp/out.mpg
 
898
@end example
 
899
 
 
900
0.0 is display.screen number of your X11 server, same as the DISPLAY environment
 
901
variable. 10 is the x-offset and 20 the y-offset for the grabbing.
 
902
 
 
903
@section Video and Audio file format conversion
 
904
 
 
905
Any supported file format and protocol can serve as input to avconv:
 
906
 
 
907
Examples:
 
908
@itemize
 
909
@item
 
910
You can use YUV files as input:
 
911
 
 
912
@example
 
913
avconv -i /tmp/test%d.Y /tmp/out.mpg
 
914
@end example
 
915
 
 
916
It will use the files:
 
917
@example
 
918
/tmp/test0.Y, /tmp/test0.U, /tmp/test0.V,
 
919
/tmp/test1.Y, /tmp/test1.U, /tmp/test1.V, etc...
 
920
@end example
 
921
 
 
922
The Y files use twice the resolution of the U and V files. They are
 
923
raw files, without header. They can be generated by all decent video
 
924
decoders. You must specify the size of the image with the @option{-s} option
 
925
if avconv cannot guess it.
 
926
 
 
927
@item
 
928
You can input from a raw YUV420P file:
 
929
 
 
930
@example
 
931
avconv -i /tmp/test.yuv /tmp/out.avi
 
932
@end example
 
933
 
 
934
test.yuv is a file containing raw YUV planar data. Each frame is composed
 
935
of the Y plane followed by the U and V planes at half vertical and
 
936
horizontal resolution.
 
937
 
 
938
@item
 
939
You can output to a raw YUV420P file:
 
940
 
 
941
@example
 
942
avconv -i mydivx.avi hugefile.yuv
 
943
@end example
 
944
 
 
945
@item
 
946
You can set several input files and output files:
 
947
 
 
948
@example
 
949
avconv -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg
 
950
@end example
 
951
 
 
952
Converts the audio file a.wav and the raw YUV video file a.yuv
 
953
to MPEG file a.mpg.
 
954
 
 
955
@item
 
956
You can also do audio and video conversions at the same time:
 
957
 
 
958
@example
 
959
avconv -i /tmp/a.wav -ar 22050 /tmp/a.mp2
 
960
@end example
 
961
 
 
962
Converts a.wav to MPEG audio at 22050 Hz sample rate.
 
963
 
 
964
@item
 
965
You can encode to several formats at the same time and define a
 
966
mapping from input stream to output streams:
 
967
 
 
968
@example
 
969
avconv -i /tmp/a.wav -map 0:a -b 64k /tmp/a.mp2 -map 0:a -b 128k /tmp/b.mp2
 
970
@end example
 
971
 
 
972
Converts a.wav to a.mp2 at 64 kbits and to b.mp2 at 128 kbits. '-map
 
973
file:index' specifies which input stream is used for each output
 
974
stream, in the order of the definition of output streams.
 
975
 
 
976
@item
 
977
You can transcode decrypted VOBs:
 
978
 
 
979
@example
 
980
avconv -i snatch_1.vob -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 128k snatch.avi
 
981
@end example
 
982
 
 
983
This is a typical DVD ripping example; the input is a VOB file, the
 
984
output an AVI file with MPEG-4 video and MP3 audio. Note that in this
 
985
command we use B-frames so the MPEG-4 stream is DivX5 compatible, and
 
986
GOP size is 300 which means one intra frame every 10 seconds for 29.97fps
 
987
input video. Furthermore, the audio stream is MP3-encoded so you need
 
988
to enable LAME support by passing @code{--enable-libmp3lame} to configure.
 
989
The mapping is particularly useful for DVD transcoding
 
990
to get the desired audio language.
 
991
 
 
992
NOTE: To see the supported input formats, use @code{avconv -formats}.
 
993
 
 
994
@item
 
995
You can extract images from a video, or create a video from many images:
 
996
 
 
997
For extracting images from a video:
 
998
@example
 
999
avconv -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg
 
1000
@end example
 
1001
 
 
1002
This will extract one video frame per second from the video and will
 
1003
output them in files named @file{foo-001.jpeg}, @file{foo-002.jpeg},
 
1004
etc. Images will be rescaled to fit the new WxH values.
 
1005
 
 
1006
If you want to extract just a limited number of frames, you can use the
 
1007
above command in combination with the -vframes or -t option, or in
 
1008
combination with -ss to start extracting from a certain point in time.
 
1009
 
 
1010
For creating a video from many images:
 
1011
@example
 
1012
avconv -f image2 -i foo-%03d.jpeg -r 12 -s WxH foo.avi
 
1013
@end example
 
1014
 
 
1015
The syntax @code{foo-%03d.jpeg} specifies to use a decimal number
 
1016
composed of three digits padded with zeroes to express the sequence
 
1017
number. It is the same syntax supported by the C printf function, but
 
1018
only formats accepting a normal integer are suitable.
 
1019
 
 
1020
@item
 
1021
You can put many streams of the same type in the output:
 
1022
 
 
1023
@example
 
1024
avconv -i test1.avi -i test2.avi -map 0.3 -map 0.2 -map 0.1 -map 0.0 -c copy test12.nut
 
1025
@end example
 
1026
 
 
1027
The resulting output file @file{test12.avi} will contain first four streams from
 
1028
the input file in reverse order.
 
1029
 
 
1030
@end itemize
 
1031
@c man end EXAMPLES
 
1032
 
 
1033
@include eval.texi
 
1034
@include encoders.texi
 
1035
@include demuxers.texi
 
1036
@include muxers.texi
 
1037
@include indevs.texi
 
1038
@include outdevs.texi
 
1039
@include protocols.texi
 
1040
@include bitstream_filters.texi
 
1041
@include filters.texi
 
1042
@include metadata.texi
 
1043
 
 
1044
@ignore
 
1045
 
 
1046
@setfilename avconv
 
1047
@settitle avconv video converter
 
1048
 
 
1049
@c man begin SEEALSO
 
1050
avplay(1), avprobe(1) and the Libav HTML documentation
 
1051
@c man end
 
1052
 
 
1053
@c man begin AUTHORS
 
1054
The Libav developers
 
1055
@c man end
 
1056
 
 
1057
@end ignore
 
1058
 
 
1059
@bye