[FFmpeg-user] Rate control parameters

Jaka Bac jakabac at gmail.com
Fri Nov 18 02:11:03 EET 2016


Hello

Before I dig through the source code and try to figure out this by myself...
Could someone please explain what exactly do the following options do:

-rc_max_vbv_use
Ratecontrol attempt to use, at maximum, <value> of what can be used without
an underflow.

-rc_min_vbv_use
Ratecontrol attempt to use, at least, <value> times the amount needed to
prevent a vbv overflow.

At least / at maximum of what? VBV buffer size?

And also how do these work exactly:
-b_qfactor
qscale factor between IP and B-frames
     * If > 0 then the last P-frame quantizer will be used (q=
lastp_q*factor+offset).
     * If < 0 then normal ratecontrol will be done (q=
-normal_q*factor+offset).

-i_qfactor
qscale factor between P and I-frames
     * If > 0 then the last p frame quantizer will be used (q=
lastp_q*factor+offset).
     * If < 0 then normal ratecontrol will be done (q=
-normal_q*factor+offset).


I know that these set the factor between I and P frames and IP and B frames.
But source says that negative values will use normal rate control and
positive values will just set the factor.

So I am guessing that negative values mean that rate control is done and
then the results are scaled otherwise previous P quantizer value is used
and just scaled.
But what confuses me is that in the -i_qfactor case it also states that
last P quantizer is used.. should not this be last I quantizer?

And what happens if after applying all the factors and offsets, rate
control discovers that the bitrate constraints will not be met? Or even
worse that VBV will owerflow?

Sorry if I am missing something or if I missed some explanation already
exisiting on the interet. If this is explained somewhere already, I kindly
ask if you could point me in the right direction.

Thanks,
Jaka


More information about the ffmpeg-user mailing list