opencv1.1无法读视频文件的解决方法

OpenCV无法读取视频可能是由于缺少合适的编解码器。可以尝试添加ffopencv库,需要ffopencv110.dll动态链接库,可以从Yahoo Group下载。另外,安装ffdshow也是一种解决办法,它提供多种编解码支持。如果问题依然存在,可能需要在源码中添加缺失的函数声明和实现,并重新编译ffopencv110.dll。
摘要由CSDN通过智能技术生成

无法读视频大多是由于视频编码的原因,只要有支持的编解码器就可以解决这个问题。

可以在OpenCV link里添加ffopencv.lib,这个库要和一个叫做 ffopencv110.dll 的动态连接库连接,才能使用它里面的函数 。这个 ffopencv110.dll 动态连接库要从yahoo group下载,也可以自己编译,不过要修改一些文件,比较麻烦。下载后,使用的时候放到project 的debug文件里就可以。

还有一种方法,就是下载个ffdshow安装,这是个免费的编解码软件,支持很多编码方式。它本身没有播放器,但播放器都可以使用它解码。我看到有人用人用这个方法成功了。

------------
最近用opencv来读取avi文件,发现无论用CvCreateFileCapture,还是CvCaptureFromFile或者CvCaptureFromAVI,总是返回0,也就是无法捕获视频,后来知道这三个函数其实都是一样的东西,只是用宏语句定义(#define)的不同名称,这些宏定义在highgui.h里可以看到。
例如:
#define cvCaptureFromAVI cvCaptureFromFile
#define cvCaptureFromFile cvCreateFileCapture


所以用cvCaptureFromAVI()跟cvCaptureFromFile(),cvCreateFileCapture()其實都是一樣的東西.這邊其實副檔名不限avi檔,只要檔案格式符合OpenCV播放程式內建格式的標準就行.
cvCaptureFromAVI("AVI檔案名稱");

无法捕获视频,可能是codec的原因,codec是什么?不甚了解。查阅了一下codec的资料,内容有不少,有涉及视频压缩和传输的,还有容器的概念,各种视频编解码器类型,例如mpeg 1,2,4, xvid, h264, divx , mp3等等。
原来同样扩展名的avi文件,它内部的编码方式也是多种多样。容器可以理解成一个壳,把编码后的音轨,视频数据等按照某种规则放进里面,就生成独立的视频文件。这个视频文件就是个容器,容器的格式有 avi,mpg,flv等等。
知道了这些后用mencoder 重新给视频转换了编码,容器指定为 avi,可是尝试了各种编码后依然无法捕获。

后来在某个博客上看到这么一段话:


附註
:opencv1.1取消了AviForamt=-1的功能,並且要掛上ffopencv的函式庫才能使用,關於avi檔案的存取,必須要去Yahoo Group下載ffopencv110.dll覆蓋到C:/Program Files/OpenCV/bin的目錄底下

博客地址: http://yester-place.blogspot.com/2008/06/gui5.html ,上面很多opencv的教程


ffopencv 的 ff 应该是指 ffmpeg ,opencv 利用了ffmpeg生成的一个动态链接库,在里面有一些可以使用ffmpeg 的功能的函数调用。 第一次去opencv的 yahoo group࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值