51

我正在使用 Python 绑定到按照以下说明安装的 OpenCV 2.4 。

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

问题:当我尝试使用

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

它工作正常,但以下代码

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

总是返回 False。

文件路径正确、绝对且没有空格。

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

4

9 回答 9

73

添加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 版本 XYZ
opencv_ffmpeg.dll==>opencv_ffmpegXYZ.dll

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

于 2012-07-28T19:28:35.310 回答
30

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

于 2013-07-16T09:25:51.860 回答
10

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

于 2014-03-21T13:02:20.383 回答
8

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

于 2014-06-13T18:44:55.357 回答
6

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

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

于 2014-10-05T21:34:21.637 回答
5

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

于 2014-06-09T12:42:43.113 回答
4

我对 python 2.7 和 opencv 2.4.10 有同样的问题。我将 opencv_ffmpeg2410_64.dll 文件从 C:\Applications\opencv\build\x64\vc10\bin 复制到 python 路径中(我的路径是 C:\Users\mohammad\Anaconda),它就解决了!

于 2015-03-03T04:22:39.837 回答
3

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

于 2014-11-23T10:11:41.960 回答
0

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

于 2017-07-08T11:30:21.780 回答