9.3 使用VMR技术实现视频图像捕获
以上实例展示了使用DirectShow的经典视频采集技术实现视频的预览、捕获的过程。
文件的保存对我们开发者来说是"透明的",即设置文件名后启动开始预览保存。开发者不直接访问采集到的视频数据流。另外,在视频预览显示时,图像有抖动、不流畅的现象。
在下面的实例中我们实现在使用VMR(Video Mixer Render)流畅预览视频的同时捕捉图像帧,转换颜色空间RGB到YUV420/I420,供视频图像处理算法处理,或直接保存RGB/YUV格式文件。
9.3.1 VMR技术基础
前面显示图像时使用的是Video Renderer视频渲染技术,可应用于所有支持DirectX的平台,是视频显示较早的技术应用,对平台没有特殊要求;在Windows XP操作系统之前是默认的显示技术。
视频混合渲染Video Mixing Renderer 7(VMR-7)可用于WindowsXP操作系统,且是该系统的默认选择,与旧的显示滤波器相比功能有大的提升。VMR-9是DirectShow SDK 9.0中的视频渲染技术,采用Direct3D技术。VMR-9不是默认选择的滤波器,对系统要求更高,但功能更强、效果更好,它使用了最新的图像API函数提供了最好的显示性能。
视频显示根据有无窗口可分为有窗口模式和无窗口模式。Video Renderer只支持窗口模式,VMR支持有窗口(Window)和无窗口(Windowless)两种模式,默认支持有窗口模式。在无窗口模式中,可以把视频和应用程序主界面的窗口捆绑。
VMR在清晰、流畅显示视频的同时,可以灵活地捕获图像帧,这也是我们选择VMR技术的一个重要原因,因为我们想直接对图像数据进行处理。
【责任编辑:
云霞 TEL:(010)68476606】