stbl与mdat的对应关系

1、stbl与mdat的对应关系

  MP4的媒体信息和数据是分开存放的。就是你想获得数据之前必须要解析出每个帧数据所有的位置。mp4存放这个帧信息的是放在stbl这个box里。而真实的数据放在mdat中。

Sample Table Box(stbl)

这里写图片描述

  • stts:Decoding Time to Sample Box 时间戳和Sample映射表
  • stsd:Sample Description Box
  • stsz, stz2:Sample Size Boxes 每个Sample大小的表
  • stsc:Sample to chunk 的映射表
  • ‘stco’, ‘co64’:Chunk位置偏移表
  • stss:关键帧index

2、解析stsc还原Sample与chunk的映射表

这里写图片描述

  Sample 是存储的最基本单元,mp4把Sample 存在chunk中。chunk的长度、chunk的大小、chunk中Sample的数量及大小都是不定的。通过解析这部分box来还原这个映射表。

3、解析‘stco’, ‘co64’

“stco”定义了每个thunk在媒体流中的位置。位置有两种可能,32位的和64位的,后者对非常大的电影很有用。从这个box我们就可以获得 chunk 的总数量,entry_count。

4、解析过程

  1. 解析‘stco’, ‘co64’我们有了chunk 表,知道了chunk 的总数及每个chunk所在文件的位置;
  2. 解析stsc 配合着上面的chunk表,我们就能得到Sample与chunk的关系表。我们也就能获得每个Sample的位置信息;
  3. 配合上面的stts 时间表和解码器信息等,就可以搞出ES流了;
  4. 想获得关键帧的index,需要解析stss
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值