Media (Intel® Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools like Intel® oneAPI Video Processing Library and Intel® Media SDK
Announcements
The Intel Media SDK project is no longer active. For continued support and access to new features, Intel Media SDK users are encouraged to read the transition guide on upgrading from Intel® Media SDK to Intel® Video Processing Library (VPL), and to move to VPL as soon as possible.
For more information, see the VPL website.

h264 encoder without PPS and SEI in each frame

richardor_c_
Beginner
704 Views

您好,

我在使用intel media sdk硬编时,发现编出来的数据每帧前面都有PPS和SEI,请问我如何才能只在I帧前面有PPS和SEI,而P帧前面没有?mfxExtCodingOption该如何设置?谢谢。

 

0 Kudos
3 Replies
Jiandong_Z_Intel
Employee
704 Views

Hi There,

About H264 HW encode, you want only have PPS and SEI before I frame, not have PPS and SEI before P frame. replace echo frame have PPS and SEI currently.

Here is some settings suggest to you.

1. set mfxExtCodingOption.RefPicMarkRep to MFX_CODINGOPTION_OFF

about  RefPicMarkRep can be referred in Intel Media SDK Reference Manual page 90, descript like below:

Set this flag to write the reference picture marking repetition
SEI message into the output bitstream. See the
CodingOptionValue enumerator for values of this option.

2. set mfxExtCodingOption2.RepeatPPS to MFX_CODINGOPTION_OFF

about  RepeatPPS  can be referred in Intel Media SDK Reference Manual page 94, descript like below:

This flag controls picture parameter set repetition in AVC
encoder. Turn ON this flag to repeat PPS with each frame. See
the CodingOptionValue enumerator for values of this option.
The default value is ON. This parameter is valid only during
initialization.

 

Best Regards,

Zachary

0 Kudos
宋_小_
Beginner
704 Views

    m_CodingOption.Header.BufferId = MFX_EXTBUFF_CODING_OPTION;
    m_CodingOption.Header.BufferSz = sizeof(m_CodingOption);
    m_CodingOption.AUDelimiter = MFX_CODINGOPTION_OFF;
    m_CodingOption.RefPicMarkRep = MFX_CODINGOPTION_OFF;

    m_CodingOption2.Header.BufferId = MFX_EXTBUFF_CODING_OPTION2;
    m_CodingOption2.Header.BufferSz = sizeof(m_CodingOption2);
    m_CodingOption2.RepeatPPS = MFX_CODINGOPTION_OFF;

    m_EncExtParams.push_back((mfxExtBuffer *)&m_CodingOption);
    m_EncExtParams.push_back((mfxExtBuffer *)&m_CodingOption2);
    m_par.ExtParam = &m_EncExtParams[0];
    m_par.NumExtParam = 2;

but still have sei message per frame.

0 Kudos
宋_小_
Beginner
704 Views

I have found the problem. It was the NalHrdConformance flag. Set this flag to MFX_CODINGOPTION_OFF, I got the right answer.

0 Kudos
Reply