VMR 筛选器组件

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

VMR 采用模块化设计,使应用程序能够针对许多不同的渲染方案对其进行配置。 VMR 除了) 输入引脚外,还包含两到五个子组件 (,具体取决于其配置。

具有多个流的窗口模式中的 vmr

搅拌机: 混音器是负责混合多个流的 COM 对象。 去交错也发生在混音器内部。 当检测到多个输入流或交错输入视频时,VMR 将加载混音器。 混音器收集有关每个输入流的信息,并将流排序为正确的 Z 顺序。 它负责确定每个输入引脚何时接收样本,并在适当时间指示图像合成器执行实际混合。 混频器还会计算要应用于每个输出图像的时间戳。 当应用程序提供要显示在复合图像顶部的位图时,混音器负责确保即使修改了输入流的 Z 顺序,位图也显示在顶部。

图像合成器: Image Compositor 是一个 COM 对象,用于在分配器表示器提供的单个 DirectDraw 或 Direct3D 图面上执行输入流的实际混合。 VMR 提供默认的映像合成器,使应用程序能够执行二维 alpha 混合效果。 应用程序可以提供自定义图像合成器来启用其他 2-D 和 3-D 效果,例如将纹理应用于图像的某些部分、每像素 alpha 混合、将图像映射到静止或移动的三维对象,等等。

Allocator-Presenter:分配器表示器是分配 DirectDraw 或 Direct3D 对象并处理与图形卡通信的 COM 对象。 绘图可以翻转或 blit 执行。 可以插入自己的分配器演示器,以便创建和控制 DirectDraw 或 Direct3D 对象,以及/或在演示时获取对视频位的访问权限。

窗口管理器: 窗口管理器仅在窗口化模式下使用。 窗口管理器支持旧的 IVideoWindowIBasicVideo 接口以实现向后兼容性。

关于视频混合呈现