- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am having troubles getting a bitrate that is close to my desired bitrate. I am using Constate Bitrate Control at 700 kbps with a frame rate of 30 fps. I keep track of the encoded frame size by looking at the mfxBitStream datalength property, multiplying by 8 to get bits and dividing by num seconds of encoding to attempt to calculate the bitrate. I seem to consistently calculate a bitrate of 1/2 of the TargetKbps. Does anything look out of place for my encoder parameters? Thanks!
// set up encoder parameters
encoderParameters = new mfxVideoParam();
memset(encoderParameters, 0, sizeof(encoderParameters));encoderParameters->mfx.CodecId = MFX_CODEC_AVC;
encoderParameters->mfx.TargetUsage = MFX_TARGETUSAGE_BALANCED;
encoderParameters->mfx.TargetKbps = 700;
encoderParameters->mfx.RateControlMethod = MFX_RATECONTROL_CBR;
encoderParameters->mfx.FrameInfo.FrameRateExtN = 30;
encoderParameters->mfx.FrameInfo.FrameRateExtD = 1;
encoderParameters->mfx.FrameInfo.FourCC = MFX_FOURCC_NV12;
encoderParameters->mfx.FrameInfo.ChromaFormat = MFX_CHROMAFORMAT_YUV420;
encoderParameters->mfx.FrameInfo.PicStruct = MFX_PICSTRUCT_PROGRESSIVE;
encoderParameters->mfx.FrameInfo.CropX = 0;
encoderParameters->mfx.FrameInfo.CropY = 0;
encoderParameters->mfx.FrameInfo.CropW = 640;
encoderParameters->mfx.FrameInfo.CropH = 360;encoderParameters->mfx.CodecProfile = MFX_PROFILE_AVC_BASELINE;
encoderParameters->mfx.CodecLevel = MFX_LEVEL_AVC_3;
encoderParameters->mfx.GopPicSize = 30;
encoderParameters->mfx.GopRefDist = 1;
encoderParameters->mfx.GopOptFlag = MFX_GOP_CLOSED;encoderParameters->mfx.FrameInfo.Width = MSDK_ALIGN16(width);
encoderParameters->mfx.FrameInfo.Height = (MFX_PICSTRUCT_PROGRESSIVE == encoderParameters->mfx.FrameInfo.PicStruct)?
MSDK_ALIGN16(height) : MSDK_ALIGN32(height);encoderParameters->IOPattern = MFX_IOPATTERN_IN_SYSTEM_MEMORY;
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Zach,
I did some quick tests here with the same config and I observe the actual bitrate of the encoded stream very close to the specified rate.
You may get some average rate discrepancy if your input is of very static nature. What type of content are you encoding?
Are you using HW or SW encode? Also what driver version and Media SDK version are you using?
Regards,
Petter
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I was using SW encoding on version 1.7. I just upgraded and seem to be experiencing the same issue. I tried to encode a video with a lot of motion and still experienced the same result. I will try to encode with one of the sample projects and report my results.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page