Mercurial > mplayer.hg
annotate DOCS/tech/libavc-options.txt @ 7642:e1f1d5e1d789
some obsolete stuff removed
author | gabucino |
---|---|
date | Sun, 06 Oct 2002 20:59:46 +0000 |
parents | eea9475cb37f |
children | a181875e0aa8 |
rev | line source |
---|---|
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
1 Description of what all those libavcodec options do ... |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
2 WARNING: I am no encoding expert so the recommendations might be bad ... |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
3 if you find any errors, missing stuff, ... send a patch or cvs commit if you |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
4 have an cvs account :) |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
5 |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
6 lavcopts: (encoder options) |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
7 --------------------------- |
6108 | 8 |
6700 | 9 vqmin 2-31 (minimum quantizer) for pass1/2 |
10 1 is not recommended (much larger file, little quality difference (if u are lucky) | |
11 and other weird things (if u are less lucky)) | |
12 weird things: msmpeg4, h263 will be very low quality | |
13 ratecontrol will be confused -> lower quality | |
14 some decoders will not be able to decode it | |
7088 | 15 2 is recommended for normal mpeg4/mpeg1video encoding (default) |
16 3 is recommended for h263(p)/msmpeg4 | |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
17 the reason for 3 instead of 2 is that 2 could lead to overflows |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
18 (this will be fixed for h263(p) by changing the quanizer per MB in |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
19 the future, but msmpeg4 doesnt support that so it cant be fixed for |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
20 that) |
6108 | 21 |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
22 vqscale 1-31 quantizer for constant quantizer / constant quality encoding |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
23 1 is not recommended (much larger file, little quality difference and |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
24 possible other weird things) |
6108 | 25 lower means better quality but larger files |
26 see vqmin | |
27 | |
28 vqmax 1-31 (maximum quantizer) for pass1/2 | |
7088 | 29 31 default |
6108 | 30 10-31 should be a sane range |
31 | |
32 vqdiff 1-31 (maximum quantizer difference between I or P frames) for pass1/2 | |
33 3 default | |
34 | |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
35 vmax_b_frames 0-4 (maximum number of B frames between non B frames) |
6108 | 36 0 no b frames (default) |
7088 | 37 0-2 is a sane range for mpeg4 |
6108 | 38 |
39 vme 0-5 (motion estimation) | |
40 0 none (not recommanded, very lq) | |
41 1 full (not recommanded, too slow) | |
42 2 log (not recommanded, lq) | |
43 3 phods (not recommanded, lq) | |
44 4 EPZS (default) | |
45 5 X1 | |
46 | |
47 vhq (high quality mode) | |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
48 encode each MB as in all modes and choose the best (this is slow but |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
49 better filesize/quality) |
6108 | 50 disabled by default |
51 | |
52 v4mv | |
53 allow 4 MV per MB (little difference in filesize/quality) | |
54 disabled by default | |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
55 cannot be used with B frames (should now work in lq mode) |
6108 | 56 |
57 keyint 0-300 (maximum interval between keyframes) | |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
58 keyframes are needed for seeking as seeking is only possible to a |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
59 keyframe but they need more space than non-keyframes so larger numbers here |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
60 mean slightly smaller files, but less precise seeking |
6108 | 61 0 no keyframes |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
62 >300 is not recommended as the quality might be bad (depends upon |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
63 decoder, encoder and luck) |
7088 | 64 for strict mpeg1/2/4 compliance this would have to be <=132 |
6108 | 65 |
66 vb_strategy 0-1 for pass 2 | |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
67 0 allways use the max number of B frames (default) |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
68 1 avoid B frames in high motion scenes (this will cause bitrate |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
69 misprediction) |
6108 | 70 |
71 vpass | |
72 1 first pass | |
73 2 second pass | |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
74 (only need to specify if two-pass encoding is used) |
7496 | 75 Tip: u can try to use constant quantizer mode for pass1 (vqscale=<quantizer>) |
6108 | 76 |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
77 vbitrate (kbits per second) for pass1/2 |
6108 | 78 800 is default |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
79 (if value is bigger then 16000 it is interpreted as bit not kbit!) |
6108 | 80 |
81 vratetol (filesize tolerance in kbit) for pass1/2 | |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
82 this is just an approximation, the real difference can be much smaller |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
83 or larger |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
84 1000-100000 is a sane range |
6108 | 85 8000 is default |
86 | |
7088 | 87 vrc_maxrate (maximum bitrate in kbit/sec) for pass1/2 |
88 vrc_minrate (minimum bitrate in kbit/sec) for pass1/2 | |
89 vrc_buf_size (buffer size in kbit) for pass1/2 | |
90 this is for stuff like VCD | |
91 VCD: FIXME | |
92 SVCD: ... | |
93 DVD: ... | |
94 Note: vratetol should not be too large during the 2.pass or there might | |
95 be problems if vrc_(min|max)rate is used | |
96 | |
97 vb_qfactor (-31.0-31.0) for pass1/2 | |
98 1.25 is default | |
99 vi_qfactor (-31.0-31.0) for pass1/2 | |
100 0.8 is default | |
101 vb_qoffset (-31.0-31.0) for pass1/2 | |
102 1.25 is default | |
103 vi_qoffset (-31.0-31.0) for pass1/2 | |
104 0.0 is default | |
105 if v{b|i}_qfactor > 0 | |
106 I/B-Frame quantizer = P-Frame quantizer * v{b|i}_qfactor + v{b|i}_qoffset | |
107 else | |
108 do normal ratecontrol (dont lock to next P frame quantizer) and | |
109 set q= -q * v{b|i}_qfactor + v{b|i}_qoffset | |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
110 tip: to do constant quantizer encoding with different quantizers for |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
111 I/P and B frames you can use: |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
112 vqmin=<ip_quant>:vqmax=<ip_quant>:vb_qfactor=<b_quant/ip_quant> |
6108 | 113 |
7088 | 114 vqblur (0.0-1.0) quantizer blur (pass1) |
6108 | 115 0.0 qblur disabled |
116 0.5 is the default | |
117 1.0 average the quantizer over all previous frames | |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
118 larger values will average the quantizer more over time so that it will |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
119 be changed slower |
7088 | 120 vqblur (0.0-99.0) quantizer blur (pass2) |
121 gaussian blur (gaussian blur cant be done during pass 1 as the future quantizers arent known) | |
122 0.5 is the default | |
123 larger values will average the quantizer more over time so that it will | |
124 be changed slower | |
6108 | 125 |
7088 | 126 vqcomp quantizer compression (for pass1/2) |
127 depends upon vrc_eq | |
128 | |
129 vrc_eq the main ratecontrol equation (for pass1/2) | |
130 1 constant bitrate | |
131 tex constant quality | |
132 1+(tex/avgTex-1)*qComp approximately the equation of the old ratecontrol code | |
133 tex^qComp with qcomp 0.5 or something like that (default) | |
6108 | 134 |
7088 | 135 infix operators: +,-,*,/,^ |
136 variables: | |
137 tex texture complexity | |
138 iTex,pTex intra, non intra texture complexity | |
139 avgTex average texture complexity | |
140 avgIITex average intra texture complexity in I frames | |
141 avgPITex average intra texture complexity in P frames | |
142 avgPPTex average non intra texture complexity in P frames | |
143 avgBPTex average non intra texture complexity in B frames | |
144 mv bits used for MVs | |
145 fCode maximum length of MV in log2 scale | |
146 iCount number of intra MBs / number of MBs | |
147 var spatial complexity | |
148 mcVar temporal complexity | |
149 qComp qcomp from the command line | |
150 isI, isP, isB is 1 if picture type is I/P/B else 0 | |
151 Pi,E see ur favorite math book | |
152 | |
153 functions: | |
154 max(a,b),min(a,b) maximum / minimum | |
155 gt(a,b) is 1 if a>b, 0 otherwise | |
156 lt(a,b) is 1 if a<b, 0 otherwise | |
157 eq(a,b) is 1 if a==b,0 otherwise | |
158 sin,cos,tan,sinh,cosh,tanh,exp,log,abs | |
159 | |
160 vrc_override user specified quality for specific parts (ending credits ...) (for pass1/2) | |
161 <start-frame>,<end-frame>,<quality>[/<start-frame>,<end-frame>,<quality>[/...]] | |
162 quality 2..31 -> quantizer | |
163 quality -500..0 -> quality correcture in % | |
164 | |
165 vrc_init_cplx (0-1000) initial complexity for pass1 | |
166 | |
167 vqsquish (0 or 1) for pass1/2 how to keep the quantizer between qmin & qmax | |
168 0 use cliping | |
169 1 use a nice differentiable function (default) | |
6108 | 170 |
7039
2eae7ac0fa8b
same behavior for luma & chroma single coeff elimination
michael
parents:
7011
diff
changeset
|
171 vlelim (-1000-1000) single coefficient elimination threshold for luminance |
6256 | 172 0 disabled (default) |
7039
2eae7ac0fa8b
same behavior for luma & chroma single coeff elimination
michael
parents:
7011
diff
changeset
|
173 -4 (JVT recommendation) |
2eae7ac0fa8b
same behavior for luma & chroma single coeff elimination
michael
parents:
7011
diff
changeset
|
174 negative values will allso consider the dc coefficient |
2eae7ac0fa8b
same behavior for luma & chroma single coeff elimination
michael
parents:
7011
diff
changeset
|
175 should be at least -4 or lower for encoding at quant=1 |
6256 | 176 |
7039
2eae7ac0fa8b
same behavior for luma & chroma single coeff elimination
michael
parents:
7011
diff
changeset
|
177 vcelim (-1000-1000) single coefficient elimination threshold for chrominance |
6256 | 178 0 disabled (default) |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
179 7 (JVT recommendation) |
7039
2eae7ac0fa8b
same behavior for luma & chroma single coeff elimination
michael
parents:
7011
diff
changeset
|
180 negative values will allso consider the dc coefficient |
2eae7ac0fa8b
same behavior for luma & chroma single coeff elimination
michael
parents:
7011
diff
changeset
|
181 should be at least -4 or lower for encoding at quant=1 |
6256 | 182 |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
183 vstrict strict standard compliance |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
184 only recommended if you want to feed the output into the mpeg4 reference |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
185 decoder |
6256 | 186 |
187 vdpart data partitioning | |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
188 adds 2 byte per video packet |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
189 improves error-resistance when transfering over unreliable channels (eg. |
6322 | 190 streaming over the internet) |
6256 | 191 |
6257 | 192 vpsize (0-10000) video packet size |
193 0 disabled (default) | |
194 500-1000 good choice | |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
195 improves error-resistance (see vdpart for more info) |
6257 | 196 |
6552 | 197 gray grayscale only encoding (a bit faster than with color ...) |
198 | |
7236 | 199 vfdct (0-99) dct algorithm |
7179 | 200 0 automatically select a good one (default) |
201 1 fast integer | |
202 2 accurate integer | |
203 3 mmx | |
204 4 mlib | |
7619 | 205 |
206 idct (0-99) idct algorithm | |
207 0 automatically select a good one (default) | |
208 1 jpeg reference integer | |
209 2 simple | |
210 3 simplemmx | |
211 4 libmpeg2mmx (inaccurate, DONT USE for encoding with keyint >100) | |
212 5 ps2 | |
213 6 mlib | |
214 7 arm | |
7623 | 215 note: all these IDCTs do pass the IEEE1180 tests AFAIK |
7179 | 216 |
7496 | 217 lumi_mask (0.0-1.0) luminance masking |
218 0.0 disabled (default) | |
7619 | 219 0.0-0.3 should be a sane range |
7496 | 220 warning: be carefull, too large values can cause disasterous things |
221 warning2: large values might look good on some monitors but may look horrible | |
222 on other monitors | |
223 | |
224 dark_mask (0.0-1.0) darkness masking | |
225 0.0 disabled (default) | |
226 0.0-0.3 should be a sane range | |
227 warning: be carefull, too large values can cause disasterous things | |
228 warning2: large values might look good on some monitors but may look horrible | |
229 on other monitors / TV / TFT | |
230 | |
231 tcplx_mask (0.0-1.0) temporal complexity masking | |
232 0.0 disabled (default) | |
233 | |
234 scplx_mask (0.0-1.0) spatial complexity masking | |
235 0.0 disabled (default) | |
236 0.0-0.5 should be a sane range | |
237 larger values help against blockiness, if no deblocking filter is used | |
238 for decoding | |
239 Tip: crop any black borders completly away as they will reduce the quality | |
240 of the MBs there, this is true if scplx_mask isnt used at all too | |
241 | |
242 naq normalize adaptive quantization | |
243 experimental | |
7619 | 244 |
245 ildct use interlaced dct | |
7496 | 246 |
6256 | 247 lavdopts: (decoder options) |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
248 --------------------------- |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
249 |
6256 | 250 ver error resilience |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
251 -1 needed for some very broken, encoders which completly ignore the |
7011 | 252 standards (one M4S2 asf sample know to need this) (default) |
253 0 | |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
254 1 more aggressive error detection, lavc might think that some correct |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
255 streams contain errors |
6256 | 256 |
7011 | 257 bug manual workaround encoder bugs (cant be easily detected automatically) |
6256 | 258 0 (default) |
7011 | 259 1 for msmpeg4v3 workaround for some old lavc generated msmpeg4v3 files |
7619 | 260 1 for mpeg4 workaround some opendivx? files (autodetected hopefully) |
7011 | 261 see http://heroinewarrior.com for some samples |
7188 | 262 2 for mpeg4 workaround xvid interlacing bug |
7619 | 263 3 for mpeg4 workaround for UMP4 (autodetected hopefully) |
6256 | 264 |
6549 | 265 gray grayscale only decoding (a bit faster than with color ...) |
266 | |
7619 | 267 idct see lavcopts |
268 note: the decoding quality is highest if the same idct algorithm is used | |
269 for decoding as for encoding, this is often not the most accurate though | |
270 | |
6256 | 271 |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
272 Notes: 1. lavc will strictly follow the quantizer limits vqmin, vqmax, vqdiff |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
273 even if it violates the bitrate / bitrate tolerance |
6108 | 274 2. changing some options between pass1 & 2 can reduce the quality |
275 | |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
276 FAQ: Q: Why is the filesize much too small? |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
277 A: Try to increase vqmin=2 or 1 (be carefull with 1, it could cause |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
278 strange things to happen). |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
279 Q: Can I use -pass 1 & -pass 2 with vmax_b_frames>0 ? |
6322 | 280 A: -pass x uses the divx4 twopass-encoding codem which is incompatible |
281 with the libavcodec encode. | |
282 If you want to fix it read DOCS/tech/patches.txt and send a patch. | |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
283 Q: What provides better error recovery while keeping the filesize low? |
7088 | 284 Should I use data partitioning or increase the number of video packets? |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
285 A: Data partitioning is better in this case. |
6108 | 286 |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
287 Glossary: |
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
288 MB Macroblock (16x16 luminance and 8x8 chrominance samples) |
6108 | 289 MV Motion vector |
290 ME Motion estimation | |
291 MC Motion compensation | |
7088 | 292 RC Rate control |
293 DCT Discrete Cosine Transform | |
294 IDCT Inverse Discrete Cosine Transform | |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
295 JVT Joint Video Team Standard -- http://www.itu.int/ITU-T/news/jvtpro.html |
6108 | 296 |
6270
8dfe9b162624
Spell checking, line wrapping for better readability, some additions/better explanations.
atmos4
parents:
6266
diff
changeset
|
297 Examples: |
6256 | 298 mencoder foobar.avi -lavcopts vcodec=mpeg4:vhq:keyint=300:vqscale=2 -o new-foobar.avi |
6547 | 299 mplayer foobar.avi -lavdopts bug=1 |
6322 | 300 |
7282 | 301 Links: |
302 short intro to mpeg coding: | |
303 http://www.eecs.umich.edu/~amarathe/mpeg.html | |
304 longer intro to jpeg/mpeg coding: | |
305 http://www.cs.sfu.ca/undergrad/CourseMaterials/CMPT479/material/notes/Chap4/Chap4.2/Chap4.2.html | |
306 | |
6322 | 307 -- |
308 Written 2002 by Michael Niedermayer and reviewed by Felix Buenemann. | |
309 Check the MPlayer documentation for contact-addresses. | |
310 |