【问题标题】:VideoToolbox can't decode MFT encoded H264 properlyVideoToolbox 无法正确解码 MFT 编码的 H264
【发布时间】:2015-08-21 00:15:03
【问题描述】:

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

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

【问题讨论】:

    标签: ios h.264 ms-media-foundation video-toolbox


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-11-26
        • 2018-11-14
        • 2016-05-30
        • 1970-01-01
        • 1970-01-01
        • 2016-07-18
        • 1970-01-01
        相关资源
        最近更新 更多