我试图通过搜索来检测 TS 中的 I 帧:
0x00 0x00 0x00 0x01 0x65
但是,它不适用于某些流。在某些流中,这种序列非常罕见。有没有其他方法可以检测 I 帧?
编辑:我还尝试将 TS 保存到文件中,然后提取 H.264 有效负载。提取的有效载荷仅包含几个 0x00 0x00 0x00 0x01 0x65 字节序列。
我试图通过搜索来检测 TS 中的 I 帧:
0x00 0x00 0x00 0x01 0x65
但是,它不适用于某些流。在某些流中,这种序列非常罕见。有没有其他方法可以检测 I 帧?
编辑:我还尝试将 TS 保存到文件中,然后提取 H.264 有效负载。提取的有效载荷仅包含几个 0x00 0x00 0x00 0x01 0x65 字节序列。
您正在尝试做的事情看起来像是一个盲目的猜测。H.264 规范是免费提供的。00 00 00 01
在附件 B“字节流格式”部分中进行了描述。那么你65
就是映射到第 7.3.1 节“NAL 单元语法”的内容:
因此,您可以正确地将字节流拆分为 NAL 单元,并确定您的启发式方法未检测到 I 帧的原因。具体来说,您假设两位值恰好等于三。
此外,切片类型定义如下:
也可以看看: