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 文件可以包含多个索引对象。 索引对象提供对 ASF 数据对象的基于时间的随机访问。

简单索引对象是另一种类型的索引。

媒体基础中的 ASF 支持