【问题标题】:Offset of Frames/Pixel Data for MP4 file?MP4 文件的帧/像素数据的偏移量?
【发布时间】:2019-05-23 08:26:59
【问题描述】:

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

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

您会找到包含该文本的行。

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

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

【问题讨论】:

    标签: c++ mp4 video-processing


    【解决方案1】:

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

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

    2) 帧经过编码,因此您没有“像素数据”——您有必须解码的“压缩视频流”。可以计算实际偏移量。二进制数据位于mdat 框内,但您必须知道其他框的实际视频有效负载大小才能知道在哪里拆分它们。

    【讨论】:

    • 好的,谢谢@Rudolfs,我现在已经开始找到解决 mp4 格式的方法了。我假设一旦压缩视频流被解码,像素数据就会显示出来,对吗?
    • 是的。此外,如果详细程度设置为最大,VLC 消息窗口会转储 mp4 框结构 - 您可以使用它进行故障排除。
    猜你喜欢
    • 1970-01-01
    • 2022-08-21
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    • 2020-12-01
    • 2010-10-04
    • 2019-06-07
    • 2019-04-05
    相关资源
    最近更新 更多