MP4文件格式详解——结构概述
来源:互联网 发布:2016年淘宝会员数量 编辑:程序博客网 时间:2024/05/29 14:42
MP4文件格式详解——结构概述
(2014-01-17 15:00:08)mp4
格式
结构
分类: 多媒体文件格式分析一、基本概念
1、
2、
3、
4、
当size==0时,代表这是文件中最后一个Box;当size==1时,意味着Box长度需要更多bits来描述,在后面会定义一个64bits的largesize描述Box的长度;当type是uuid时,代表Box中的数据是用户自定义扩展类型。
5、
6、
Box的结构用伪代码表示如下:
- aligned(8)
class Box int(32)(unsigned boxtype,optional int(8)[16]unsigned extended_type) - {
-
unsigned int(32) size; -
unsigned int(32) type = boxtype; -
if (size==1) -
{ -
unsigned int(64) largesize; -
} -
else if (size==0) -
{ -
// box extends to end of file -
} -
if (boxtype==‘ uuid’) -
{ -
unsigned int(8)[16] usertype = extended_type; -
}
结构如下图:
二、MP4文件格式(ISO-14496-12/14)
MP4文件概述
MP4文件就是由各式各样的Box组成的,下表中列出了所有必选或可选的Box类型,√代表Box必选。
具体列表:
ftyp
√
file type and compatibility
pdin
progressive download information
moov
√
container for all the metadata
mvhd
√
movie header, overall declarations
trak
√
container for an individual track or stream
tkhd
√
track header, overall information about the track
tref
track reference container
edts
edit list container
elst
an edit list
mdia
√
container for the media information in a track
mdhd
√
media header, overall information about the media
hdlr
√
handler, declares the media (handler) type
minf
√
media information container
vmhd
video media header, overall information (video track only)
smhd
sound media header, overall information (sound track only)
hmhd
hint media header, overall information (hint track only)
nmhd
Null media header, overall information (some tracks only)
dinf
√
data information box, container
dref
√
data reference box, declares source(s) of media data in track
stbl
√
sample table box, container for the time/space map
stsd
√
sample descriptions (codec types, initialization etc.)
stts
√
(decoding) time-to-sample
ctts
(composition) time to sample
stsc
√
sample-to-chunk, partial data-offset
information
stsz
sample sizes (framing)
stz2
compact sample sizes (framing)
stco
√
chunk offset, partial data-offset information
co64
64-bit chunk offset
stss
sync sample table (random access points)
stsh
shadow sync sample table
padb
sample padding bits
stdp
sample degradation priority
sdtp
independent and disposable samples
sbgp
sample-to-group
sgpd
sample group description
subs
sub-sample information
mvex
movie extends box
mehd
movie extends header box
trex
√
track extends defaults
ipmc
IPMP Control Box
moof
movie fragment
mfhd
√
movie fragment header
traf
track fragment
tfhd
√
track fragment header
trun
track fragment run
sdtp
independent and disposable samples
sbgp
sample-to-group
subs
sub-sample information
mfra
movie fragment random access
tfra
track fragment random access
mfro
√
movie fragment random access offset
mdat
media data container
free
free space
skip
free space
udta
user-data
cprt
copyright etc.
meta
metadata
hdlr
√
handler, declares the metadata (handler) type
dinf
data information box, container
dref
data reference box, declares source(s) of metadata items
ipmc
IPMP Control Box
iloc
item location
ipro
item protection
sinf
protection scheme information box
frma
original format box
imif
IPMP Information box
schm
scheme type box
schi
scheme information box
iinf
item information
xml
XML container
bxml
binary XML container
pitm
primary item reference
fiin
file delivery item information
paen
partition entry
fpar
file partition
fecr
FEC reservoir
segr
file delivery session group
gitn
group id to name
tsel
track selection
meco
additional metadata container
mere
metabox relation
正式开始前先对文件的几个重要部分宏观介绍一下,以便诸位在后续学习时心中有数:
1、2、
3、
4、
5、
附:Smooth Streaming中ismv文件结构,文件分为了多个Fragments,每个Fragment中包含moof和mdat。这样的结构符合渐进式播放需求。(mdat及其描述信息逐步传输,收齐一个Fragment便可播放其中的mdat)。
原始出处: http://blog.sina.com.cn/s/blog_73799d980101tggd.html
- MP4文件格式详解——结构概述
- MP4文件格式详解——结构概述
- MP4文件格式详解——结构概述
- MP4文件格式详解——结构概述
- MP4文件格式详解——结构概述
- MP4文件格式详解——结构概述
- MP4文件格式详解——结构概述
- MP4文件格式详解——结构概述 (转)
- 嵌入式 MP4文件格式详解结构概述
- MP4文件格式详解——文件类型ftyp
- MP4文件格式详解——文件类型ftyp
- MP4文件格式详解——文件类型ftyp
- MP4文件格式1——MP4简介
- 多媒体 MP4文件格式详解——文件类型ftyp
- MP4文件格式详解——文件类型ftyp(转)
- MP4文件格式详解
- MP4文件格式详解
- MP4文件格式详解
- Java实现给定任意年份和月份,输出该月有多少天
- 挑战程序竞赛系列(63):4.7字符串上的动态规划(1)
- CSDN-markdown编辑器使用手册
- Gradle依赖项学习总结,dependencies、transitive、force、exclude的使用与依赖冲突解决
- MySQL简介
- MP4文件格式详解——结构概述
- ccfinder编译过程问题解决
- 4-2 jmu-ds-顺序表区间元素删除(15 分)
- SprinTool Susite 使用Maven引入外部jar包步骤
- QT 下 json格式数据的 生成 和 解析
- 直接选择排序
- HDU
- 【Java概念】接口(11)
- 小白算法练习 归并排序 POJ Brainman lanqiao