gpt4 book ai didi

h.264 - H264视频起始码的使用

转载 作者:行者123 更新时间:2023-12-04 22:08:13 24 4
gpt4 key购买 nike

我对 H264 视频的起始代码 (0x00 0x00 0x00 0x01) 的使用有一般疑问。我不清楚此起始代码的用法,因为 RTP RFC 中没有与 H264 视频相关的引用。但我确实在网上看到了很多引用资料,尤其是在 stackoverflow 中。

我很困惑,因为我看到一个客户端没有这个启动代码,而另一个客户端正在使用这个启动代码。所以,我正在寻找一个具体的答案,在哪里应该使用这个起始代码,哪里不应该使用。

穆拉利

最佳答案

有两种 H.264 流格式,它们有时被称为

  • 附件 B(在原始 H.264 流中找到)
  • AVCC(在 MP4 等容器中发现)

  • H.264 流由 NAL(封装的单位)组成

    (1) 附件B : 在每个 NAL 单元的字节之前有 4 字节的起始码 [x00][x00][x00][x01] .
    [start code]--[NAL]--[start code]--[NAL] etc

    (2) AVCC : 是大小前缀(意思是每个 NALU 都以这个 NALU 的字节大小开始)
    [SIZE (4 bytes)]--[NAL]--[SIZE (4 bytes)]--[NAL] etc

    一些注意事项:
  • AVCC (MP4) 流格式不包含任何 SPS、PPS 或 AU 定界符类型的 NAL。由于该特定信息现在位于 MP4 元数据中。
  • 您可以在 MPEG-2 TS、RTP 和一些编码器的默认输出中找到附件 B 格式。
  • 您可以在 MP4、FLV、MKV、AVI 和此类 A/V 容器格式中找到 AVCC 格式。

  • 两种格式都可以相互转换。

    MP4 附件 B :去除起始码,插入NAL长度,过滤掉SPS、PPS和AU定界符。

    MP4 到附件 B :去除长度,插入起始码,为每个I帧插入SPS,为每个帧插入PPS,为每个GOP插入AU定界符。

    关于h.264 - H264视频起始码的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28421375/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com