gpt4 book ai didi

video-streaming - 使用视频工具箱在 iOS 8 中解码 h264

转载 作者:行者123 更新时间:2023-12-04 11:05:30 24 4
gpt4 key购买 nike

需要解码 h264 流并获取像素缓冲区

我知道在 iOS 8 上使用视频工具箱是可能的

1.如何将h264流转为CMSampleBufferRef ?

2.如何使用视频工具箱进行解码?

最佳答案

我假设您获得的是 Annex B 格式的流,如果它已经是 AVCC 格式(读取 MP4),那么您可以使用 AssetReader 并且不需要做太多事情。

对于 Annex B 流(这就是人们通常所说的原始 h264 流)。

  • 提取 SPS/PPS NAL 单元并从中创建参数集。您会定期收到它们。它们包含有关如何解码帧的解码信息。
  • 创建具有持续时间的 TimingInfo 数组(您可以从解析 SPS 的 VUI 部分中获取它)以及演示时间戳和解码时间戳。如果流是作为 MPEG2 TS 接收的,则从 PESr 获取时间戳。如果不只是根据您的计算提供缺失的信息。
  • 将 VLC NAL 单元包装在 CMBlockBuffer 中。您可以在其中放入多个。如果您通过 RTP 接收流可能会导致 NAL 单元碎片化,请确保每个 NAL 单元都完整。
  • 将 NAL 单元包装在 CMBlockbuffer 中时,用长度 header 替换 3 或 4 字节的起始代码。
  • 将信息提供给 CMSampleBufferCreate,您可以在 VTDecompressionSession
  • 中解码帧

    WWDC 提供了一个预设,它更详细地解释了这些步骤,并提供了示例代码。

    关于video-streaming - 使用视频工具箱在 iOS 8 中解码 h264,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26012146/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com