常见媒体文件结构图

常见媒体文体图解

一个典型的ISO格式文件

ISO媒体文件由若干称为盒子的数据对象组成,每个盒子的起首为四个字节的数据长度(大头序)和四个字节的类型标识,数据长度和类型标志都可以扩展。有些盒子具备容器功能,其数据域由若干其它盒子组成,从而实现结构化的数据,这一点是与RIFF格式相似的。

AVI文件的结构

Real文件结构

MKV文件结构

 

Header

Meta Seek Information

Segment Information

Track

Chapters

Clusters

Cueing Data

Attachment

Tagging

Figure 1

MP3文件结构

FLV文件结构

FLV是流媒体封装格式,我们可以将其数据看为二进制字节流。总体上看,FLV包括文件头(File Header)和文件体(File Body)两部分,其中文件体由一系列的TagTag Size对组成。因此一个FLV文件看上去是下面的结构:

ASF文件结构

ASF文件逻辑上是由三个高层对象组成:头对象(Header Object)、数据对象(Data Object)和索引对象(Index Object).

头对象是必需的并且必须放在每一个ASF文件的开头部分,数据对象也是必需的,且一般情况下紧跟在头对象之后。

索引对象是可选的,但是一般推荐使用。


  高层ASF文件结构

 

ASF 头对象

AMR文件格式

AMR 帧格式:

AMR 有两种类型的帧格式:AMR IF1 和 AMR IF2

1. AMR IF1:

  IF1 的帧格式如下图所示:

2. AMR IF2:

  IF2的帧格式如下图所示:

相对于IF1, IF2 省去了Frame Quality Indicator, Mode Indication, Mode Request 和CRC 校验。但是增加了bit 填充。因为AMR帧中数据的长度并不是字节(8bit)的整数倍,所以在有些帧的末尾需要增加bit填充,以使整个帧的长度达到字节的整数倍。

 

AMR 文件的存储格式(RFC 3267):

AMR IF1, IF2定义了 AMR的帧格式, 用于无线传输用。 RFC 3267定义了把AMR数据存成文件的文件格式。

AMR的文件格式如下图1所示:

它包含一个文件头,然后就是一帧一帧的AMR数据了。

   

1.      文件头格式:

 AMR 文件支持单声道和多声道。单声道和多声道的文件头是不同的。

单声道:

 AMR-NB文件头: "#!AMR\n" (or 0x2321414d520a in hexadecimal)(引号内的部分)

 AMR-WB 文件头:"#!AMR-WB\n" (or 0x2321414d522d57420a in hexadecimal).(引号内)

多声道:

多声道的文件头包含一个magic number和32bit channle description域。

AMR-NB 的magic number:"#!AMR_MC1.0\n" (or 0x2321414d525F4D43312E300a in hexadecimal).

AMR-WB的magic number:"#!AMR-WB_MC1.0\n" (or 0x2321414d522d57425F4D43312E300a in hexadecimal).

32bit的channel description域的定义如下:

其中 reserved bits必须为0, CHAN:表示当前文件中含有几个声道。

   

帧头的格式:

帧头的格式如图2 所示, 它占1个字节(8个bit)

P为填充为设置为0

FT为编码模式, 即上面提到的16中编码模式。
Q为帧质量指示器,如果为0表明帧被损坏。

图3 列举了AMR-NB 5.9Kbit的一个帧的格式,

对于5.9kbit一帧的有118bit的数据,15*8=120=118+2, 所以在最后有2个bit的填充位。

来自: http://www.cnblogs.com/zhgyee/archive/2011/09/18/2180298.html
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值