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