7

H264 文件是 NAL(网络抽象层)单元的流,每个单元编码一个帧(I、B 或 P)。解析此文件并提取大小和检测文件中每个 NAL 单元的结尾以及检测 NAL 单元包含的帧类型的最佳方法是什么?

4

1 回答 1

22

如果您实际上并未尝试解码帧,则可以通过读取 h.264 字节流并查找 NAL 单元签名来编写一个简单的“解析器”。

以下是您需要了解的内容:

  • NAL 单位起始代码:00 00 01 XY
  • X = IDR 图片 NAL 单位(例如 25、45、65)
  • Y = 非 IDR 图片 NAL 单元(例如 01、21、41、61)

因此,如果您依次找到 3 个字节 [00 00 01],则很可能它是 NAL 单元的开头。然后您将需要解析接下来的两个字节 [XY] 以找出帧的类型。有关详细信息,请参阅规范。

于 2012-04-12T12:50:53.570 回答