首页 > 代码库 > MP4文件格式分析(附源码)
MP4文件格式分析(附源码)
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
结构:
字段名称 | 长度(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
结构:
字段名称 | 长度(bytes) | 有关描述 |
boxsize | 4 | box的长度 |
boxtype | 4 | box的类型 |
后面是真实媒体数据 |
运行结果:
2. 二级box
本节所说的二级box皆为moov的子box,主要包含mvhd、trak、udat等等。
1.1 mvhd box
结构:
字段名称 | 长度(bytes) | 有关描述 |
boxsize | 4 | box的长度 |
boxtype | 4 | box的类型 |
major_brand | 4 | |
minor_version | 4 | 版本号 |
compatible_brands | 4*N | 本文件遵从的多种协议(ismo,iso2,mp41) |
MP4文件格式分析(附源码)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。