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