Linux OpenCV 1.0:cvCreateFileCapture在Fedora 11下始终返回Null
我试图在Fedora11系统上使用openCV 1.0的highgui.cvCreateFileCapture(path)函数打开一个视频文件。不幸的是,这个函数总是返回null。我尝试在几种不同的视频格式上使用它,甚至采取了openCV wiki()上推荐的步骤,使用mencoder将代码转换为RAWI420,如下所示:Linux OpenCV 1.0:cvCreateFileCapture在Fedora 11下始终返回Null,linux,opencv,Linux,Opencv,我试图在Fedora11系统上使用openCV 1.0的highgui.cvCreateFileCapture(path)函数打开一个视频文件。不幸的是,这个函数总是返回null。我尝试在几种不同的视频格式上使用它,甚至采取了openCV wiki()上推荐的步骤,使用mencoder将代码转换为RAWI420,如下所示: $ mencoder in.avi -ovc raw -vf format=i420 -o out.avi 这似乎没有效果,所以我有点卡住了。不会产生错误,返回null(
$ mencoder in.avi -ovc raw -vf format=i420 -o out.avi
这似乎没有效果,所以我有点卡住了。不会产生错误,返回null(或者,因为我使用的是python包装器,所以没有)。我已经安装了ffmpeg、ffmpeg-devel和ffmpeg-libs,所以我认为我应该有适当的编解码器支持。是否有人知道如何解决此问题,或者可以采取哪些步骤来调试此问题来代替解决方案?这取决于您如何安装OpenCV。OpenCV可以使用多种不同的引擎之一来读取视频文件,包括ffmpeg、gstreamer和xine(我相信)。确保您的安装确实使用ffmpeg作为引擎。我能想到的最简单的方法是调用“ldd programname”,并查看ffmpeg是否列为依赖项之一。此外,您需要确保引擎能够处理您的视频编解码器
不幸的是,OpenCV对导致错误的原因讳莫如深。返回NULL可能意味着“无法处理编解码器”,也可能意味着“访问被拒绝”。您可以通过strace运行您的进程,并查看系统调用返回的内容,这是一个可能的选项。最坏的情况是,在调用cvCreateFileCapture时,需要使用调试器并遍历代码。希望这有帮助。OpenCV已经在2.x版上了
帮你自己一个忙,把它更新到2.1版(至少)我在Ubuntu 10.10上遇到了这个问题,对我来说这是库的问题。我无法找出哪个库丢失了,但我发现在编译OpenCV之前执行OpenFramework的安装脚本是可行的 请不要用这只恐龙。