管道层 ASF 组件

在 Media Foundation 的管道模型中,媒体源连接到进一步连接到媒体接收器的转换。 源中包含的数据流经转换,并在接收器中生成输出媒体示例,以便进行播放或编码。 根据应用程序是要播放 ASF 内容还是编码为 ASF 文件,应用程序必须以不同的方式生成管道。

以下主题包含有关管道层组件的信息。

用于播放的 ASF 管道的三个主要组件如下所示:

  • ASF 媒体源由表示 ASF 文件的 Media Foundation 提供。
  • 音频重新采样器、视频图像调整器等(转换)
  • 音频和视频呈现器(接收器)

有关生成播放管道的信息,请参阅 创建播放拓扑

用于编码的 ASF 管道的三个主要组件如下所示:

  • 以需要转换的格式表示数据的媒体源。 此组件可以是媒体基础提供的默认媒体源之一,也可以是公开 IMFMediaSource 接口的自定义源之一。
  • 执行格式转换的 Windows Media 编码器(转换)。
  • 媒体基础提供的 ASF 媒体接收器,用于在应用程序指定的输出文件中写入 ASF 对象和媒体示例。

管道在拓扑中表示,管道中的每个对象都由拓扑节点表示。 对于播放和编码,所有管道作都由媒体会话处理。 媒体会话的职责之一是确保管道具有生成输出所需的所有组件。 例如,在编码管道中,如果音频源格式不同于目标格式,媒体会话会插入其他转换组件,例如执行适当采样率转换的重新采样器。 通过管道的数据流控制也由媒体会话管理。 在播放方案中,从媒体会话开始,媒体会话会将示例发送到 SAR 和 EVR,这会在输出设备上呈现它们。 对于编码,启动媒体会话将开始编码过程。 会话在编码完成时异步通知应用程序。

以下主题包含有关使用管道层组件生成编码拓扑的分步说明。 用于读取和写入 ASF 文件的组件。

媒体基础 中的 ASF 支持