VideoToolbox无法正确解码MFT编码的H264

时间:2015-06-05 22:33:58

标签: ios h.264 mft video-toolbox

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

事实证明,Windows 7上的MFT H264编码器返回一个具有多个NAL的帧。 VideoToolbox解码器要求用NAL大小替换NAL起始码(0x00 00 00 01);当它在帧中找到第二个NAL起始码时,它停止解码。在Windows 8或更高版本上再次使用MFT H264编码器并不能做到这一点。