为何使用 DirectShow?
[与此页面关联的功能 Windows Media Format 11 SDK 是一项旧功能。 它已被源读取器和接收器编写器取代。 源读取器和接收器编写器已针对Windows 10和Windows 11进行了优化。 如果可能,Microsoft 强烈建议新代码使用源读取器和接收器编写器,而不是 Windows Media 格式 11 SDK。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
应用程序可能直接使用 DirectShow 而不是 Windows Media Format SDK 有两个main原因:为了方便 DirectShow 流式处理体系结构,以及访问硬件。
便利
使用 DirectShow 流式处理体系结构时,只需几个方法调用即可播放 Windows Media 音频或 Windows Media 视频文件。 创建文件也得到了简化。 只需在筛选器上使用 IConfigAsfWriter 接口指定配置文件,DirectShow 会自动加载呈现或写入流所需的组件,并提供传输和同步媒体数据流的机制。 将各种格式的内容转换为 Windows Media 格式时,DirectShow 特别有用。 可以创建对各种文件和压缩类型进行解码的 DirectShow 筛选器图,然后将解码的流馈送到 WM ASF 编写器 筛选器中。 相比之下,此 SDK 中的 UncompAVItoWMV 示例仅适用于未压缩的 AVI 文件。 文本流和任意数据流也可以通过 DirectShow 创建和/或呈现,但这可能需要创建自定义 DirectShow 筛选器来处理这些流。
访问硬件
DirectShow 是应用程序代码访问 Windows 驱动程序模型 (WDM) 基于硬件设备(例如 1394 DV 摄像头、电视调谐器和 USB 网络摄像头)的唯一方法。 如果应用程序必须直接从基于 WDM 的硬件设备捕获数据并将其转码为 Windows Media 格式,并且 Windows Media 编码器 SDK 不符合你的需求,则 DirectShow 是唯一的替代方法。 DirectShow 还可用于访问基于 Windows 视频的旧设备。