MP4文件格式分析及分割实现(附源码)

本文详细介绍了MP4文件格式,包括不同级别的box结构,如ftyp、moov、mdat等,并解析了主要box的功能。同时提供了MP4文件的分割实现源码链接。
摘要由CSDN通过智能技术生成

来自:http://www.cnblogs.com/Kingfans/p/7170478.html

MP4文件格式分析                  

  MP4(MPEG-4 Part 14)是一种常见的多媒体容器格式,它是在“ISO/IEC 14496-14”标准文件中定义的,属于MPEG-4的一部分,是“ISO/IEC 14496-12(MPEG-4 Part 12 ISO base media file format)”标准中所定义的媒体格式的一种实现,后者定义了一种通用的媒体文件结构标准。MP4是一种描述较为全面的容器格式,被认为可以在其中嵌入任何形式的数据,各种编码的视频、音频等都不在话下,不过我们常见的大部分的MP4文件存放的AVC(H.264)MPEG-4(Part 2)编码的视频和AAC编码的音频。MP4格式的官方文件后缀名是“.mp4”,还有其他的以mp4为基础进行的扩展或者是缩水版本的格式,包括:M4V,3GP,F4V等。

 

  一个mp4文件有可能包含非常多的box(全部大约70多个),在很大程度上增加了解析的复杂性。如果要全部解析必要性不是很大。大部分mp4文件没有那么多的box类型,下图就是一个简化了的,常见的mp4文件结构:

下图是节点box详细说明:

下面我们将对以上主要box的解析进行详细说明:

1. 一级box

  一级box主要包含ftyp、moov、free、mdat等等。

1.1 ftyp box

结构:

复制代码
/********************************************************************************************
**                            File Type Box (ftyp)
**
--------------------------------------------------------------------------------------------
**        字段名称              |    长度(bytes)   |        有关描述
--------------------------------------------------------------------------------------------
**        boxsize               |    4            |        box的长度
**        boxtype               |    4            |        box的类型
**        major_brand           |    4            |
**        minor_version         |    4            |        版本号
**        compatible_brands     |    4 * N        |        本文件遵从的多种协议(ismo, iso2, mp41)
********************************************************************************************/
复制代码

运行结果:

1.2 moov box

结构:

复制代码
/********************************************************************************************
**        字段名称            |    长度(bytes)   |        有关描述
--------------------------------------------------------------------------------------------
**        boxsize            |    4            |        box的长度
**        boxtype            |    4            |        box的类型
********************************************************************************************/
复制代码

1.3 free box

结构:

复制代码
/********************************************************************************************
**        字段名称            |    长度(bytes)   |        有关描述
--------------------------------------------------------------------------------------------
**        boxsize            |    4            |        box的长度
**        boxtype            |    4            |        box的类型
********************************************************************************************/
复制代码

1.4 mdat box

结构:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值