MP4 文件格式

一、概况
    最基本的3个结构:ftyp(文件类型头)、moov(媒体描述信息)、mdat(媒体sample数据)。



二、Mp4中 sample 时间索引 与 文件偏移索引(stbl)
1、标准描述:

stbl”几乎是普通的MP4文件中最复杂的一个box了,首先需要回忆一下sample的概念。sample是媒体数据存储的单位,存储在mediachunk中,chunksample的长度均可互不相同。

“stbl”包含了关于tracksample所有时间和位置的信息,以及sample的编解码等信息。利用这个表,可以解释sample的时序、类型、大小以及在各自存储容器中的位置。“stbl”是一个container box,其子box包括:sample description boxstsd)、time to sample boxstts)、sample size boxstszstz2)、sample to chunk boxstsc)、chunk offset boxstcoco64)、composition time to sample boxctts)、sync sample boxstss)等。

sample table box描述sample的所有信息以及一些不同类型的boxmedia handler可以用这些信息正确的按顺序解析所有的samples,而不需要强迫这些数据按movie的时间顺序存放到实际数据流中。

如果sample table box所在的track引用了数据,那么必须包含以下的子boxsample description, sample size, sample to chunkchunk offset。所有的子表有相同的sample数目。


 “stsd”必不可少,且至少包含一个条目,该box包含了data reference box进行sample数据检索的信息。没有“stsd”就无法计算media sample的存储位置。“stsd”包含了编码的信息,其存储的信息随媒体类型不同而不同。

Sample Description Boxstsd

box headerversion字段后会有一个entry count字段,根据entry的个数,每个entry会有type信息,如“vide”“sund”等,根据type不同sample description会提供不同的信息,例如对于video track,会有“VisualSampleEntry”类型信息,对于audio track会有“AudioSampleEntry”类型信息。

 视频的编码类型、宽高、长度,音频的声道、采样等信息都会出现在这个box中。



根据不同的编码方案和存储数据的文件数目,每个media可以有一个到多个sample descriptionsample-to-chunk通过这个索引表,找到合适media中每个sampledescription

 

数据结构表:

字段

长度(字节)

描述

尺寸

4

box大小

类型

4

stsd

版本

1

box版本

标志

3

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值