选择正确的视频呈现器
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media 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::Render 和 RenderFile 方法使用 VMR-7。 如果硬件不支持 VMR-7,这些方法将回退到旧版视频呈现器筛选器。 EVR 和 VMR-9 绝不是默认呈现器。
相关主题