分类:
2008-10-13 16:51:13
The Advanced Systems Format (ASF) is an extensible file format designed primarily for storing and playing synchronized digital media streams and transmitting them over networks. ASF is the container format for Windows Media Audio and Windows Media Video-based content. The extension wma or wmv is used to specify an ASF file that contains content encoded with the Windows Media Audio and/or Windows Media Video codecs. The Windows Media Format SDK can be used to create and read Windows Media files, as well as ASF files that contain other types of compressed or uncompressed data.
This section provides a general description of the ASF format as background information. Because the reader and writer objects handle all low-level file parsing and formatting tasks, it is not necessary to have a detailed understanding of ASF before using this SDK to create ASF files. The complete ASF specification can be found on the .
The primary goals of the ASF format are:
An ASF file can contain multiple independent or dependent streams, including multiple audio streams for multichannel audio, or multiple bit rate video streams suitable for transmission over different bandwidths. The streams can be in any compressed or uncompressed format; however, the best compression is achieved with the Microsoft Windows Media Audio and Video 9 Series codecs. In addition to the standard audio and video media stream types, an ASF file can also contain text streams, Web pages and script commands, and any other arbitrary data type. ASF supports live and on-demand multimedia content. It can be used as a vehicle to record or play back H.32X (for example, H.323 and H.324) or MBONE conferences.
An ASF file is organized into sections called "objects." There are three top-level objects, a Header object and a Data object (both required), plus an optional Index object. The Header object contains general information about the file, such as file size, number of streams, error correction methods, and codecs used. Metadata is also stored here. The Header object is the only top level object that can contain other objects. The Data object contains the stream data, organized in packets. The Simple Index object contains a list of associated timestamp–key frame pairs that enables applications to seek through a file efficiently.
Each top-level or lower-level object begins with a globally unique identifier (GUID) and a size value. These numbers allow the file reader to parse the information at appropriate places into identifiable objects. Because of these GUIDs, lower-level objects can be sent in any order and still be recognized. The ASF format is designed to overcome inaccurate data reception. A partially downloaded ASF file can still be read, as long as it contains the Header object and at least one Data object.
The following diagram shows the objects that make up an ASF file. Shaded objects are optional. Certain objects, such as the Stream Properties object, can have multiple instances.
偶的翻译如下:(唉,懂的术语不多,英文又烂,偶主要为了锻炼,凑合着看。并欢迎老鸟指正)
ASF文件格式概述
高级媒体系统格式(The Advanced Systems Format) 主要是为存储、同步播放、通过网络传输数字多媒体流信息而设计的一套可以扩展的文件
格式。ASF是一个用来存储windows音频和视频信息的包装格式(Container format)。扩展名wma和wmv是用来标识此ASF文件是由windows多媒体
音频或视频编码器压缩而成的。Windows Media Format SDK可以用来创建和读取Windows多媒体信息文件,也可以很好的读取其它的经过压缩的
第三方格式的数据。
本部分主要讲述一下ASF格式的基本的背景信息。因为有读取器和写入器处理所有底层的分析和格式化任务,所以当你用Windows Media Format
SDK创建ASF的时候没有必要深入理解ASF的具体信息(译者注:实践证明,越不了解越晕)。完整详尽的ASF规范可以在 找到。
ASF格式的主要目的如下:
用来支持从媒体服务器(windows media server),http服务器或本地存储设备取得数据,并实时播放。
支持可扩展的音频或视频媒体类型。
To permit a single multimedia composition to be presented over a wide range of bandwidths.
(上面一句不会翻译~~)
To allow authoring control over media stream relationships, especially in constrained-bandwidth scenarios
(上而这句又不会翻~~)
用来减少与媒体设备,操作系统或数据传输协议的关联性。
一个ASF文件可以存储多重相互之间无关或有相关性的媒体流,包括多通道音频硬件使用的多路音频流,或适合于不同带宽传输的多速率的视频
流。这些媒体流可以是任何经过压缩或没有压缩的格式。不管怎么说M$的Windows Media Audio 和Video 9 Series 编码/解码器提供了最好的
压缩率。除了标准的音频和视频流之外,ASF文件还可以包含文本流、网页、脚本命令和其他任何的数据类型。ASF还支持实况转播和点播的多
媒体信息。它可以用来担当记录和播放H.32X(例如:h.323 和h.324)或MBONE会议的传播媒体。
一个ASF文件被划分成几个称为“对象(objects)”的部分。有三个顶层对象:文件头对象、数据对象和一个索引对象(可选)。文件头对象
包含了一个ASF文件的基本构成信息,如:文件大小,媒体流的数量,纠错方法和编解码器的使用情况。一些元数据(Metadata)也存储在头对
象中。头对象是唯一的一个可以包含其它对象的顶层对象。数据对象包含媒体流数据信息,它们被组织在一个一个的数据包中。索引对象是有
时间戳的关键贞的组合,可以使应用程序更有效的遍历一个ASF文件。
每一个顶层或底层的对象都一个全球唯一标识(GUID)和一个大小值。这些数字可以帮助文件读取器分析文件的相关信息,并归纳到相关的对
象中。因为有这些标识(GUIDs),底层对象可以以任何顺序发送,最后都仍会被有序的组织在一起。ASF格式被设计成有强大的数据接收纠错
功能。部分被下载的ASF照样可以读取,只要它包含了文件头对象或至少一个数据对象。
下面的图表给出了组成ASF文件的几个对象。阴影部分的对象是可选的。某些对象比如象流属性对象,可以用很多的实例。(参看上图)。