没有“0x00 0x00 0x00 0x01 0x65”的 H.264 有效负载

H.264 payload with no '0x00 0x00 0x00 0x01 0x65'

我正在尝试通过搜索来检测 TS 中的 I 帧:

0x00 0x00 0x00 0x01 0x65

但是,它不适用于某些流。在某些溪流中,这种顺序非常罕见。还有其他检测I帧的方法吗?

编辑: 我还尝试将 TS 保存到文件中,然后提取 H.264 有效负载。提取的有效载荷仅包含几个 0x00 0x00 0x00 0x01 0x65 字节序列。

您的尝试看起来像是盲目猜测。 H.264 规范是 freely available00 00 00 01 在附件 B "Byte stream format" 部分中进行了描述。那么你的 65 就是映射到第 7.3.1 节的内容 "NAL unit syntax":

因此,您可以将字节流正确地拆分为 NAL 单元,并确定您的启发式算法未检测到的原因 I-Frames。具体来说,您假设两位值正好等于三。

此外,切片类型定义如下:

另请参阅:

  • Possible Locations for Sequence/Picture Parameter Set(s) for H.264 Stream
  • How to detect I/P/B frame from H264 RTP packet