OpenCV1.0版本中cvCaptureFromFile()函数无法读取.avi文件的解决

其实我是被这个问题困扰好久以后,在之前大牛的指点下搞定的。所以,首先要谢谢之前的分享的高手。

具体情况如下:

运行一个demo程序,视频跟踪的,使用提供的视频文件没有问题。可以很好的读入,程序运行正常。但是换成自己的文件后,就不行了。提示capture =cvCaptureFromFile() 中指针为空。视频文件没有加载上去。

上网搜了一下,有人说这是因为cvCaptureFromFile()函数原型有关。手册上讲,其中的参数必须是:const char * filename.存在一个字符串转换的问题。但是思考后,,感觉不对。因为要是字符窜转换的问题话,那应该所有格式一样的视频文件都不能读取啊,为什么有的可以,有的不行呢?

再查之,得到一种解释,说是这个和视频文件的编码格式有关。虽然后缀名同为avi但是各自的编码方式不一样。opencv1.0中支持多个版本的编码方式。论坛上老师说Xvid编码的文件一定能够打开。于是找到两个软件。一个是GSpot一个分析编码方式的软件,这个很好用。火眼金睛!一下子就可以分析出视频文件时什么编码方式的。

另外就要找一个编码转换器软件。这个不太好找。找了几个,要么是要收费,要么就是转换后,还是不能work.论坛上推荐MediaCoder。

下下来之后,要设置好“视频”中选择格式Xvid,编码器也选择Xvid,容器选择AVI。这一点和论坛上的那个帖子不一样。

把原帖贴出来,大家自己参考。

版权声明:本文为博主原创文章,未经博主允许不得转载。

比谁都感激这份“不能说出的爱”。

OpenCV1.0版本中cvCaptureFromFile()函数无法读取.avi文件的解决

相关文章:

你感兴趣的文章:

标签云: