C++ 如何解析H264文件和帧

C++ 如何解析H264文件和帧,c++,c,visual-c++,h.264,C++,C,Visual C++,H.264,H264文件是NAL(网络抽象层)单元流,每个单元编码一个帧(I、B或p)。解析此文件、提取大小、检测文件中每个NAL单元的结尾以及检测NAL单元包含的帧类型的最佳方法是什么?如果您实际上没有尝试解码帧,则可以通过读取h.264字节流并查找NAL单元签名来编写简单的“解析器” 以下是您需要知道的: NAL装置启动代码:00 01 X Y X=IDR图像NAL单位(例如25、45、65) Y=非IDR图像NAL单位(例如01、21、41、61) 因此,如果您在序列中找到3个字节[0001],很

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

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

以下是您需要知道的:

  • NAL装置启动代码:00 01 X Y
  • X=IDR图像NAL单位(例如25、45、65)
  • Y=非IDR图像NAL单位(例如01、21、41、61)

因此,如果您在序列中找到3个字节[0001],很可能是NAL单元的开始。然后,您将需要解析下两个字节[xy]的值,以找出帧的类型。如果你的平台是Vista和以上的话,你可以使用MediaFoundation:SDKF中有示例应用程序,如果你返回,你可以接受其他答案,这样我就可以删除MIE这个问题是完全集中的,并要求一个单一的问题的解决方案:如何解析H264文件作为NEL单元的流。人们不应该关闭他们知识领域之外的问题。