【问题标题】:H.264 payload with no '0x00 0x00 0x00 0x01 0x65'没有“0x00 0x00 0x00 0x01 0x65”的 H.264 有效载荷
【发布时间】:2016-10-05 12:39:09
【问题描述】:

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

0x00 0x00 0x00 0x01 0x65

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

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

【问题讨论】:

    标签: h.264 transport-stream


    【解决方案1】:

    您正在尝试做的事情看起来像是盲目猜测。 H.264 规范为freely available00 00 00 01 在附件 B“字节流格式”部分进行了描述。那么你的65 就是映射到第 7.3.1 节“NAL 单元语法”的内容:

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

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

    另见:

    【讨论】:

    • 好的,我也应该寻找 0x25 和 0x45。我试过了,但这些单位根本不存在。不过,这些标准片段并不是我问题的答案。
    • NAL 类型 5 将为您提供 IDR。要定位不是 IDR 的 I 帧,您将不得不展开切片类型的比特流 - 这也是上面引用的表格和链接答案所解释的内容。
    • 你现在搞定了。非 IDR 帧也应该被处理!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    相关资源
    最近更新 更多