编写 ASF 文件

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

可以使用 Windows 媒体格式 SDK 的编写器对象从数字媒体数据创建 ASF 文件。 若要创建编写器对象的实例,请调用 WMCreateWriter 函数。 编写器对象协调许多组件的功能,包括 Windows Media Format SDK 外部的编解码器。

编写器对象的基本功能可细分为以下步骤。 在这些步骤中,“应用程序”是指使用 Windows Media Format SDK 编写的程序。

  1. 应用程序为编写器提供用于创建 ASF 文件的配置文件。 编写器加载配置文件数据时,会向配置文件的每个连接分配一个输入编号。
  2. 应用程序为编写器提供要写入的文件的输出文件名。 编写器创建编写器文件接收器对象来管理文件创建和输入。 有关详细信息,请参阅 编写器文件接收器对象
  3. 编写器基于配置文件中的信息为新文件创建标头。
  4. 应用程序将未压缩的示例传递给编写器。 样本在包装在缓冲区对象中的缓冲区中一次传递一个。 应用程序应同时传递每个流的样本,以便编写器按演示时间顺序接收所有样本。
  5. 编写器将示例传递到相应的编解码器进行压缩。 编写器收到压缩的样本时,它会将它们与其他流中的样本交织在一起,以便无论流如何,样本都按呈现时间顺序进入文件。 然后,示例数据将转换为数据包并写入文件的数据部分。
  6. 处理所有样本后,编写器可以向文件添加索引以提高查找性能。

WMStats 示例应用程序等演示了这些步骤。 有关详细信息,请参阅 示例应用程序

编写器还支持更高级的功能,使你能够执行以下操作:

  • 编辑文件标头中的元数据。
  • 编写预压缩的示例。
  • 写入网络接收器以流式传输实时数据。
  • 写入高级文件控制选项的文件接收器。
  • 写入 以推送接收器以分发到将内容传送给最终用户的服务器。
  • 提供用于验证输出的后视图示例。
  • 提供编写器性能统计信息。

以下部分详细介绍了编写器对象的使用。

部分 说明
将配置文件用于编写器 介绍如何指定要与编写器一起使用的配置文件。
使用输入 介绍如何在编写器中标识和配置输入设置。
使用编写器编辑元数据 介绍如何使用编写器编辑新文件的元数据。
编写示例 介绍如何将示例传递给编写器。
设置数据单元扩展 介绍如何向示例添加扩展数据。
写入压缩示例 介绍如何将预先压缩的示例传递给编写器。
写入图像流 介绍如何为图像流配置输入。
编写视频图像示例 介绍如何配置视频图像示例。
写入可变比特率流 介绍如何 (VBR) 流编写可变比特率。
使用Two-Pass编码 介绍如何让编解码器在写入文件之前执行初步传递。
强制Key-Frame插入 介绍如何手动强制编解码器将示例编码为关键帧。
管理编写器延迟 介绍如何最大程度地减少编写器将示例处理到输出文件或接收器所需的时间。
使用编写器接收器 介绍如何使用编写器接收器将内容传送到文件或网络位置。
获取编写器统计信息 介绍如何获取编写器的统计信息。
使用编写器 Postview 介绍如何在编写文件进行验证时获取未压缩的示例。

 

编程指南

编写器文件接收器对象

编写器网络接收器对象

编写器对象