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