【发布时间】:2016-10-05 12:39:09
【问题描述】:
我正在尝试通过搜索来检测 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 规范为freely available。 00 00 00 01 在附件 B“字节流格式”部分进行了描述。那么你的65 就是映射到第 7.3.1 节“NAL 单元语法”的内容:
因此,您可以正确地将字节流拆分为 NAL 单元,并确定您的启发式方法未检测到 I 帧的原因。具体来说,您假设两位值恰好等于三。
另外,切片类型定义如下:
另见:
【讨论】: