[FFmpeg-devel] [PATCH] Changed max bitrate for VBV mode (according to Ivan Uskow)

Sven Dueking sven at nablet.com
Fri Aug 14 07:37:08 CEST 2015



> -----Urspr√ľngliche Nachricht-----
> Von: ffmpeg-devel [mailto:ffmpeg-devel-bounces at ffmpeg.org] Im Auftrag
> von Michael Niedermayer
> Gesendet: Donnerstag, 13. August 2015 17:41
> An: FFmpeg development discussions and patches
> Cc: Sven Dueking
> Betreff: Re: [FFmpeg-devel] [PATCH] Changed max bitrate for VBV mode
> (according to Ivan Uskow)
> 
> On Thu, Aug 13, 2015 at 11:30:45AM +0100, Sven Dueking wrote:
> > From: Sven Dueking <sven at nablet.com>
> >
> > ---
> >  libavcodec/qsvenc.c | 6 +++++-
> >  1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c index
> > 57f5fe4..b56e4b4 100644
> > --- a/libavcodec/qsvenc.c
> > +++ b/libavcodec/qsvenc.c
> > @@ -118,10 +118,14 @@ static int init_video_param(AVCodecContext
> > *avctx, QSVEncContext *q)
> >
> >      switch (q->param.mfx.RateControlMethod) {
> >      case MFX_RATECONTROL_CBR:
> > +	q->param.mfx.InitialDelayInKB = avctx-
> >rc_initial_buffer_occupancy / 1000;
> > +        q->param.mfx.TargetKbps       = avctx->bit_rate / 1000;
> > +        q->param.mfx.MaxKbps          = avctx->bit_rate / 1000;
> > +        break;
> >      case MFX_RATECONTROL_VBR:
> >          q->param.mfx.InitialDelayInKB = avctx-
> >rc_initial_buffer_occupancy / 1000;
> >          q->param.mfx.TargetKbps       = avctx->bit_rate / 1000;
> > -        q->param.mfx.MaxKbps          = avctx->bit_rate / 1000;
> > +        q->param.mfx.MaxKbps          = avctx->rc_max_rate / 1000;
> 
> why is rc_max_rate not used for MFX_RATECONTROL_CBR ?

Hi Michael,

Ivan is on vacation and I did the fix according to his last command : 

"This correct for MFX_RATECONTROL_CBR but a bug for MFX_RATECONTROL_VBR.
Will fixed later. For any case part of ratecontrol setup should be
re-designed to support more advanced LA rate contol"

The Intel Documentation states that : 

For variable bitrate control, the MaxKbps parameter specifies the maximum
bitrate at which the encoded data enters the Video Buffering Verifier (VBV)
buffer. 

And for CBR the target bitrate and max bitrate should be equal to archive a
bitrate that is near a desired target for streaming (no peaks etc.)

Btw, sorry for sending the patch twice
> 
> [...]
> --
> Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
> 
> There will always be a question for which you do not know the correct
> answer.



More information about the ffmpeg-devel mailing list