选择正确的视频呈现器

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

DirectShow 提供了多个视频呈现器筛选器,如下表所示。

筛选器 备注
增强的视频呈现器 (EVR) 使用 Direct3D 9。 需要 Windows Vista 或更高版本。
视频混合呈现器 9 (VMR-9) 使用 Direct3D 9。 需要 Windows XP 或更高版本。
视频混合筛选器 7 (VMR-7) 使用 DirectDraw。 需要 Windows XP 或更高版本。
覆盖混音器 支持通过 DirectDraw 进行硬件覆盖。
旧版 视频呈现器 筛选器。 很少) GDI 使用 DirectDraw 或 (

 

要使用的呈现器在很大程度上取决于需要支持的 Windows 版本。

  • 在 Windows Vista 及更高版本中,如果硬件支持 EVR,应用程序应使用 EVR。 否则,请回退到 VMR-9 或 VMR-7。 与以前的呈现器相比,EVR 提供更好的性能和更好的视频质量。 此外,它旨在与桌面窗口管理器 (DWM) 配合使用。
  • 在 Windows Vista 之前,如果硬件支持 VMR-9,并且不需要视频端口功能,请使用 VMR-9。 否则,请使用 VMR-7。
  • 在较旧的系统上,可能需要将覆盖混音器 (用于视频端口或硬件覆盖支持) 或旧版视频呈现器筛选器。

默认情况下,IGraphBuilder::RenderRenderFile 方法使用 VMR-7。 如果硬件不支持 VMR-7,这些方法将回退到旧版视频呈现器筛选器。 EVR 和 VMR-9 绝不是默认呈现器。

视频渲染