Mat*_*att 2 video video-encoding h.264 mpeg-4 bitstream
我试图通过使用十六进制编辑器查看视频文件的比特流来了解一些有关 h264 的知识。我在这里找到了视频对象平面 (0x000001b6) 和 i 帧 (0x000001b600) 的起始代码。
但我在视频文件中找不到很多这样的字节。大多数情况下,这些起始代码出现在文件的开头,中间只有几位。我预计它们会非常有规律地出现,在整个文件中距离相等!?
用这种方式用十六进制编辑器查看文件是否可以?还存在哪些其他起始代码以及 h264 文件是如何组织的?
起始0x000001b6代码适用于 mpeg-4 第 2 部分视频,这是简单的配置文件。这对应于 XVID 和 DIVX 等编解码器。H.264 是 mpeg-4 第 10 部分,它是高级视频编码配置文件。H.264 使用不同的起始码。
我对第 10 部分不像对第 2 部分那么熟悉,但简单浏览一下标准 (ISO 14496-10) 就会发现,比特流被分成称为 NAL 单元的部分。这些单元前面有 24 位代码,0x000001用于根据 B.1.1 节进行同步。根据第 7.3.1 节,以下字节由字段forbidden_zero_bit、nal_ref_idc和组成。nal_unit_type
我不确定这些 NAL 单元是否在帧边界上分开。您可能只需要掌握列出所有比特流语法的标准即可。