OpenCV 2.4 VideoCapture不能在Windows上工作

我使用的Python绑定到OpenCV 2.4安装与下面的说明 。

我的问题是类似于这个 ,但我需要Windows机器解决scheme。

问题:当我尝试使用

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

它工作正常,但下面的代码

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

总是返回False。

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

我试着在Windows XP和Windows 7上的两台机器上得到类似的结果。 在Linux(Ubuntu)上对我来说工作正常。

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

重命名opencv_ffmpeg.dll文件可能也是必要的。

对于OpenCV版本XYZ
opencv_ffmpeg.dll ==> opencv_ffmpegXYZ.dll

对于64位OpenCV版本XYZ
opencv_ffmpeg.dll ==> opencv_ffmpegXYZ_64.dll

复制opencv_ffmpeg.dll对我来说还不够 – 我不得不将它重新命名为opencv_ffmpeg246.dll ,当我在Python 2.7.5中使用OpenCV 2.4.6

我第一次尝试复制,然后更改窗口的path环境..它不工作,直到我改名为opencv_ffmpeg245.dll为我的openCV版本2.4.5和python 2.7。 (注意** 245.dll来自opencv版本2.4.5)

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

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

还要把这个path添加到你的PATH环境variables中,以便在Java下使用OpenCV。

更新:这仍然是为OpenCV 2.4.9,复制所有的文件,并重命名DLL opencv_ffmpeg249.dll

我有与python 2.7和opencv 2.4.10相同的问题。 我将opencv_ffmpeg2410_64.dll文件从C:\ Applications \ opencv \ build \ x64 \ vc10 \ bin复制到pythonpath(我的是在C:\ Users \ mohammad \ Anaconda),并解决了!

起初我使用windows8.1 32bit和opencv 2.4.10。
我使用test1.wmv制作的test1.wmv文件面临同样的问题。
我试图使用由数码相机(佳能SX160)制作的其他文件test2.mov 。 所以我可以玩test2.mov来追加pathC:\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二进制文件可能会有一些不同。

对于anaconda环境,从C:\ Python27 \复制opencv_ffmpeg249_64.dll ,根据您的opencv正确版本重新命名它的版本,并将其重命名为C:\ Users \ KHALID \ Anaconda2 \ Library \ bin