使用VMR9采集n个视频的一帧到一张位图

本文介绍了如何使用DirectX 9.0中的VMR9(Video Mixing Renderer 9)组件,以窗口无边框模式捕获多个视频源的一帧并显示在一张位图上。内容涵盖了VMR9的工作模式、窗口控制、视频流的布局和显示,以及如何通过GetCurrentImage获取视频帧。
摘要由CSDN通过智能技术生成
近来看DirectX 9.0文档,越来越觉得它功能的强大。结合目前解决的一个问题: 即采集多个视频源的一帧到一张位图。它需要用到DirectX中的VMR。
 VMR是新一代的video renderer,全称为Video Mixing Renderer,它分为VMR7和VMR9,VMR7基于DirectDraw7,只限于Windows XP;VMR9基于Direct3D9。因为我的例子可能会用于Windows 2000,所以我采用了可用于所有支持DirectX平台的VMR9。
VMR9可以使用3种工作模式,分别为windowed,windowless,renderless模式。后两种模式多用于游戏中。测试例子中用的是windowless模式。
 
先看下程序实现的截图和graph图:
 
下面开始具体的程序实现:
视频设备的枚举在我的简化MFC版amcp中有过描述,这里主要是VMR9的创建与设定。
另外生成graph的方法如连接PINs也是采用简化MFC版amcp中描述的Capture Graph Builder中的方法。 <
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值