I am trying to use MFX_RATECONTROL_QVBR and I am getting the same problem described here : https://software.intel.com/en-us/forums/intel-media-sdk/topic/594161 .
The difference is that I am using the H264 encoder on windows.
In pipeline_encode::InitMfxEncParams (line ~370, just after setting the TargetKbps) I added
m_mfxEncParams.mfx.MaxKbps = pInParams->nBitRate * 2;
m_mfxEncParams.mfx.BufferSizeInKB = (m_mfxEncParams.mfx.MaxKbps / 8);
m_mfxEncParams.mfx.RateControlMethod = MFX_RATECONTROL_QVBR;
m_CodingOption3.Header.BufferId = MFX_EXTBUFF_CODING_OPTION3;
m_CodingOption3.Header.BufferSz = sizeof(m_CodingOption3);
m_CodingOption3.QVBRQuality = 30;
I tried to use software and hardware implementations. In both cases I got MFX_ERR_INCOMPATIBLE_VIDEO_PARAM from m_pmfxENC->Init(&m_mfxEncParams;
Attached are tracer logs and system analyzer output.
I can confirm that the original 'sample_encode' is working without any problem (both sw and hw).
Also, I couldn't find in the release notes if QVBR rc is supported on windows and if so, which encoders supporting this rate control (HEVC? MPEG2?)
Can you please refer me to the correct file/link ?
I am using Media Server Studio 2016
Uri has asked same question through IPS, case number 6000159669. I am copying my reply here to the original question -" QVBR is supported for windows and H264 codec. It is not supported for other codecs. Can you please confirm if your are seeing issue with H264 encoding using QVBR rate control?"
Can we discuss this issue at one place to avoid multiple parallel discussion on same topic.
I am able to reproduce the issue on 3rd generation core processor, however same application works on 4th generation core processor. My initial analysis is that it could be broken on 3rd generation driver, will check with the driver and developer team to work on the root cause.
I tested using hardware implementation, also received confirmation form development team that QVBR is not supported on 3rd generation. This rate control successfully works on 4th generation. QVBR is not supported through sw implementation, from Media Server Studio release notes -
- The following APIs are not supported by the software implementation of the SDK library:
- mfxExtEncoderCapability, mfxExtEncoderResetOption, mfxExtAVCEncodedFrameInfo
- MFX_RATECONTROL_LA, MFX_RATECONTROL_ICQ, MFX_RATECONTROL_LA_ICQ, MFX_RATECONTROL_VCM, MFX_RATECONTROL_QVBR, MFX_RATECONTROL_LA_HRD and any options related to these BRC modes