ASF文件格式详解(1)

来源:互联网 发布:stc15系列单片机 编辑:程序博客网 时间:2024/06/11 19:53

2010-11-19 14:24:59|  分类: 音频|字号 订阅

什么是ASF
ASF 是 advance streaming format的缩写。是微软为windows98所开发的串流多媒体文件格式。也是windows media的核心。
ASF是一种数据格式,音频,视频,图像以及控制命令脚本等多媒体信息通过这种格式,以网络数据包的形式传输,实现流式多媒体内容发布。

ASF优势

体积小,适合网络传输。
数据组合形式灵活,可以将图形,声音和动画数据组合成一个ASF格式文件。也可以将其他格式的视频和音频转为ASF格式等。
在ASF视频中可以带有命令代码,用户指定在到达视频或音频的某个时间后执行某个事件或操作。

 ASF特点

可扩展的媒体类型- ASF文件允许制作者很容易地定义新的媒体类型。ASF格式提供了非常有效的灵活地定义符合ASF文件格式定义的新的媒体流类型。任一存储的媒体流逻辑上都是独立于其他媒体流的,除非在文件头部分明显地定义了其与另一媒体流的关系。 

  部件下载-特定的有关播放部件的信息(如,解压缩算法和播放器)能够存储在ASF 文件头部分,这些信息能够为客户机用来找到合适的所需的播放部件的版本---如果它们没有在客户机上安装。 

  可伸缩的媒体类型- ASF是设计用来表示可伸缩的媒体类型的\"带宽\"之间的依赖关系。ASF存储各个带宽就像一个单独的媒体流。媒体流之间的依赖关系存储在文件头部分,为客户机以一个独立于压缩的方式解释可伸缩的选项提供了丰富的信息流的优先级化现代的多媒体传输系统能够动态地调整以适应网络资源紧张的情况(如,带宽不足)。多媒体内容的制作者要能够根据流的优先级表达他们的参考信息,如最低保证音频流的传输。随着可伸缩媒体类型的出现,流的优先级的安排变得复杂起来,因为在制作的时候很难决定各媒体流的顺序。ASF允许内容制作者有效地表达他们的意见(有关媒体的优先级),甚至在可伸缩的媒体类型出现的情况下也可以

  多语言- ASF设计为支持多语言。媒体流能够可选地指示所含媒体的语言。这个功能常用于音频和文本流。一个多语言ASF文件指的是包含不同语言版本的同一内容的一系列媒体流,其允许客户机在播放的过程中选择最合适的版本。 

  目录信息- ASF提供可继续扩展的目录信息的功能,该功能的扩展性和灵活性都非常好。所有的目录信息都以无格式编码的形式存储在文件头部分,并且支持多语言,如果需要,目录信息既可预先定义(,作者和标题),也可以是制作者自定义。目录信息功能既可以用于整个文件也可以用于单个媒体流。
 
ASF结构
ASF文件格式详解(1) - nancy - 记录我的成长
 
 
ASF由三个主要部分组成。Header Object ,Data Object ,Index Object。
Header object:主要描述了数据的一些信息。例如作者,曲目信息,用户加入的命令信息,码流的码率等信息。Header object里包含很多其他的子object。每个object相当于一个信息描述符。这些object由GUID来区分。
Data object:存储数据。
Index object:存放时间索引。有两种方式:simple index object和index object。
 

Header Object

?      Header object的作用主要体现在以下个方面:

l       ASF文件开始提供了一个全局的GUID

l       包含所有在data object中需要说明的信息。

l       ASF的三层结构中,只有header object可以携带其他ASF objects

?      File properties object:包含全局文件信息。

?      Stream properties object:定义了一个数字媒体码流和他的特征。

?      Header extension object:支持为一个ASF文件添加新功能,以便向后兼容。

?      Content Description Object:包含一些目录信息。

?      Script command object:包含一些用户的指令。这些指令可以在playback时候被执行。

?      Marker object:提供在一个文件内的指定的跳跃点。(jump points

 

注意:1)在header object中的objects可以以任何的顺序排列。

           2)在一个header object中必须包含一个file properties object,一个header extension object 和至少一个stream properties object

 

Header Object 结构

ASF文件格式详解(1) - nancy - 记录我的成长

 

?      Object ID16字节。值为:30 26 B2 75 8E 66 CF 11 A6 D9 00 AA 00 62 CE 6C

?      Object size:8字节,描述了object总长度,包含16字节的ID8字节的size。至少是30字节。

?      Number of header objects:描述了header object中包含的objects的个数。不包含本身,同时,header extension object只能算作一个object,这里的计数不包含header extension object中的subobjects

?      Reserved1:忽略,固定值为0x1

?      Reserved2:忽略,固定值为0x2

 

 Header Object  File properties object

?

 

ASF文件格式详解(1) - nancy - 记录我的成长
 
 

 

?      Object ID16字节唯一标识。A1 DC AB 8C 47 A9 CF 11 8E E4 00 C0 0C 20 53 65

 注意:所有的ASF对象和语法(包含data packet headers)都是以little-endian字节序。但是ASF文件的data packet中包含的数字媒体流数据的字节序可以随意

原创粉丝点击