我正在使用 Media Foundation SDK 将视频编码为 WMV。我看到可以使用属性设置 B 帧的数量,但我不知道如何/在哪里设置它。
该属性称为 MFPKEY_NUMBFRAMES 并在此处进行了描述:http: //msdn.microsoft.com/en-us/library/windows/desktop/ff819354%28v=vs.85%29.aspx
我们的代码大致做了以下事情:
- 调用 MFStartup
- 调用一次 MFCreateAttributes,这样我们就可以设置 muxer、video 和 audio 属性
- 配置上一步创建的 IMFAttributes,例如通过设置视频比特率: pVideoOverrides->SetUINT32(MF_MT_AVG_BITRATE, m_iVideoBitrateBPS);
- 通过调用 IMFReadWriteClassFactory::CreateInstanceFromURL 创建接收器编写器
- 对于每一帧,在接收器写入器上调用 WriteSample
- 呼叫 MFShutdown
我是否应该在我还设置视频比特率的 IMFAttribute 上设置 b-frames 属性?