如何在h264中找到任何I / B / P帧?

时间:2014-06-26 11:05:46

标签: video-streaming h.264 mpeg-4 bytestream

我需要在h264字节流中找到任何(I / B / P)新帧。

我听说过NAL标题,但我有一个奇怪的流:

00 00 00 01 09 F0 00 00 00 01 
67 64 00 1E AC B2 01 40 5F F2 
E0 22 00 00 07 D2 00 01 D4 C0 
1E 2C 5C 90 00 00 00 01 68 EB 
C3 CB 22 C0 00 00 01 06 05 FF 
  1. 什么是00 00 00 01之间的0x09 0xF0?
  2. 如何检测新帧(I / B / P中的任何一个)?

1 个答案:

答案 0 :(得分:2)

从哪里开始。

首先关闭0x09 0xF0是访问单元分隔符。这是你的框架的开始。但请注意,这是一个可选的NALU,可能不存在于所有帧中。其次,帧可以由多个切片组成,并且每个切片可以是I / P / B类型。因此,可以找到包含所有三种切片类型的帧。我可以详细介绍如何确定切片类型,以及如果没有AUD,如何找到帧的开头。但是这两个主题都非常大,而且应该(并​​且可能确实)有自己的Stack Overflow问题。