OpenCV 2.4 VideoCapture无法在Windows上运行

时间:2012-07-28 07:55:29

标签: python windows opencv

我正在使用以下instructions安装的OpenCV 2.4的Python绑定。

我的问题类似于this one,但我需要Windows机器解决方案。

问题:当我尝试使用

cap = cv2.VideoCapture(0)
print cap.grab()

它工作正常,但以下代码

cap = cv2.VideoCapture(filename)
print cap.grab()

总是返回False。

该文件的路径是正确的,绝对的,没有空格。

我试用了两台装有Windows XP和Windows 7的机器,结果相似。在Linux(Ubuntu)上,它对我来说很好。

9 个答案:

答案 0 :(得分:71)

C:\OpenCV\3rdparty\ffmpeg\添加到Windows PATH环境变量或将opencv_ffmpeg.dll从该目录复制到C:\Python27\或PATH中的目录。或者,使用http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv中的OpenCV二进制文件。

可能还需要重命名opencv_ffmpeg.dll文件。

对于OpenCV版本X.Y.Z
opencv_ffmpeg.dll ==> opencv_ffmpegXYZ.dll

对于64位OpenCV版本X.Y.Z
opencv_ffmpeg.dll ==> opencv_ffmpegXYZ_64.dll

答案 1 :(得分:29)

复制 opencv_ffmpeg.dll 对我来说还不够 - 当我使用OpenCV 2.4.6和Python 2.7.5时,我不得不将其重命名为 opencv_ffmpeg246.dll

答案 2 :(得分:10)

我首先尝试复制,然后更改Windows的Path环境..直到我将openCv_ffmpeg245.dll的名称更改为openCV版本2.4.5和python 2.7才开始工作。 (注意** 245.dll来自opencv版本2.4.5)

答案 3 :(得分:8)

对于64位版本,将opencv_ffmpeg_64.dll重命名为opencv_ffmpeg249_64.dll将249更改为opencv版本。

答案 4 :(得分:6)

对于64位环境下的OpenCV 3.0.0,请复制opencv_ffmpeg_64.dll并将其重命名为opencv_ffmpeg300_64.dll。

还要将此路径添加到PATH环境变量中,以使其在Java下使用OpenCV。

答案 5 :(得分:5)

更新:对于OpenCV 2.4.9仍然如此,复制所有文件,并重命名dll opencv_ffmpeg249.dll

答案 6 :(得分:4)

我遇到了与python 2.7和opencv 2.4.10相同的问题。我将opencv_ffmpeg2410_64.dll文件从C:\ Applications \ opencv \ build \ x64 \ vc10 \ bin复制到python路径中(我的是C:\ Users \ mohammad \ Anaconda)并且它已经解决了!

答案 7 :(得分:3)

首先我使用windows8.1 32bit和opencv 2.4.10 我使用由Logicool C270制作的文件test1.wmv遇到了同样的问题 我尝试使用由Digital Camera(Canon SX160)制作的其他文件test2.mov。 因此,我可以test2.mov添加路径C:\opencv\build\x86\vc12\bin 但我无法播放test1.wmv.
所以我尝试使用VLC(Video for youtube HD)将格式test1.wmv更改为test1a.mp4。 然后我可以玩test1a.mp4.
我在Ubuntu 14.04 LTS上试过test1.wmv,然后我就可以轻松玩了 在windows8.1和Ubuntu 14.04 LTS之间的默认ffmpeg二进制文件上可能会出现一些差异。

答案 8 :(得分:0)

对于anaconda环境 从C:\ Python27 \拷贝 opencv_ffmpeg249_64.dll 根据您的opencv正确版本重命名其版本 并过去了 的 C:\用户\ KHALID \ Anaconda2 \库\ BIN