1
\input texinfo @c -*- texinfo -*-
3
@settitle avconv Documentation
5
@center @titlefont{avconv Documentation}
14
The generic syntax is:
18
avconv [global options] [[infile options][@option{-i} @var{infile}]]... @{[outfile options] @var{outfile}@}...
23
@c man begin DESCRIPTION
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.
29
avconv reads from an arbitrary number of input "files" (which can be regular
30
files, pipes, network streams, grabbing devices, etc.), specified by the
31
@code{-i} option, and writes to an arbitrary number of output "files", which are
32
specified by a plain output filename. Anything found on the command line which
33
cannot be interpreted as an option is considered to be an output filename.
35
Each input or output file can in principle contain any number of streams of
36
different types (video/audio/subtitle/attachment/data). Allowed number and/or
37
types of streams can be limited by the container format. Selecting, which
38
streams from which inputs go into output, is done either automatically or with
39
the @code{-map} option (see the Stream selection chapter).
41
To refer to input files in options, you must use their indices (0-based). E.g.
42
the first input file is @code{0}, the second is @code{1} etc. Similarly, streams
43
within a file are referred to by their indices. E.g. @code{2:3} refers to the
44
fourth stream in the third input file. See also the Stream specifiers chapter.
46
As a general rule, options are applied to the next specified
47
file. Therefore, order is important, and you can have the same
48
option on the command line multiple times. Each occurrence is
49
then applied to the next input or output file.
50
Exceptions from this rule are the global options (e.g. verbosity level),
51
which should be specified first.
53
Do not mix input and output files -- first specify all input files, then all
54
output files. Also do not mix options which belong to different files. All
55
options apply ONLY to the next input or output file and are reset between files.
59
To set the video bitrate of the output file to 64kbit/s:
61
avconv -i input.avi -b 64k output.avi
65
To force the frame rate of the output file to 24 fps:
67
avconv -i input.avi -r 24 output.avi
71
To force the frame rate of the input file (valid for raw formats only)
72
to 1 fps and the frame rate of the output file to 24 fps:
74
avconv -r 1 -i input.m2v -r 24 output.avi
78
The format option may be needed for raw input files.
80
@c man end DESCRIPTION
82
@chapter Stream selection
83
@c man begin STREAM SELECTION
85
By default avconv tries to pick the "best" stream of each type present in input
86
files and add them to each output file. For video, this means the highest
87
resolution, for audio the highest channel count. For subtitle it's simply the
88
first subtitle stream.
90
You can disable some of those defaults by using @code{-vn/-an/-sn} options. For
91
full manual control, use the @code{-map} option, which disables the defaults just
94
@c man end STREAM SELECTION
99
@include avtools-common-opts.texi
101
@section Main options
105
@item -f @var{fmt} (@emph{input/output})
106
Force input or output file format. The format is normally autodetected for input
107
files and guessed from file extension for output files, so this option is not
108
needed in most cases.
110
@item -i @var{filename} (@emph{input})
113
@item -y (@emph{global})
114
Overwrite output files without asking.
116
@item -c[:@var{stream_specifier}] @var{codec} (@emph{input/output,per-stream})
117
@itemx -codec[:@var{stream_specifier}] @var{codec} (@emph{input/output,per-stream})
118
Select an encoder (when used before an output file) or a decoder (when used
119
before an input file) for one or more streams. @var{codec} is the name of a
120
decoder/encoder or a special value @code{copy} (output only) to indicate that
121
the stream is not to be reencoded.
125
avconv -i INPUT -map 0 -c:v libx264 -c:a copy OUTPUT
127
encodes all video streams with libx264 and copies all audio streams.
129
For each stream, the last matching @code{c} option is applied, so
131
avconv -i INPUT -map 0 -c copy -c:v:1 libx264 -c:a:137 libvorbis OUTPUT
133
will copy all the streams except the second video, which will be encoded with
134
libx264, and the 138th audio, which will be encoded with libvorbis.
136
@item -t @var{duration} (@emph{output})
137
Stop writing the output after its duration reaches @var{duration}.
138
@var{duration} may be a number in seconds, or in @code{hh:mm:ss[.xxx]} form.
140
@item -fs @var{limit_size} (@emph{output})
141
Set the file size limit.
143
@item -ss @var{position} (@emph{input/output})
144
When used as an input option (before @code{-i}), seeks in this input file to
145
@var{position}. When used as an output option (before an output filename),
146
decodes but discards input until the timestamps reach @var{position}. This is
147
slower, but more accurate.
149
@var{position} may be either in seconds or in @code{hh:mm:ss[.xxx]} form.
151
@item -itsoffset @var{offset} (@emph{input})
152
Set the input time offset in seconds.
153
@code{[-]hh:mm:ss[.xxx]} syntax is also supported.
154
The offset is added to the timestamps of the input files.
155
Specifying a positive offset means that the corresponding
156
streams are delayed by @var{offset} seconds.
158
@item -metadata[:metadata_specifier] @var{key}=@var{value} (@emph{output,per-metadata})
159
Set a metadata key/value pair.
161
An optional @var{metadata_specifier} may be given to set metadata
162
on streams or chapters. See @code{-map_metadata} documentation for
165
This option overrides metadata set with @code{-map_metadata}. It is
166
also possible to delete metadata by using an empty value.
168
For example, for setting the title in the output file:
170
avconv -i in.avi -metadata title="my title" out.flv
173
To set the language of the first audio stream:
175
avconv -i INPUT -metadata:s:a:0 language=eng OUTPUT
178
@item -target @var{type} (@emph{output})
179
Specify target file type (@code{vcd}, @code{svcd}, @code{dvd}, @code{dv},
180
@code{dv50}). @var{type} may be prefixed with @code{pal-}, @code{ntsc-} or
181
@code{film-} to use the corresponding standard. All the format options
182
(bitrate, codecs, buffer sizes) are then set automatically. You can just type:
185
avconv -i myfile.avi -target vcd /tmp/vcd.mpg
188
Nevertheless you can specify additional options as long as you know
189
they do not conflict with the standard, as in:
192
avconv -i myfile.avi -target vcd -bf 2 /tmp/vcd.mpg
195
@item -dframes @var{number} (@emph{output})
196
Set the number of data frames to record. This is an alias for @code{-frames:d}.
198
@item -frames[:@var{stream_specifier}] @var{framecount} (@emph{output,per-stream})
199
Stop writing to the stream after @var{framecount} frames.
201
@item -q[:@var{stream_specifier}] @var{q} (@emph{output,per-stream})
202
@itemx -qscale[:@var{stream_specifier}] @var{q} (@emph{output,per-stream})
203
Use fixed quality scale (VBR). The meaning of @var{q} is
206
@item -filter[:@var{stream_specifier}] @var{filter_graph} (@emph{output,per-stream})
207
@var{filter_graph} is a description of the filter graph to apply to
208
the stream. Use @code{-filters} to show all the available filters
209
(including also sources and sinks).
210
@item -pre[:@var{stream_specifier}] @var{preset_name} (@emph{output,per-stream})
211
Specify the preset for matching stream(s).
213
@item -stats (@emph{global})
214
Print encoding progress/statistics. On by default.
216
@item -attach @var{filename} (@emph{output})
217
Add an attachment to the output file. This is supported by a few formats
218
like Matroska for e.g. fonts used in rendering subtitles. Attachments
219
are implemented as a specific type of stream, so this option will add
220
a new stream to the file. It is then possible to use per-stream options
221
on this stream in the usual way. Attachment streams created with this
222
option will be created after all the other streams (i.e. those created
223
with @code{-map} or automatic mappings).
225
Note that for Matroska you also have to set the mimetype metadata tag:
227
avconv -i INPUT -attach DejaVuSans.ttf -metadata:s:2 mimetype=application/x-truetype-font out.mkv
229
(assuming that the attachment stream will be third in the output file).
231
@item -dump_attachment[:@var{stream_specifier}] @var{filename} (@emph{input,per-stream})
232
Extract the matching attachment stream into a file named @var{filename}. If
233
@var{filename} is empty, then the value of the @code{filename} metadata tag
236
E.g. to extract the first attachment to a file named 'out.ttf':
238
avconv -dump_attachment:t:0 out.ttf INPUT
240
To extract all attachments to files determined by the @code{filename} tag:
242
avconv -dump_attachment:t "" INPUT
245
Technical note -- attachments are implemented as codec extradata, so this
246
option can actually be used to extract extradata from any stream, not just
251
@section Video Options
254
@item -vframes @var{number} (@emph{output})
255
Set the number of video frames to record. This is an alias for @code{-frames:v}.
256
@item -r[:@var{stream_specifier}] @var{fps} (@emph{input/output,per-stream})
257
Set frame rate (Hz value, fraction or abbreviation), (default = 25).
258
@item -s[:@var{stream_specifier}] @var{size} (@emph{input/output,per-stream})
259
Set frame size. The format is @samp{wxh} (default - same as source).
260
The following abbreviations are recognized:
322
@item -aspect[:@var{stream_specifier}] @var{aspect} (@emph{output,per-stream})
323
Set the video display aspect ratio specified by @var{aspect}.
325
@var{aspect} can be a floating point number string, or a string of the
326
form @var{num}:@var{den}, where @var{num} and @var{den} are the
327
numerator and denominator of the aspect ratio. For example "4:3",
328
"16:9", "1.3333", and "1.7777" are valid argument values.
330
@item -vn (@emph{output})
331
Disable video recording.
332
@item -bt @var{tolerance}
333
Set video bitrate tolerance (in bits, default 4000k).
334
Has a minimum value of: (target_bitrate/target_framerate).
335
In 1-pass mode, bitrate tolerance specifies how far ratecontrol is
336
willing to deviate from the target average bitrate value. This is
337
not related to min/max bitrate. Lowering tolerance too much has
338
an adverse effect on quality.
339
@item -maxrate @var{bitrate}
340
Set max video bitrate (in bit/s).
341
Requires -bufsize to be set.
342
@item -minrate @var{bitrate}
343
Set min video bitrate (in bit/s).
344
Most useful in setting up a CBR encode:
346
avconv -i myfile.avi -b 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k out.m2v
348
It is of little use elsewise.
349
@item -bufsize @var{size}
350
Set video buffer verifier buffer size (in bits).
351
@item -vcodec @var{codec} (@emph{output})
352
Set the video codec. This is an alias for @code{-codec:v}.
354
Use same quantizer as source (implies VBR).
356
Note that this is NOT SAME QUALITY. Do not use this option unless you know you
360
Select the pass number (1 or 2). It is used to do two-pass
361
video encoding. The statistics of the video are recorded in the first
362
pass into a log file (see also the option -passlogfile),
363
and in the second pass that log file is used to generate the video
364
at the exact requested bitrate.
365
On pass 1, you may just deactivate audio and set output to null,
366
examples for Windows and Unix:
368
avconv -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y NUL
369
avconv -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y /dev/null
372
@item -passlogfile @var{prefix} (@emph{global})
373
Set two-pass log file name prefix to @var{prefix}, the default file name
374
prefix is ``av2pass''. The complete file name will be
375
@file{PREFIX-N.log}, where N is a number specific to the output
378
@item -vf @var{filter_graph} (@emph{output})
379
@var{filter_graph} is a description of the filter graph to apply to
381
Use the option "-filters" to show all the available filters (including
382
also sources and sinks). This is an alias for @code{-filter:v}.
386
@section Advanced Video Options
389
@item -pix_fmt[:@var{stream_specifier}] @var{format} (@emph{input/output,per-stream})
390
Set pixel format. Use @code{-pix_fmts} to show all the supported
392
@item -sws_flags @var{flags} (@emph{input/output})
394
@item -g @var{gop_size}
395
Set the group of pictures size.
399
minimum video quantizer scale (VBR)
401
maximum video quantizer scale (VBR)
403
maximum difference between the quantizer scales (VBR)
404
@item -qblur @var{blur}
405
video quantizer scale blur (VBR) (range 0.0 - 1.0)
406
@item -qcomp @var{compression}
407
video quantizer scale compression (VBR) (default 0.5).
408
Constant of ratecontrol equation. Recommended range for default rc_eq: 0.0-1.0
410
@item -lmin @var{lambda}
411
minimum video lagrange factor (VBR)
412
@item -lmax @var{lambda}
413
max video lagrange factor (VBR)
414
@item -mblmin @var{lambda}
415
minimum macroblock quantizer scale (VBR)
416
@item -mblmax @var{lambda}
417
maximum macroblock quantizer scale (VBR)
419
These four options (lmin, lmax, mblmin, mblmax) use 'lambda' units,
420
but you may use the QP2LAMBDA constant to easily convert from 'q' units:
422
avconv -i src.ext -lmax 21*QP2LAMBDA dst.ext
425
@item -rc_init_cplx @var{complexity}
426
initial complexity for single pass encoding
427
@item -b_qfactor @var{factor}
428
qp factor between P- and B-frames
429
@item -i_qfactor @var{factor}
430
qp factor between P- and I-frames
431
@item -b_qoffset @var{offset}
432
qp offset between P- and B-frames
433
@item -i_qoffset @var{offset}
434
qp offset between P- and I-frames
435
@item -rc_eq @var{equation}
436
Set rate control equation (see section "Expression Evaluation")
437
(default = @code{tex^qComp}).
439
When computing the rate control equation expression, besides the
440
standard functions defined in the section "Expression Evaluation", the
441
following functions are available:
447
and the following constants are available:
469
@item -rc_override[:@var{stream_specifier}] @var{override} (@emph{output,per-stream})
470
rate control override for specific intervals
471
@item -me_method @var{method}
472
Set motion estimation method to @var{method}.
473
Available methods are (from lowest to best quality):
476
Try just the (0, 0) vector.
485
exhaustive search (slow and marginally better than epzs)
489
Set error resilience to @var{n}.
492
FF_ER_CAREFUL (default)
498
FF_ER_VERY_AGGRESSIVE
501
@item -ec @var{bit_mask}
502
Set error concealment to @var{bit_mask}. @var{bit_mask} is a bit mask of
503
the following values:
506
FF_EC_GUESS_MVS (default = enabled)
508
FF_EC_DEBLOCK (default = enabled)
511
@item -bf @var{frames}
512
Use 'frames' B-frames (supported for MPEG-1, MPEG-2 and MPEG-4).
513
@item -mbd @var{mode}
517
FF_MB_DECISION_SIMPLE: Use mb_cmp (cannot change it yet in avconv).
519
FF_MB_DECISION_BITS: Choose the one which needs the fewest bits.
521
FF_MB_DECISION_RD: rate distortion
524
@item -bug @var{param}
525
Work around encoder bugs that are not auto-detected.
526
@item -strict @var{strictness}
527
How strictly to follow the standards.
530
Deinterlace pictures.
532
Dump video coding statistics to @file{vstats_HHMMSS.log}.
533
@item -vstats_file @var{file}
534
Dump video coding statistics to @var{file}.
535
@item -top[:@var{stream_specifier}] @var{n} (@emph{output,per-stream})
536
top=1/bottom=0/auto=-1 field first
537
@item -dc @var{precision}
539
@item -vtag @var{fourcc/tag} (@emph{output})
540
Force video tag/fourcc. This is an alias for @code{-tag:v}.
541
@item -qphist (@emph{global})
543
@item -force_key_frames[:@var{stream_specifier}] @var{time}[,@var{time}...] (@emph{output,per-stream})
544
Force key frames at the specified timestamps, more precisely at the first
545
frames after each specified time.
546
This option can be useful to ensure that a seek point is present at a
547
chapter mark or any other designated place in the output file.
548
The timestamps must be specified in ascending order.
550
@item -copyinkf[:@var{stream_specifier}] (@emph{output,per-stream})
551
When doing stream copy, copy also non-key frames found at the
555
@section Audio Options
558
@item -aframes @var{number} (@emph{output})
559
Set the number of audio frames to record. This is an alias for @code{-frames:a}.
560
@item -ar[:@var{stream_specifier}] @var{freq} (@emph{input/output,per-stream})
561
Set the audio sampling frequency. For output streams it is set by
562
default to the frequency of the corresponding input stream. For input
563
streams this option only makes sense for audio grabbing devices and raw
564
demuxers and is mapped to the corresponding demuxer options.
565
@item -aq @var{q} (@emph{output})
566
Set the audio quality (codec-specific, VBR). This is an alias for -q:a.
567
@item -ac[:@var{stream_specifier}] @var{channels} (@emph{input/output,per-stream})
568
Set the number of audio channels. For output streams it is set by
569
default to the number of input audio channels. For input streams
570
this option only makes sense for audio grabbing devices and raw demuxers
571
and is mapped to the corresponding demuxer options.
572
@item -an (@emph{output})
573
Disable audio recording.
574
@item -acodec @var{codec} (@emph{input/output})
575
Set the audio codec. This is an alias for @code{-codec:a}.
576
@item -sample_fmt[:@var{stream_specifier}] @var{sample_fmt} (@emph{output,per-stream})
577
Set the audio sample format. Use @code{-sample_fmts} to get a list
578
of supported sample formats.
581
@section Advanced Audio options:
584
@item -atag @var{fourcc/tag} (@emph{output})
585
Force audio tag/fourcc. This is an alias for @code{-tag:a}.
586
@item -audio_service_type @var{type}
587
Set the type of service that the audio stream contains.
590
Main Audio Service (default)
610
@section Subtitle options:
613
@item -scodec @var{codec} (@emph{input/output})
614
Set the subtitle codec. This is an alias for @code{-codec:s}.
615
@item -sn (@emph{output})
616
Disable subtitle recording.
619
@section Audio/Video grab options
622
@item -isync (@emph{global})
623
Synchronize read on input.
626
@section Advanced options
629
@item -map [-]@var{input_file_id}[:@var{stream_specifier}][,@var{sync_file_id}[:@var{stream_specifier}]] (@emph{output})
631
Designate one or more input streams as a source for the output file. Each input
632
stream is identified by the input file index @var{input_file_id} and
633
the input stream index @var{input_stream_id} within the input
634
file. Both indices start at 0. If specified,
635
@var{sync_file_id}:@var{stream_specifier} sets which input stream
636
is used as a presentation sync reference.
638
The first @code{-map} option on the command line specifies the
639
source for output stream 0, the second @code{-map} option specifies
640
the source for output stream 1, etc.
642
A @code{-} character before the stream identifier creates a "negative" mapping.
643
It disables matching streams from already created mappings.
645
For example, to map ALL streams from the first input file to output
647
avconv -i INPUT -map 0 output
650
For example, if you have two audio streams in the first input file,
651
these streams are identified by "0:0" and "0:1". You can use
652
@code{-map} to select which streams to place in an output file. For
655
avconv -i INPUT -map 0:1 out.wav
657
will map the input stream in @file{INPUT} identified by "0:1" to
658
the (single) output stream in @file{out.wav}.
660
For example, to select the stream with index 2 from input file
661
@file{a.mov} (specified by the identifier "0:2"), and stream with
662
index 6 from input @file{b.mov} (specified by the identifier "1:6"),
663
and copy them to the output file @file{out.mov}:
665
avconv -i a.mov -i b.mov -c copy -map 0:2 -map 1:6 out.mov
668
To select all video and the third audio stream from an input file:
670
avconv -i INPUT -map 0:v -map 0:a:2 OUTPUT
673
To map all the streams except the second audio, use negative mappings
675
avconv -i INPUT -map 0 -map -0:a:1 OUTPUT
678
Note that using this option disables the default mappings for this output file.
680
@item -map_metadata[:@var{metadata_spec_out}] @var{infile}[:@var{metadata_spec_in}] (@emph{output,per-metadata})
681
Set metadata information of the next output file from @var{infile}. Note that
682
those are file indices (zero-based), not filenames.
683
Optional @var{metadata_spec_in/out} parameters specify, which metadata to copy.
684
A metadata specifier can have the following forms:
687
global metadata, i.e. metadata that applies to the whole file
689
@item @var{s}[:@var{stream_spec}]
690
per-stream metadata. @var{stream_spec} is a stream specifier as described
691
in the @ref{Stream specifiers} chapter. In an input metadata specifier, the first
692
matching stream is copied from. In an output metadata specifier, all matching
693
streams are copied to.
695
@item @var{c}:@var{chapter_index}
696
per-chapter metadata. @var{chapter_index} is the zero-based chapter index.
698
@item @var{p}:@var{program_index}
699
per-program metadata. @var{program_index} is the zero-based program index.
701
If metadata specifier is omitted, it defaults to global.
703
By default, global metadata is copied from the first input file,
704
per-stream and per-chapter metadata is copied along with streams/chapters. These
705
default mappings are disabled by creating any mapping of the relevant type. A negative
706
file index can be used to create a dummy mapping that just disables automatic copying.
708
For example to copy metadata from the first stream of the input file to global metadata
711
avconv -i in.ogg -map_metadata 0:s:0 out.mp3
714
To do the reverse, i.e. copy global metadata to all audio streams:
716
avconv -i in.mkv -map_metadata:s:a 0:g out.mkv
718
Note that simple @code{0} would work as well in this example, since global
719
metadata is assumed by default.
721
@item -map_chapters @var{input_file_index} (@emph{output})
722
Copy chapters from input file with index @var{input_file_index} to the next
723
output file. If no chapter mapping is specified, then chapters are copied from
724
the first input file with at least one chapter. Use a negative file index to
725
disable any chapter copying.
727
Print specific debug info.
728
@item -benchmark (@emph{global})
729
Show benchmarking information at the end of an encode.
730
Shows CPU time used and maximum memory consumption.
731
Maximum memory consumption is not supported on all systems,
732
it will usually display as 0 if not supported.
733
@item -timelimit @var{duration} (@emph{global})
734
Exit after avconv has been running for @var{duration} seconds.
735
@item -dump (@emph{global})
736
Dump each input packet to stderr.
737
@item -hex (@emph{global})
738
When dumping packets, also dump the payload.
740
Set RTP payload size in bytes.
741
@item -re (@emph{input})
742
Read input at native frame rate. Mainly used to simulate a grab device.
743
@item -threads @var{count}
745
@item -vsync @var{parameter}
750
Each frame is passed with its timestamp from the demuxer to the muxer.
752
Frames will be duplicated and dropped to achieve exactly the requested
755
Frames are passed through with their timestamp or dropped so as to
756
prevent 2 frames from having the same timestamp.
758
Chooses between 1 and 2 depending on muxer capabilities. This is the
762
With -map you can select from which stream the timestamps should be
763
taken. You can leave either video or audio unchanged and sync the
764
remaining stream(s) to the unchanged one.
766
@item -async @var{samples_per_second}
767
Audio sync method. "Stretches/squeezes" the audio stream to match the timestamps,
768
the parameter is the maximum samples per second by which the audio is changed.
769
-async 1 is a special case where only the start of the audio stream is corrected
770
without any later correction.
772
Copy timestamps from input to output.
774
Copy input stream time base from input to output when stream copying.
776
Finish encoding when the shortest input stream ends.
777
@item -dts_delta_threshold
778
Timestamp discontinuity delta threshold.
779
@item -muxdelay @var{seconds} (@emph{input})
780
Set the maximum demux-decode delay.
781
@item -muxpreload @var{seconds} (@emph{input})
782
Set the initial demux-decode delay.
783
@item -streamid @var{output-stream-index}:@var{new-value} (@emph{output})
784
Assign a new stream-id value to an output stream. This option should be
785
specified prior to the output filename to which it applies.
786
For the situation where multiple output files exist, a streamid
787
may be reassigned to a different value.
789
For example, to set the stream 0 PID to 33 and the stream 1 PID to 36 for
790
an output mpegts file:
792
avconv -i infile -streamid 0:33 -streamid 1:36 out.ts
795
@item -bsf[:@var{stream_specifier}] @var{bitstream_filters} (@emph{output,per-stream})
796
Set bitstream filters for matching streams. @var{bistream_filters} is
797
a comma-separated list of bitstream filters. Use the @code{-bsfs} option
798
to get the list of bitstream filters.
800
avconv -i h264.mp4 -c:v copy -vbsf h264_mp4toannexb -an out.h264
803
avconv -i file.mov -an -vn -sbsf mov2textsub -c:s copy -f rawvideo sub.txt
806
@item -tag[:@var{stream_specifier}] @var{codec_tag} (@emph{output,per-stream})
807
Force a tag/fourcc for matching streams.
816
For streaming at very low bitrate application, use a low frame rate
817
and a small GOP size. This is especially true for RealVideo where
818
the Linux player does not seem to be very fast, so it can miss
819
frames. An example is:
822
avconv -g 3 -r 3 -t 10 -b 50k -s qcif -f rv10 /tmp/b.rm
826
The parameter 'q' which is displayed while encoding is the current
827
quantizer. The value 1 indicates that a very good quality could
828
be achieved. The value 31 indicates the worst quality. If q=31 appears
829
too often, it means that the encoder cannot compress enough to meet
830
your bitrate. You must either increase the bitrate, decrease the
831
frame rate or decrease the frame size.
834
If your computer is not fast enough, you can speed up the
835
compression at the expense of the compression ratio. You can use
836
'-me zero' to speed up motion estimation, and '-intra' to disable
837
motion estimation completely (you have only I-frames, which means it
838
is about as good as JPEG compression).
841
To have very low audio bitrates, reduce the sampling frequency
842
(down to 22050 Hz for MPEG audio, 22050 or 11025 for AC-3).
845
To have a constant quality (but a variable bitrate), use the option
846
'-qscale n' when 'n' is between 1 (excellent quality) and 31 (worst
853
@c man begin EXAMPLES
855
@section Preset files
857
A preset file contains a sequence of @var{option=value} pairs, one for
858
each line, specifying a sequence of options which can be specified also on
859
the command line. Lines starting with the hash ('#') character are ignored and
860
are used to provide comments. Empty lines are also ignored. Check the
861
@file{presets} directory in the Libav source tree for examples.
863
Preset files are specified with the @code{pre} option, this option takes a
864
preset name as input. Avconv searches for a file named @var{preset_name}.avpreset in
865
the directories @file{$AVCONV_DATADIR} (if set), and @file{$HOME/.avconv}, and in
866
the data directory defined at configuration time (usually @file{$PREFIX/share/avconv})
867
in that order. For example, if the argument is @code{libx264-max}, it will
868
search for the file @file{libx264-max.avpreset}.
870
@section Video and Audio grabbing
872
If you specify the input format and device then avconv can grab video
876
avconv -f oss -i /dev/dsp -f video4linux2 -i /dev/video0 /tmp/out.mpg
879
Note that you must activate the right video source and channel before
880
launching avconv with any TV viewer such as
881
@uref{http://linux.bytesex.org/xawtv/, xawtv} by Gerd Knorr. You also
882
have to set the audio recording levels correctly with a
885
@section X11 grabbing
887
Grab the X11 display with avconv via
890
avconv -f x11grab -s cif -r 25 -i :0.0 /tmp/out.mpg
893
0.0 is display.screen number of your X11 server, same as
894
the DISPLAY environment variable.
897
avconv -f x11grab -s cif -r 25 -i :0.0+10,20 /tmp/out.mpg
900
0.0 is display.screen number of your X11 server, same as the DISPLAY environment
901
variable. 10 is the x-offset and 20 the y-offset for the grabbing.
903
@section Video and Audio file format conversion
905
Any supported file format and protocol can serve as input to avconv:
910
You can use YUV files as input:
913
avconv -i /tmp/test%d.Y /tmp/out.mpg
916
It will use the files:
918
/tmp/test0.Y, /tmp/test0.U, /tmp/test0.V,
919
/tmp/test1.Y, /tmp/test1.U, /tmp/test1.V, etc...
922
The Y files use twice the resolution of the U and V files. They are
923
raw files, without header. They can be generated by all decent video
924
decoders. You must specify the size of the image with the @option{-s} option
925
if avconv cannot guess it.
928
You can input from a raw YUV420P file:
931
avconv -i /tmp/test.yuv /tmp/out.avi
934
test.yuv is a file containing raw YUV planar data. Each frame is composed
935
of the Y plane followed by the U and V planes at half vertical and
936
horizontal resolution.
939
You can output to a raw YUV420P file:
942
avconv -i mydivx.avi hugefile.yuv
946
You can set several input files and output files:
949
avconv -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg
952
Converts the audio file a.wav and the raw YUV video file a.yuv
956
You can also do audio and video conversions at the same time:
959
avconv -i /tmp/a.wav -ar 22050 /tmp/a.mp2
962
Converts a.wav to MPEG audio at 22050 Hz sample rate.
965
You can encode to several formats at the same time and define a
966
mapping from input stream to output streams:
969
avconv -i /tmp/a.wav -map 0:a -b 64k /tmp/a.mp2 -map 0:a -b 128k /tmp/b.mp2
972
Converts a.wav to a.mp2 at 64 kbits and to b.mp2 at 128 kbits. '-map
973
file:index' specifies which input stream is used for each output
974
stream, in the order of the definition of output streams.
977
You can transcode decrypted VOBs:
980
avconv -i snatch_1.vob -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 128k snatch.avi
983
This is a typical DVD ripping example; the input is a VOB file, the
984
output an AVI file with MPEG-4 video and MP3 audio. Note that in this
985
command we use B-frames so the MPEG-4 stream is DivX5 compatible, and
986
GOP size is 300 which means one intra frame every 10 seconds for 29.97fps
987
input video. Furthermore, the audio stream is MP3-encoded so you need
988
to enable LAME support by passing @code{--enable-libmp3lame} to configure.
989
The mapping is particularly useful for DVD transcoding
990
to get the desired audio language.
992
NOTE: To see the supported input formats, use @code{avconv -formats}.
995
You can extract images from a video, or create a video from many images:
997
For extracting images from a video:
999
avconv -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg
1002
This will extract one video frame per second from the video and will
1003
output them in files named @file{foo-001.jpeg}, @file{foo-002.jpeg},
1004
etc. Images will be rescaled to fit the new WxH values.
1006
If you want to extract just a limited number of frames, you can use the
1007
above command in combination with the -vframes or -t option, or in
1008
combination with -ss to start extracting from a certain point in time.
1010
For creating a video from many images:
1012
avconv -f image2 -i foo-%03d.jpeg -r 12 -s WxH foo.avi
1015
The syntax @code{foo-%03d.jpeg} specifies to use a decimal number
1016
composed of three digits padded with zeroes to express the sequence
1017
number. It is the same syntax supported by the C printf function, but
1018
only formats accepting a normal integer are suitable.
1021
You can put many streams of the same type in the output:
1024
avconv -i test1.avi -i test2.avi -map 0.3 -map 0.2 -map 0.1 -map 0.0 -c copy test12.nut
1027
The resulting output file @file{test12.avi} will contain first four streams from
1028
the input file in reverse order.
1034
@include encoders.texi
1035
@include demuxers.texi
1036
@include muxers.texi
1037
@include indevs.texi
1038
@include outdevs.texi
1039
@include protocols.texi
1040
@include bitstream_filters.texi
1041
@include filters.texi
1042
@include metadata.texi
1047
@settitle avconv video converter
1049
@c man begin SEEALSO
1050
avplay(1), avprobe(1) and the Libav HTML documentation
1053
@c man begin AUTHORS
1054
The Libav developers