MP4文件的帧/像素数据的偏移量?

时间:2019-05-23 08:27:00

标签: c++ mp4 video-processing

有关mp4文件格式,请参阅此文档,这是我发现的最清晰的文件之一: http://xhelmboyx.tripod.com/formats/mp4-layout.txt

如果您搜索: 4字节视频帧像素大小

您将找到带有该文本的行。

  1. 我如何知道文件开头的偏移量,以便提取“帧视频大小”?

  2. 在哪里可以找到所有帧及其像素数据?

1 个答案:

答案 0 :(得分:2)

首先,链接文件很差-要真正了解MP4结构,您应该阅读ISO 14496-12标准(zipped version here)。关于您的问题:

1)不能。没有固定的偏移量。由于存在强制和可选框,因此结构可能会更改,因此在每个文件中,包含所需数据的tkhd框可以位于不同的偏移量。最坏的情况是,您可以在文件中扫描tkhd的框ID,然后尝试解析该框(请参阅规范中的布局)。但是请注意,可能存在多个轨道。

2)帧已编码,因此您没有“像素数据”-您具有必须解码的“压缩视频流”。可以计算实际偏移量。二进制数据位于mdat框内,但是您必须从其他框知道实际的视频有效载荷大小,才能知道在何处分割它们。