ASF 文件结构
本主题介绍高级系统格式 (ASF) 文件的结构。
有关 ASF 文件的详细信息,请下载 ASF 规范。
ASF 文件的基本组织单位称为对象。 ASF 文件对象包含以下数据。
数据 | 大小 |
---|---|
标识对象的 GUID。 | 128 位 |
对象的大小。 | 64 位。 |
对象数据。 对象数据可以包含其他 ASF 对象。 | 多种多样。 |
注意
ASF 文件对象只是一个数据块。 而不是计算机编程意义上的对象。
ASF 文件包含三种类型的顶级文件对象。
ASF 文件对象 | 说明 |
---|---|
标头对象 |
包含有关 ASF 文件的信息。 |
数据对象 |
包含媒体数据的数据包。 |
索引对象 |
包含一个或多个索引。 (可选。) |
下图显示了 ASF 文件结构。
这张示意图不是按比例绘制的;通常,数据对象包含文件的大部分。
标头对象
标头对象是必需的,并且出现在每个 ASF 文件的开头。 其中包含全局文件属性和有关 ASF 文件中流的信息。 这些信息用于解释和播放文件中的数据。
标头对象包含几个必需子对象:
- 文件属性对象描述文件的全局属性,如文件大小、播放持续时间、数据包数量、最小和最大数据包大小以及最大比特率。
- 标头扩展对象允许在保持向后兼容性的同时向 ASF 文件添加其他功能。
- 流属性对象描述文件中的一个流。 一个 ASF 文件必须至少包含一个流,因此必须包含至少一个流属性对象。
标头对象可以包含其他可选信息,包括有关文件的元数据(如标题和作者)、用于编码文件的编解码器列表以及内容保护信息。
数据对象
ASF 数据对象包含 ASF 文件的所有媒体数据。 此对象是必需对象,并且必须跟在 ASF 标头对象后面。
数据对象分为数据数据包。 每个数据包都包含文件中一个或多个流的数据。 数据包包含提供数据包分析信息的数据包标头,后跟有效负载数据,即实际数字媒体数据。 所有数据包都有一个与之相关的演示时间,并按照接收到的顺序排列。
关于数据对象的内容的信息(例如,数据包大小和数据包计数)存储在标头对象中。
索引对象
索引对象是可选对象,是 ASF 文件中的最后一个对象。 一个 ASF 文件可以包含多个索引对象。 索引对象提供对 ASF 数据对象的基于时间的随机访问。
简单索引对象是另一种类型的索引。