在vs2008+Vista中DirectShow的使用

时间:2021-05-23

最近想用OpenCV库进行视频处理,但十分不幸的是新买的笔记本装的是Vista,对网络摄像机只能用DirectShow*方式控制,而不能用在XP里还能使用的vfw方式,而大多数OpenCV的例程都用vfw方式实现的,得自己去转变成 DirectShow的方式。当然了,DirectShow 也将要被Media Foundationt淘汰了。但分析一下,在XP/ Vista/ Windows7 时代还是会被保留的。
DirectShow在DirectX9.0b之前都包括在这个库中,在DX9.0c开始,则被独立成库,要另外安装**。(注,在XP(sp2)中默认安装了DX9.0c而Vista默认安装了DX10。)后来MS又把DirectShow放入了WindowsSDK中。在vs2008 中的 WinSDK6.0a 已经包含了DirectShow,但在vs2005中的WinSDK则没有。
由于懒得重装XP系统,所以就直接给本本装了个vs2008,尝试使用DirectShow。在http:///pcmax/archive/2008/11/22/1338989.html
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2617687&SiteID=1
现在采用的是第二种方法:
在调用 包含qedit.h 的命令前加入四句:
#define __IDxtCompositor_INTERFACE_DEFINED__ 再修改qedit.h 中引用 dxtrans.h 的部分,要求注释掉
#include "oaidl.h"
#include "ocidl.h"
//#include "dxtrans.h"
#include "amstream.h"
再编译运行,成功!! 选择设置摄像头,视频显示,点击q键,退出。
参考:
*DirectShow: http://msdn.microsoft.com/en-us/library/ms783323(VS.85).aspx
**DirectX(Feb 2005): http://dev.csdn.net/article/62/62941.shtm

#define __IDxtAlphaSetter_INTERFACE_DEFINED__

#define __IDxtJpeg_INTERFACE_DEFINED__

#define __IDxtKey_INTERFACE_DEFINED__

#include <qedit.h>

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章