作者:干杯随风一刀_893 | 来源:互联网 | 2023-07-20 14:13
ISO14496-12定义了一种封装媒体数据的基础文件格式,mp4、3gp、ismv等我们常见媒体封装格式都是以这种基础文件格式为基础衍生的。如果从全局角度了解基础文件格式,请看我之
ISO 14496 - 12 定义了一种封装媒体数据的基础文件格式,mp4、3gp、ismv等我们常见媒体封装格式都是以这种基础文件格式为基础衍生的。
如果从全局角度了解基础文件格式,请看我之前的博文《MP4文件格式详解——结构概述》。
本系列文档从MP4文件入手,对文件中重要的box进行解析。
<======================================================================>
本次解析ftyp box
- aligned(8) class FileTypeBox extends Box(‘ftyp’)
- {
- unsigned int(32) major_brand;
- unsigned int(32) minor_version;
- unsigned int(32) compatible_brands[];
- }
什么是brands?官方是这样描述的:
Each brand is a printable four-character code, registered with ISO, that identifies a precise specification.//在ISO注册的4个字符。
下表来源于网络,列出了几种常见的基于基础文件格式的,媒体封装格式标识。
更多的内容可以查看http://www.ftyps.com/
|
Brand |
Extension |
Mime Type |
MP4 |
mp41, mp42 |
.mp4 |
video/mp4, audio/mp4, application/mp4 |
3GPP |
various, e.g. 3gp4, 3gp5 |
.3gp |
video/3gpp, audio/3gpp |
3GPP2 |
3g2a |
.3g2 |
video/3gpp2, audio/3gpp2 |
Motion JPEG 2000 |
mjp2 |
.mj2 |
video/mj2 |
QuickTime |
"qt" |
.mov |
video/quicktime |
结合实际文件,下图是MP4文件起始位置存放的数据
length(4字节):0x0000001c:box的长度是28字节;
boxtype(4字节):0x66747970:“ftyp”的ASCII码,box的标识;
major_brand(4字节):0x69736f6d:“isom“的ASCII码;
minor_version(4字节):0x00000200:ismo的版本号;
compatible_brands(12字节):说明本文件遵从(或称兼容)ismo,iso2,mp41三种协议。
ftyp box通常放在文件的开始,通过对该box解析可以让我们的软件(播放器、demux、解析器)知道应该使用哪种协议对这该文件解析,是后续解读文件基础。