summaryrefslogtreecommitdiffstats
path: root/DOCS/tech
diff options
context:
space:
mode:
authormichael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-05-17 11:50:23 +0000
committermichael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-05-17 11:50:23 +0000
commit7a424a473a6f1bc59b256d498caccc9a4943dd93 (patch)
tree533277cd27a2699306829b3fc60528889af5fcef /DOCS/tech
parent1f050546566fa5245686a12cb6d9c35267b9ced0 (diff)
downloadmpv-7a424a473a6f1bc59b256d498caccc9a4943dd93.tar.bz2
mpv-7a424a473a6f1bc59b256d498caccc9a4943dd93.tar.xz
lavc rate control tech-docs
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@6109 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'DOCS/tech')
-rw-r--r--DOCS/tech/libavc-options.txt104
1 files changed, 104 insertions, 0 deletions
diff --git a/DOCS/tech/libavc-options.txt b/DOCS/tech/libavc-options.txt
new file mode 100644
index 0000000000..ae8f2c89b0
--- /dev/null
+++ b/DOCS/tech/libavc-options.txt
@@ -0,0 +1,104 @@
+Description of what all thouse libavcodec options do ...
+WARNING: iam no encoding expert so the recomanditions might be bad ...
+if u find any errors, missing stuff, ... send a patch or cvs commit if u have an cvs account :)
+
+vqmin 1-31 (minimum quantizer) for pass1/2
+ 1 is not recomanded (much larger file, little quality difference and possible other weird things)
+ 2 is recommanded for normal mpeg4/mpeg1video encoding
+ 3 is recommanded 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 chageing 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 recomanded (much larger file, little quality difference and possible other weird things)
+ 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
+
+vmax_b_frames 0-4 (maximum number of b frames between non b frames)
+ 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)
+ encode each MB as in all modes and choose the best (this is slow but better filesize/quality)
+ disabled by default
+
+v4mv
+ allow 4 MV per MB (little difference in filesize/quality)
+ disabled by default
+ cannot be used with b frames or in lq mode currently
+ disabled by default
+
+keyint 0-300 (maximum interval between keyframes)
+ keyframes are needed for seeking as seeking is only possible to a keyframe but keyframes need more space
+ than non keyframes so larger numbers here mean slightly smaller files
+ 0 no keyframes
+ >300 is not recomanded as the quality might be bad (depends upon decoder & encoder & luck)
+
+vb_strategy 0-1 for pass 2
+ 0 allways use the max number of b frames (default)
+ 1 avoid b frames in high motion scenes (this will cause bitrate missprediction)
+
+vpass
+ 1 first pass
+ 2 second pass
+
+vbitrate (kbits per sec) for pass1/2
+ 800 is default
+
+vratetol (filesize tolerance in kbit) for pass1/2
+ this is just approximate, the real difference can be much smaller or larger
+ 1000- 100000 is a sane range
+ 8000 is default
+
+vb_qfactor (1.0-31.0) (BFrame quantizer= PFrame quantizer * vb_qfactor) for pass1/2
+ 2.0 is default
+ tip: to do constant quantizer encoding with different quantizers for I/P and B frames
+ u can use vqmin=<ip-quant>:vqmax=<ip-quant>:vb_qfactor=<b_quant/ip_quant>
+
+vqblur (0.0-1.0) quantizer blur (for pass1)
+ 0.0 qblur disabled
+ 0.5 is the default
+ 1.0 average the quantizer over all previous frames
+ larger values will average the quantizer over time more so that the quantizer will be changed slower
+
+vqcomp (0.0-1.0) quantizer compression (for pass1/2)
+ 0.0 constant bitrate encoding, so fast moton frames will get as many bits as low motion
+ (high motion scenes look bad)
+ 0.5 (default)
+ 1.0 constant quantizer encoding (low motion scenes look bad)
+
+vrc_strategy (0,1,2)
+ FIXME
+
+Notes: 1. lavc will strictly follows the quantizer limits vqmin, vqmax, vqdiff even if
+ it violates the bitrate / bitrate tolerance
+ 2. changing some options between pass1 & 2 can reduce the quality
+
+FAQ: Q: the file is much too small
+ A: vqmin=2 or 1 (be carefull with 1, it could cause strange things to happen)
+ Q: i want to use -pass 1 & -pass 2 with vmax_b_frames>0
+ A: read DOCS/tech/patches.txt and send a patch ;)
+
+glossary:
+MB Macroblock (16x16 luminance & 8x8 chrominance samples)
+MV Motion vector
+ME Motion estimation
+MC Motion compensation
+
+example:
+mencoder foobar.avi -lavcopts vcodec=mpeg4:vhq:keyint=300:vqscale=2 -o new-foobar.avi \ No newline at end of file