无法使用 Media Foundation h264 编码器设置自定义 SEI

问题描述

我设置了一个 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_SEIMFSampleExtension_Encryption_SEIData 的文档/示例。有什么建议吗?

解决方法

... 使用 Windows Media Foundation 应该可以这样做 使用属性 MF_MT_FORWARD_CUSTOM_SEI...

... 没有关于如何使用 MF_MT_FORWARD_CUSTOM_SEI 或 MFSampleExtension_Encryption_SEIData 的文档/示例

不,这是不可能的。特别是因为没有记录的行为,也没有记录的行为。您可以通过不使用 Sink Writer 来实现预期效果:如果您自己管理编码器并且您拥有原始 H.264 输出,那么您可以更新 NAL 单元并使用您需要的其他 SEI NAL 单元对其进行修改。