我对 H264 视频的起始代码 (0x00 0x00 0x00 0x01) 的使用有一般性问题。我不清楚此起始代码的用法,因为 RTP RFC 中没有与 H264 视频相关的引用。但是我确实在网上看到了很多引用资料,尤其是在 stackoverflow 中。
我很困惑,因为我看到一个客户端没有这个启动代码,而另一个客户端正在使用这个启动代码。所以,我正在寻找一个具体的答案,在哪里应该使用这个起始代码,哪里不应该使用。
穆拉利
最佳答案
有两种 H.264 流格式,它们有时被称为
H.264 流由 NAL(封装的单位)组成
(1) Annex B :在每个 NAL 单元的字节
[x00][x00][x00][x01]
之前有 4 字节的起始代码。[start code]--[NAL]--[start code]--[NAL] etc
(2) AVCC : 是大小前缀(意思是每个 NALU 以这个 NALU 的字节大小开始)
[SIZE (4 bytes)]--[NAL]--[SIZE (4 bytes)]--[NAL] etc
一些注意事项:
两种格式都可以相互转换。
Annex B to MP4 :去除起始码,插入 NAL 长度,过滤掉 SPS、PPS 和 AU 分隔符。
MP4 到附件 B :删除长度,插入起始码,为每个 I 帧插入 SPS,为每个帧插入 PPS,为每个 GOP 插入 AU 定界符。
关于h.264 - H264视频起始码的使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28421375/