我如何解析H264文件和帧

Har*_*rry 6 c c++ h.264 visual-c++

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

Geo*_*sov 20

如果你没有真正尝试帧解码,可以通过读取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]以找出帧的类型.有关更多详细信息,请参阅规范.

  • 9 年是一段很长的时间,@PeterHansen (2认同)