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