无法使用 Media Foundation h264 编码器设置自定义 SEI
Posted
技术标签:
【中文标题】无法使用 Media Foundation h264 编码器设置自定义 SEI【英文标题】:Cannot set custom SEI using Media Foundation h264 encoder 【发布时间】:2021-04-30 08:39:24 【问题描述】:我设置了一个MFSinkWriter
,它在输入中采用RGB MFMediaType
,并生成一个H.264 MFMediaType
作为输出。
我需要为每个编码的MFSample
添加 SEI 信息。使用 Windows Media Foundation 应该可以使用属性 MF_MT_FORWARD_CUSTOM_SEI
输出 MFMediaType
。
编码时,在将MFSample
传递给MFSinkWriter
之前,我将MFSampleExtension_Encryption_SEIData
添加到一个包含我需要的自定义信息的blob 中。但是,在检查生成的文件时,SEI 字段为空。
没有关于如何使用 MF_MT_FORWARD_CUSTOM_SEI
或 MFSampleExtension_Encryption_SEIData
的文档/示例。有什么建议吗?
【问题讨论】:
【参考方案1】:...使用 Windows Media Foundation 应该可以这样做使用属性
MF_MT_FORWARD_CUSTOM_SEI
...
...没有关于如何使用
MF_MT_FORWARD_CUSTOM_SEI
或 MFSampleExtension_Encryption_SEIData 的文档/示例
不,这是不可能的。特别是因为没有记录在案的行为,也没有记录在案的行为。您可以通过不使用 Sink Writer 来实现期望:如果您自己管理编码器并且您有原始 H.264 输出,那么您可以更新 NAL 单元并使用您需要的其他 SEI NAL 单元修改它们。
【讨论】:
以上是关于无法使用 Media Foundation h264 编码器设置自定义 SEI的主要内容,如果未能解决你的问题,请参考以下文章
使用 Media Foundation .NET 从 MP4 获取帧速率
使用 IMFSourceReader 进行音频流式传输(Microsoft Media Foundation)