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