2002-06-02 18:38:01 +00:00
|
|
|
Description of what all those libavcodec options do ...
|
|
|
|
WARNING: I am no encoding expert so the recommendations might be bad ...
|
|
|
|
if you find any errors, missing stuff, ... send a patch or cvs commit if you
|
|
|
|
have an cvs account :)
|
|
|
|
|
|
|
|
lavcopts: (encoder options)
|
|
|
|
---------------------------
|
2002-05-17 11:50:23 +00:00
|
|
|
|
2002-07-10 13:58:54 +00:00
|
|
|
vqmin 2-31 (minimum quantizer) for pass1/2
|
|
|
|
1 is not recommended (much larger file, little quality difference (if u are lucky)
|
|
|
|
and other weird things (if u are less lucky))
|
|
|
|
weird things: msmpeg4, h263 will be very low quality
|
|
|
|
ratecontrol will be confused -> lower quality
|
|
|
|
some decoders will not be able to decode it
|
2002-06-02 18:38:01 +00:00
|
|
|
2 is recommended for normal mpeg4/mpeg1video encoding
|
|
|
|
3 is recommended for h263(p)/msmpeg4 (default)
|
|
|
|
the reason for 3 instead of 2 is that 2 could lead to overflows
|
|
|
|
(this will be fixed for h263(p) by changing the quanizer per MB in
|
|
|
|
the future, but msmpeg4 doesnt support that so it cant be fixed for
|
|
|
|
that)
|
|
|
|
|
|
|
|
vqscale 1-31 quantizer for constant quantizer / constant quality encoding
|
|
|
|
1 is not recommended (much larger file, little quality difference and
|
|
|
|
possible other weird things)
|
2002-05-17 11:50:23 +00:00
|
|
|
lower means better quality but larger files
|
|
|
|
see vqmin
|
|
|
|
|
|
|
|
vqmax 1-31 (maximum quantizer) for pass1/2
|
|
|
|
15 default
|
|
|
|
10-31 should be a sane range
|
|
|
|
|
|
|
|
vqdiff 1-31 (maximum quantizer difference between I or P frames) for pass1/2
|
|
|
|
3 default
|
|
|
|
|
2002-06-02 18:38:01 +00:00
|
|
|
vmax_b_frames 0-4 (maximum number of B frames between non B frames)
|
2002-05-17 11:50:23 +00:00
|
|
|
0 no b frames (default)
|
|
|
|
|
|
|
|
vme 0-5 (motion estimation)
|
|
|
|
0 none (not recommanded, very lq)
|
|
|
|
1 full (not recommanded, too slow)
|
|
|
|
2 log (not recommanded, lq)
|
|
|
|
3 phods (not recommanded, lq)
|
|
|
|
4 EPZS (default)
|
|
|
|
5 X1
|
|
|
|
|
|
|
|
vhq (high quality mode)
|
2002-06-02 18:38:01 +00:00
|
|
|
encode each MB as in all modes and choose the best (this is slow but
|
|
|
|
better filesize/quality)
|
2002-05-17 11:50:23 +00:00
|
|
|
disabled by default
|
|
|
|
|
|
|
|
v4mv
|
|
|
|
allow 4 MV per MB (little difference in filesize/quality)
|
|
|
|
disabled by default
|
2002-06-02 18:38:01 +00:00
|
|
|
cannot be used with B frames (should now work in lq mode)
|
2002-05-17 11:50:23 +00:00
|
|
|
|
|
|
|
keyint 0-300 (maximum interval between keyframes)
|
2002-06-02 18:38:01 +00:00
|
|
|
keyframes are needed for seeking as seeking is only possible to a
|
|
|
|
keyframe but they need more space than non-keyframes so larger numbers here
|
|
|
|
mean slightly smaller files, but less precise seeking
|
2002-05-17 11:50:23 +00:00
|
|
|
0 no keyframes
|
2002-06-02 18:38:01 +00:00
|
|
|
>300 is not recommended as the quality might be bad (depends upon
|
|
|
|
decoder, encoder and luck)
|
2002-05-17 11:50:23 +00:00
|
|
|
|
|
|
|
vb_strategy 0-1 for pass 2
|
2002-06-02 18:38:01 +00:00
|
|
|
0 allways use the max number of B frames (default)
|
|
|
|
1 avoid B frames in high motion scenes (this will cause bitrate
|
|
|
|
misprediction)
|
2002-05-17 11:50:23 +00:00
|
|
|
|
|
|
|
vpass
|
|
|
|
1 first pass
|
|
|
|
2 second pass
|
2002-06-02 18:38:01 +00:00
|
|
|
(only need to specify if two-pass encoding is used)
|
2002-05-17 11:50:23 +00:00
|
|
|
|
2002-06-02 18:38:01 +00:00
|
|
|
vbitrate (kbits per second) for pass1/2
|
2002-05-17 11:50:23 +00:00
|
|
|
800 is default
|
2002-06-02 18:38:01 +00:00
|
|
|
(if value is bigger then 16000 it is interpreted as bit not kbit!)
|
2002-05-17 11:50:23 +00:00
|
|
|
|
|
|
|
vratetol (filesize tolerance in kbit) for pass1/2
|
2002-06-02 18:38:01 +00:00
|
|
|
this is just an approximation, the real difference can be much smaller
|
|
|
|
or larger
|
|
|
|
1000-100000 is a sane range
|
2002-05-17 11:50:23 +00:00
|
|
|
8000 is default
|
|
|
|
|
2002-06-02 18:38:01 +00:00
|
|
|
vb_qfactor (1.0-31.0) for pass1/2
|
|
|
|
(B-Frame quantizer = IP-Frame quantizer * vb_qfactor)
|
2002-05-17 11:50:23 +00:00
|
|
|
2.0 is default
|
2002-06-02 18:38:01 +00:00
|
|
|
tip: to do constant quantizer encoding with different quantizers for
|
|
|
|
I/P and B frames you can use:
|
|
|
|
vqmin=<ip_quant>:vqmax=<ip_quant>:vb_qfactor=<b_quant/ip_quant>
|
2002-05-17 11:50:23 +00:00
|
|
|
|
2002-06-02 18:38:01 +00:00
|
|
|
vqblur (0.0-1.0) quantizer blur (only for pass1)
|
2002-05-17 11:50:23 +00:00
|
|
|
0.0 qblur disabled
|
|
|
|
0.5 is the default
|
|
|
|
1.0 average the quantizer over all previous frames
|
2002-06-02 18:38:01 +00:00
|
|
|
larger values will average the quantizer more over time so that it will
|
|
|
|
be changed slower
|
2002-05-17 11:50:23 +00:00
|
|
|
|
|
|
|
vqcomp (0.0-1.0) quantizer compression (for pass1/2)
|
2002-06-02 18:38:01 +00:00
|
|
|
0.0 constant bitrate encoding, so fast motion frames will get as many
|
|
|
|
bits as low motion (high motion scenes look bad)
|
2002-05-17 11:50:23 +00:00
|
|
|
0.5 (default)
|
|
|
|
1.0 constant quantizer encoding (low motion scenes look bad)
|
|
|
|
|
|
|
|
vrc_strategy (0,1,2)
|
2002-06-02 18:38:01 +00:00
|
|
|
FIXME (different rate control strategies)
|
2002-05-17 11:50:23 +00:00
|
|
|
|
2002-08-18 01:07:37 +00:00
|
|
|
vlelim (-1000-1000) single coefficient elimination threshold for luminance
|
2002-06-01 02:37:24 +00:00
|
|
|
0 disabled (default)
|
2002-08-18 01:07:37 +00:00
|
|
|
-4 (JVT recommendation)
|
|
|
|
negative values will allso consider the dc coefficient
|
|
|
|
should be at least -4 or lower for encoding at quant=1
|
2002-06-01 02:37:24 +00:00
|
|
|
|
2002-08-18 01:07:37 +00:00
|
|
|
vcelim (-1000-1000) single coefficient elimination threshold for chrominance
|
2002-06-01 02:37:24 +00:00
|
|
|
0 disabled (default)
|
2002-06-02 18:38:01 +00:00
|
|
|
7 (JVT recommendation)
|
2002-08-18 01:07:37 +00:00
|
|
|
negative values will allso consider the dc coefficient
|
|
|
|
should be at least -4 or lower for encoding at quant=1
|
2002-06-01 02:37:24 +00:00
|
|
|
|
2002-06-02 18:38:01 +00:00
|
|
|
vstrict strict standard compliance
|
|
|
|
only recommended if you want to feed the output into the mpeg4 reference
|
|
|
|
decoder
|
2002-06-01 02:37:24 +00:00
|
|
|
|
|
|
|
vdpart data partitioning
|
2002-06-02 18:38:01 +00:00
|
|
|
adds 2 byte per video packet
|
|
|
|
improves error-resistance when transfering over unreliable channels (eg.
|
2002-06-07 01:19:04 +00:00
|
|
|
streaming over the internet)
|
2002-06-01 02:58:55 +00:00
|
|
|
|
|
|
|
vpsize (0-10000) video packet size
|
|
|
|
0 disabled (default)
|
|
|
|
500-1000 good choice
|
2002-06-02 18:38:01 +00:00
|
|
|
improves error-resistance (see vdpart for more info)
|
2002-06-01 02:37:24 +00:00
|
|
|
|
2002-06-24 14:55:52 +00:00
|
|
|
gray grayscale only encoding (a bit faster than with color ...)
|
|
|
|
|
2002-06-01 02:37:24 +00:00
|
|
|
lavdopts: (decoder options)
|
2002-06-02 18:38:01 +00:00
|
|
|
---------------------------
|
|
|
|
|
2002-06-01 02:37:24 +00:00
|
|
|
ver error resilience
|
2002-06-02 18:38:01 +00:00
|
|
|
-1 needed for some very broken, encoders which completly ignore the
|
2002-08-14 23:49:55 +00:00
|
|
|
standards (one M4S2 asf sample know to need this) (default)
|
|
|
|
0
|
2002-06-02 18:38:01 +00:00
|
|
|
1 more aggressive error detection, lavc might think that some correct
|
|
|
|
streams contain errors
|
2002-06-01 02:37:24 +00:00
|
|
|
|
2002-08-14 23:49:55 +00:00
|
|
|
bug manual workaround encoder bugs (cant be easily detected automatically)
|
2002-06-01 02:37:24 +00:00
|
|
|
0 (default)
|
2002-08-14 23:49:55 +00:00
|
|
|
1 for msmpeg4v3 workaround for some old lavc generated msmpeg4v3 files
|
|
|
|
1 for mpeg4 workaround some opendivx? files
|
|
|
|
see http://heroinewarrior.com for some samples
|
2002-06-01 02:37:24 +00:00
|
|
|
|
2002-06-24 11:07:58 +00:00
|
|
|
gray grayscale only decoding (a bit faster than with color ...)
|
|
|
|
|
2002-06-01 02:37:24 +00:00
|
|
|
|
2002-06-02 18:38:01 +00:00
|
|
|
Notes: 1. lavc will strictly follow the quantizer limits vqmin, vqmax, vqdiff
|
|
|
|
even if it violates the bitrate / bitrate tolerance
|
2002-05-17 11:50:23 +00:00
|
|
|
2. changing some options between pass1 & 2 can reduce the quality
|
|
|
|
|
2002-06-02 18:38:01 +00:00
|
|
|
FAQ: Q: Why is the filesize much too small?
|
|
|
|
A: Try to increase vqmin=2 or 1 (be carefull with 1, it could cause
|
|
|
|
strange things to happen).
|
|
|
|
Q: Can I use -pass 1 & -pass 2 with vmax_b_frames>0 ?
|
2002-06-07 01:19:04 +00:00
|
|
|
A: -pass x uses the divx4 twopass-encoding codem which is incompatible
|
|
|
|
with the libavcodec encode.
|
|
|
|
If you want to fix it read DOCS/tech/patches.txt and send a patch.
|
2002-06-02 18:38:01 +00:00
|
|
|
Q: What provides better error recovery while keeping the filesize low?
|
|
|
|
Should I increase data partitioning or the number of video packets?
|
|
|
|
A: Data partitioning is better in this case.
|
|
|
|
|
|
|
|
Glossary:
|
|
|
|
MB Macroblock (16x16 luminance and 8x8 chrominance samples)
|
2002-05-17 11:50:23 +00:00
|
|
|
MV Motion vector
|
|
|
|
ME Motion estimation
|
|
|
|
MC Motion compensation
|
2002-06-02 18:38:01 +00:00
|
|
|
JVT Joint Video Team Standard -- http://www.itu.int/ITU-T/news/jvtpro.html
|
2002-05-17 11:50:23 +00:00
|
|
|
|
2002-06-02 18:38:01 +00:00
|
|
|
Examples:
|
2002-06-01 02:37:24 +00:00
|
|
|
mencoder foobar.avi -lavcopts vcodec=mpeg4:vhq:keyint=300:vqscale=2 -o new-foobar.avi
|
2002-06-24 11:03:04 +00:00
|
|
|
mplayer foobar.avi -lavdopts bug=1
|
2002-06-07 01:19:04 +00:00
|
|
|
|
|
|
|
--
|
|
|
|
Written 2002 by Michael Niedermayer and reviewed by Felix Buenemann.
|
|
|
|
Check the MPlayer documentation for contact-addresses.
|
|
|
|
|