关于 DirectShow 中的视频呈现

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

DirectShow 提供了多个用于呈现视频的筛选器:

  • 视频呈现器 筛选器。 此筛选器适用于所有支持 DirectX 的平台,并且没有特定的系统要求。 视频呈现器尽可能使用 DirectDraw 来呈现视频;否则,它将使用 GDI。 此筛选器是早于 Windows XP 的平台上的默认视频呈现器。
  • 视频混合呈现器筛选器 7 (VMR-7) 。 VMR-7 在 Windows XP 上可用,其中它是默认的视频呈现器。 VMR-7 始终使用 DirectDraw 7 进行呈现。 它提供了许多较旧的视频呈现器筛选器中不可用的强大功能,包括应用程序在其中控制用于呈现的 DirectDraw 图面的插件模型。
  • 视频混合呈现器筛选器 9 (VMR-9) 。 VMR-9 是使用 Direct3D 9 进行呈现的视频混合呈现器的较新版本。 它可用于支持 DirectX 的所有平台。 但是,它不是默认呈现器,因为它的系统要求高于视频呈现器筛选器。
  • 覆盖混音器筛选器专为 DVD 播放和广播视频而设计。 它还支持视频端口扩展 (VPE) ,使其能够与硬件 MPEG-2 解码器或模拟电视调谐器配合使用,这些解码器将视频直接发送到图形卡。
  • 增强的视频呈现器 (EVR) 筛选器从 Windows Vista 开始提供。 与早期视频呈现器相比,它提供改进的视频性能,尤其是在启用了 Windows Vista 桌面合成时。

通常,EVR 是面向 Windows Vista 或更高版本的应用程序的首选,而 VMR-9 是早期 Windows 版本上运行的应用程序的首选。 有关使用 VMR-7 和 VMR-9 筛选器的详细信息,请参阅 使用视频混合呈现器

窗口模式和无窗口模式

DirectShow 视频呈现器可以在 窗口 模式或 无窗口 模式下运行。

  • 在窗口模式中,呈现器创建自己的窗口来显示视频。 通常,你会将此窗口设为应用程序窗口的子窗口。 有关详细信息,请参阅 使用窗口模式
  • 在无窗口模式下,呈现器将视频直接绘制到应用程序窗口上。 它不会创建自己的窗口。 有关此模式的详细信息,请参阅 使用无窗口模式

视频呈现器筛选器仅支持窗口模式。 VMR-7 和 VMR-9 筛选器支持这两种模式。 它们默认为窗口模式以实现向后兼容性,但首选无窗口模式。 EVR 仅支持无窗口模式。

视频渲染