刚开始接触OpenCV,开始用的是1.0版本,支持VC6.0,如果想了解opencv1.0如何在VC6.0下配置,可以看一下我的另一篇文章----VC6.0下配置OpenCV1.0,都是自己一步一个脚印走过来的,绝对可靠!
opencv1.0似乎只能打开avi格式的视频文件,而且对avi格式的视频文件也有严格的编码要求,这可能是opencv1.0的一个小小的缺陷,呵呵……
在用VC6.0编译执行opencv利用cvCreateFileCapture()打开i视频文件的时候,语句如下;
CvCapture* capture =cvCreateFileCapture("2.avi"); debug时候可以看到 capture 返回值一直是NULL ,运行时会一闪而过,无法播放视频。在这里我可以告诉你程序一般没问题,主要原因是你的电脑里面因为没有相应的解码器。所以无法识别AVI视频!(你会说你的播放器为什么可以播放,我可以问问你,你的播放器和你的电脑有个毛关系??你的播放器的解码插件在它自己的文件里,你能让你的windows程序去寻找那些插件吗?)
解决方案:利用ffdshow 软件下载安装相应的解码器。
FFDShow 下载与安装:
ffdshow下载地址:
http://sourceforge.net/projects/ffdshow-tryout/files/latest/download
安装指导:
1、安装时候,一定要选上“VFW接口”和“VirtualDub”(如果使用VirtualDub来进行格式的转换,要选择VirtualDub)
2、安装完成。进入开始->程序->ffdshow->ffdshow VFW设置,在Decoder选项卡下,选择编解码器,使各种视频格式对应的解码器没有被Disable就可以了,之后确定就OK了。
如下图
到此,你的电脑里面就有新的血液了……
现在在试一下,是不是问题迎刃而解了……
如果,还没有解决,那就是你的视频格式的问题,下载一个VirtualDub或者格式工厂进行格式转换一下就好啦。
VirtualDub使用方法:
下载VitualDub, (下载地址百度去吧,太多了~~) 步骤:
a. File->Open Video File;
b. Video->Filters->Add->Convert format; 选择4:2:0 Planar YCbCr (YV12)或者 32-Bit RGB。
c. Save as AVI. 保存完毕。
格式工厂的话,中文的,那么容易操作,我都不好意思说怎么用~~~但是注意选择好编码格式,是Xvid 编码~注意哦!
GOOD LUCK !!