ASF 格式概述

[与此页面关联的功能 Windows Media Format 11 SDK 是旧版功能。 它已被源读取器和接收器编写器取代。 源读取器和接收器编写器已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用源读取器和接收器编写器,而不是 Windows Media Format 11 SDK。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

高级系统格式 (ASF) 是一种可扩展的文件格式,主要用于存储和播放同步的数字媒体流,并通过网络传输它们。 ASF 是 Windows Media Audio 和 Windows Media Video 的容器格式。 扩展 wma 或 wmv 用于指定 ASF 文件,该文件包含使用 Windows Media Audio 和/或 Windows Media Video 编解码器编码的内容。 Windows Media Format SDK 可用于创建和读取 Windows 媒体文件,以及包含其他类型的压缩或未压缩数据的 ASF 文件。

本部分提供 ASF 格式作为背景信息的一般说明。 由于读取器和编写器对象处理所有低级别文件分析和格式设置任务,因此在使用此 SDK 创建 ASF 文件之前,无需详细了解 ASF。 可以在 Microsoft 网站上找到完整的 ASF 规范。

ASF 格式的主要目标是:

  • 支持从媒体服务器、HTTP 服务器和本地存储设备进行高效播放。
  • 支持音频和视频等可缩放媒体类型。
  • 允许在宽带宽范围内呈现单个多媒体组合。
  • 允许对媒体流关系进行创作控制,尤其是在带宽受限方案中。
  • 独立于任何特定的多媒体组合系统、计算机操作系统或数据通信协议。

ASF 文件可以包含多个独立流或依赖流,包括用于多通道音频的多个音频流,或适合通过不同带宽传输的多个比特率视频流。 流可以采用任何压缩或未压缩格式;但是,最佳压缩是使用 Microsoft Windows Media 音频和视频 9 系列编解码器实现的。 除了标准音频和视频媒体流类型外,ASF 文件还可以包含文本流、网页和脚本命令以及任何其他任意数据类型。 ASF 支持实时和按需多媒体内容。 它可以用作录制或播放 H.32X (例如 H.323 和 H.324) 或 MBONE 会议的工具。

ASF 文件被组织成称为“对象”的部分。有三个顶级对象,一个 Header 对象和一个 Data 对象 () ,外加一个可选的 Index 对象。 Header 对象包含有关文件的常规信息,例如文件大小、流数、错误更正方法和使用的编解码器。 元数据也存储在此处。 Header 对象是唯一可以包含其他对象的顶级对象。 Data 对象包含按数据包组织的流数据。 Simple Index 对象包含关联的索引/键帧对的列表,使应用程序能够有效地查找文件。 与每个关键帧关联的索引可以是演示时间、视频帧编号或参考时间戳。

每个顶级或较低级别的对象都以全局唯一标识符 (GUID) 和大小值开头。 这些数字允许文件读取器将适当位置的信息分析为可识别的对象。 由于这些 GUID,较低级别的对象可以按任意顺序发送,并且仍可识别。 ASF 格式旨在克服不准确的数据接收。 只要包含 Header 对象和至少一个 Data 对象,仍然可以读取部分下载的 ASF 文件。

ASF 规范中介绍的 ASF 的详细信息。 可以从 Microsoft 网站下载规范。

关于 Windows 媒体格式 SDK