没有合适的资源?快使用搜索试试~ 我知道了~
mp4格式文件分析
需积分: 9 2 下载量 59 浏览量
2018-03-14
17:10:44
上传
评论
收藏 468KB DOCX 举报
温馨提示
试读
18页
mp4格式文件分析描述了解析MP4文件的具体步骤,对mp4文件主要的box都有分析说明。
资源推荐
资源详情
资源评论
mp4 文件格式解析
目前 MP4 的概念被炒得很火,也很乱。最开始 MP4 指的是音频(MP3 的升级版),即
MPEG-2 AAC 标准。随后 MP4 概念被转移到视频上,对应的是 MPEG-4 标准。而现在我们
流行的叫法,多半是指能播放 MPEG-4 标准编码格式视频的播放器。但是这篇文章介绍的
内容跟上面这些都无关,我们要讨论的是 MP4 文件封装格式,对应的标准为 ISO/IEC
14496-12,即信息技术 视听对象编码的第 12 部分:ISO基本媒体文件格式(Information
technology Coding of audio-visual objects Part 12: ISO base media file format)。ISO/IEC 组织
指定的标准一般用数字表示,ISO/IEC 14496 即 MPEG-4 标准。
((( MP4 视频文件封装格式是基于 QuickTime 容器格式定义的,因此参考 QuickTime 的格式
定义对理解 MP4 文件格式很有帮助。MP4 文件格式是一个十分开放的容器,几乎可以用来
描述所有的媒体结构,MP4 文件中的媒体描述与媒体数据是分开的,并且媒体数据的组织
也很自由,不一定要按照时间顺序排列,甚至媒体数据可以直接引用其他文件。同时,
MP4 也支持流媒体。MP4 目前被广泛用于封装 h.264 视频和 AAC 音频,是高清视频的代表。
现在我们就来看看 文件格式到底是什么样的。
1、概述
文件中的所有数据都装在 ( 中为 )中,也就是说
文件由若干个 组成,每个 有类型和长度,可以将 理解为一
个数据对象块。 中可以包含另一个 ,这种 称为 。
一个 文件首先会有且只有一个“类型的 ,作为 格式的标志
并包含关于文件的一些信息;之后会有且只有一个“类型的
(),它是一种 ,子 包含了媒体的
信息; 文件的媒体数据包含在“类型的 (
)中,该类型的 也是 ,可以有多个,也可以没
有(当媒体数据全部引用其他文件时),媒体数据的结构由 进行描
述。
下面是一些概念:
track表示一些 的集合,对于媒体数据来说, 表示一个视频或
音频序列。
hint track这个特殊的 并不包含媒体数据,而是包含了一些将其他数
据 打包成流媒体的指示信息。
sample对于非 来说, 即为一帧视频,或一组连
续视频帧, 即为一段连续的压缩音频,它们统称 。对
于 , 定义一个或多个流媒体包的格式。
sample table指明 时序和物理布局的表。
chunk一个 的几个 组成的单元。
在本文中,我们不讨论涉及 的内容,只关注包含媒体数据的本地 文
件。下图为一个典型的 文件的结构树。
2、Box
首先需要说明的是, 中的字节序为网络字节序,也就是大端字节序
( !"),简单的说,就是一个 #$ 位的 字节整数存储方式为高位字
节在内存的低端。 由 和 组成,其中 统一指明
的大小和类型, 根据类型有不同的意义和格式。
标准的 开头的 个字节(#$ 位)为 %,该大小包括
和 整个 的大小,这样我们就可以在文件中定位各个 。如果
% 为 &,则表示这个 的大小为 %,真正的 % 值要在
% 域上得到。(实际上只有“类型的 才有可能用到
%。)如果 % 为 ',表示该 为文件的最后一个 ,文件结尾即为该
结尾。(同样只存在于“类型的 中。)
% 后面紧跟的 #$ 位为 ,一般是 个字符,如“、“等,
这些 都是已经预定义好的,分别表示固定的意义。如果是“,
表示该 为用户扩展类型。如果 是未定义的,应该将其忽略。
3、File Type Box(ftyp)
((( 该 box 有且只有 1 个,并且只能被包含在文件层,而不能被其他 box 包含。该 box 应该
被放在文件的最开始,指示该 MP4 文件应用的相关信息。
( 依次包括 & 个 #$ 位的 )( 个字符),& 个 #$ 位
的 (整数)和 & 个以 #$ 位( 个字符)为单位元素的数组
。这些都是用来指示文件应用级别的信息。该 的字节
实例如下:
4、Movie Box(moov)
该 包含了文件媒体的 信息,“是一个 ,
具体内容信息由子 诠释。同 * 一样,该 有且只有一个,
且只被包含在文件层。一般情况下,“会紧随“出现。
一般情况下(限于篇幅,本文只讲解常见的 文件结构),“中会包
含 & 个“和若干个“。其中“为 ,一般作为
“的第一个子 出现(对于其他 来说,
都应作为首个子 出现)。“包含了一个 的相关信息,是一个
。下图为部分“的字节实例,其中红色部分为
,绿色为“,黄色为一部分“。
4.1 Movie Header Box(mvhd)
(“mvhd”结构如下表。
字段 字节数 意义
剩余17页未读,继续阅读
资源评论
zm8208
- 粉丝: 0
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功