使用视频混合呈现器

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

在性能和功能广度方面,视频混合呈现器 (VMR) 筛选器代表了 Windows 平台上下一代视频呈现。 VMR 取代了覆盖混合器和视频呈现器,并添加了许多新的混合功能。

VMR 有两个版本:

  • VMR-7,它使用 DirectDraw 7 进行呈现。
  • VMR-9,它使用 Direct3D 9。

VMR-7 在 Windows XP 及更高版本上可用,但不能重新分发。 VMR-9 可在 DirectX 9 支持的所有平台上重新分发。 这两个 VMR 筛选器的实现及其公开的接口非常相似。

由于 DirectDraw 7 和 Direct3D 9 之间的基本差异,VMR-9 有自己的 CLSID 和自己的一组接口、结构和枚举类型,这些接口、结构和枚举类型并不总是与 VMR-7 的相应数据类型相同。 VMR-9 接口都以“9”结尾,例如 IVMRStreamConfig9,结构和枚举类型的名称中都有“VMR9”,以将它们与 VMR-7 一起使用的数据类型区分开来。

为了确保向后兼容性,VMR-9 不是任何系统上的默认呈现器。 若要使用 VMR-9,必须使用 IFilterGraph::AddFilter 方法将其显式添加到筛选器图中,并在将其连接到任何上游筛选器之前对其进行配置。

本文包含以下各节。 除非另有说明,否则这些部分中的信息适用于 VMR-7 和 VMR-9 筛选器。

视频混合呈现器筛选器 7

视频混合呈现器筛选器 9