视频混合渲染器VMR7与VMR9

发布网友 发布时间:6小时前

我来回答

1个回答

热心网友 时间:6小时前

当使用KMP、MPC等播放器时,对于DirectShow视频渲染器,特别是VMR7和VMR9,可能会感到困惑。让我们首先理解Video Renderer和Overlay Mixer的角色。

Video Renderer,即VR,是接收RGB/YUV原始数据并在显示器上显示的滤镜。为了提高计算机的绘图性能,VR会优先利用DirectDraw和Overlay表面。如果显卡不支持,VR会通过GDI函数进行画图。当Filter Graph连接到VR,VR会要求与当前显示器设置相匹配的RGB格式,如24位彩色。如果显卡支持YUV Overlay,VR会动态调整媒体类型以适应合适的YUV格式。VR Filter实现了IVideoWindow接口,Filter Graph Manager通过这个接口来控制视频窗口。

而Overlay Mixer则是将多路视频流合成为一个输出的滤镜,主要为DVD回放和广播视频设计。它可以利用Video Port Extensions直接将硬件解码数据送给显卡显示。同样,Overlay Mixer优先使用DirectDraw能力,且必须有Overlay表面。它有一个输出Pin,Media type为MEDIATYPE_VIDEO, MEDIASUBTYPE_Overlay,通常连接到Video Renderer。运行时,Overlay Mixer负责图像显示,Video Renderer负责视频窗口管理。此外,还有Overlay Mixer 2,功能相似但格式类型和Merit值不同。

Overlay Mixer通过Color keying技术合成视频,接收主视频数据、子画面和line-21数据。Video Mixing Renderer 7(VMR7)虽然整合了Video Renderer和Overlay Mixer的部分功能,但因其历史原因,微软在Windows XP中引入了VMR-7,它利用DirectDraw 7技术,支持更多输入流的alpha混合和第三方视频效果等。然而,VMR-7仅限于Windows XP,且不支持颜色控制和高质量的截图。相比之下,VMR-9(Direct3D 9技术)性能更强,支持硬件颜色操作和宽高比控制,但可能需要Direct9硬件支持。在KMP中,推荐使用覆盖混合器,但如果遇到兼容性问题,可以选择VMR 7或9进行渲染,以优化字幕质量和图像播放速度。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com