0

有没有人遇到过 VideoToolbox 无法正确解码 Media Foundation Transform (MFT) 编码的 H264 的问题?解码后的帧有一半以上的绿色块失真。我尝试了Livy Stork 的示例来解码 MFT 编码的 H264,它通过网络从 Windows 7 桌面上运行的 PC 视频端点传输。我正在使用 Xcode 6.3 并在 iOS 8 设备上运行它。

线索:当 MFT 编码的 H264 来自在 Windows 8 或 8.1 桌面/平板电脑上运行的 PC 视频端点时,相同的算法可以正常工作。根据MSDN,大多数编解码器属性在 Windows 7 中不受支持,但我无法弄清楚哪个属性有所不同......

4

2 回答 2

1

但是如果你替换所有 NALU 的所有起始代码,它应该可以工作。我已经成功解决了一个问题,即使用 Video Toolbox 解码具有多个 I 切片或多个 p 切片的数据数组,当它们以 4 字节开始代码开始,然后跟随 8 切片和 3 字节开始代码。只需分别用切片长度替换每个起始代码。请注意,切片长度不包括起始码长度,您应该忽略它们。

于 2016-08-25T17:37:11.940 回答
0

事实证明,Windows 7 上的 MFT H264 编码器返回具有多个 NAL 的帧。VideoToolbox 解码器需要将 NAL 起始码(0x00 00 00 01)替换为 NAL 大小;当它在帧中找到第二个 NAL 起始码时,它停止解码。同样,Windows 8 或更高版本上的 MFT H264 编码器不会执行此操作。

于 2015-06-09T14:58:47.520 回答