每个关键帧中具有 header 的 MP4 片段

MP4 segments with header in each keyframe

我试图在分段文件 (styp) 的 mp4 容器中找到 h264 帧。对于分割,我目前正在使用 MP4Box 破折号。我使用了 MP4Box 解析器,我注意到在每个关键帧 (IDR) 中,样本的大小与原始文件中同一帧的大小不同。我计算了差异,对于其他段中的同一文件,它总是 37 字节。

这些字节代表什么?它们仅出现在每个关键帧之前的分段 mp4 文件类型中。我用其他文件进行了测试,这些字节的数量略有不同(其他文件是 39 字节)并且不是相同的数据(尽管它们共享一些字节模式)。这是来自 mp4 标准或 H264 甚至 MP4Box 的东西吗?我不知道。

00 00 00 19 67 ... - H.264 SPS NAL 0x19 (25) + 4 = 29 字节大小

00 00 00 04 68 ... - H.264 PPS NAL 0x04 (4) + 4 = 8 字节大小

总而言之,这给出了 SPS/PPS 的 29 + 8 = 37 个字节。通常对于 mp4(avc1 样本)SPS/PPS 不存在于带内(mdat 盒)并存储在 avcC 盒中 out-of-band。但这不是严格的规则 afaik,SPS/PPS 可以是带内的,out-of-band 或 out-of-band 仅对于 avc3 样本。