MP4 / MOV H.264 - 确定字节流标准(附件B或AVC)

时间:2015-11-19 10:11:56

标签: video format h.264

如何判断MP4或MOV H.264视频文件的视频字节流是使用AVC标准还是附件B标准解码的?两种标准都可以用0x000001启动它们的NALU。

在附件B标准中,每个NALU都以起始码0x000001或0x00000001开头。在AVC标准中,长度字段也可以是0x00000134。在MP4文件中是否有任何附加信息,它给出了提示,起始字节(0x00000134)是AVC标准的长度字段而不是附件B标准视频的起始码0x000001?

在我的具体示例中,我的MP4视频文件具有AVC标准,而我的MOV文件具有附录B标准。两者都将“NALULengthSizeMinusOne”字段设置为值4.

2 个答案:

答案 0 :(得分:3)

"附件B"通常看起来像这样:

(AUD)(SPS)(PPS)(I-Slice)(PPS)(P-Slice)(PPS)(P-Slice)...(AUD)(SPS)(PPS)(I-Slice)

" AVC"或者" MP4"通常删除(AUD)(SPS)(PPS)。 附件B应从00 00 00 01 09 00 00 00 01 x8开始。

因此,您可以查找起始码前缀AUDs,SPS和PPS。

对于" AVC"您可以读取大小字段,而不是验证下一个字节是否包含有效的NAL单元类型,而不是通过NAL搜索并执行相同的操作。

答案 1 :(得分:2)

mp4 / mov中根本不支持AnnexB。