我如何解析H264文件和帧

时间:2012-04-12 12:25:36

标签: c++ c visual-c++ h.264

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

1 个答案:

答案 0 :(得分:20)

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

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

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

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