OpenCV Python无法打开videofile

时间:2017-01-10 10:52:05

标签: python windows opencv

我正在使用Windows 10和2.7.12 32位版本的Python和Opencv 3.1.0。下面是出错的代码:

vcap = cv2.VideoCapture("StraightAhead.avi")
if not vcap.isOpened():
    print "File Cannot be Opened"

首先,所有这些代码在使用网络摄像头时都有效(所以VideoCapture(0))。

我尝试过几件事。首先,它最初是mp4,所以我将其转换为avi。我试过一个文件(.webm)来自一个使用Linux的python和opencv的朋友,但对我来说却不适用。

我查看是否可以将DLL文件从opencv ffmpeg移动到Python但是我没有DLL文件。我检查了很多其他问题,但大多数都为Linux提供了解决方案。

最相关的问题没有任何答案或评论,所以我最终决定在这里提出。我希望有人可以提供帮助。

2 个答案:

答案 0 :(得分:-1)

尝试了你的代码,它可以在我的64位Win10机器上运行。 32位Windows所需的文件是“opencv_ffmpeg310.dll”。建议您从OpenCV Download site下载二进制文件,安装它并重试。 ffmpeg DLL位于“C:\ Program Files(x86)\ OpenCV 3.1.0 \ x64 \ vc14 \ bin”中。如果安装程序没有将它们添加到Windows环境中,还需要添加以下路径。

OPENCV_DIR='C:\Program Files (x86)\OpenCV 3.1.0\x64\vc14' 
PATH = %PATH%;%OPENCV_DIR%\bin

请注意,vc14由Visual Studio 2015编译,vc12由VS2013编译。

希望得到这个帮助。

答案 1 :(得分:-1)

您可以将二进制文件替换为C:\并再试一次。

  1. 设置OPENCV_DIR = C:\ opencv \ build \ x64 \ vc14 {opencv_ffmpeg310_64.dll有}
  2. 使用%OPENCV_DIR%\ bin
  3. 添加路径
  4. 将C:\ opencv \ build \ python \ 2.7 \ x86 \ cv2.pyd复制到 %PYTHON%\ lib \ site-packages \ cv2.pyd {其中%PYTHON%是32位 python根目录,例如" C:\ Program File(x86)\ Python27" }
  5. 如果仍然无法正常工作,请将OpenCV路径更改为故意使用32位版本的ffmpeg DLL。

    1. 将OPENCV_DIR设置为C:\ opencv \ build \ {在bin \}下使用32位ffmpeg
    2. 如果问题仍然存在,请记录Traceback消息。

      编辑:刚刚测试了从opencv网站下载的opencv-3.1.0.exe。视频文件播放,使用' Wildlife.wmv'配备32位Win7,可以工作。

      看起来EXE压缩了两组文件...... OPENCV_DIR设置为C:\ opencv \ opencv \ build \ x86 \ vc12。并将c:\ opencv \ opencv \ build \ python \ 2.7 \ x86 \ cv2.pyd cv2.pyd复制到python的lib \ site-packages。这就是全部。