无法在Windows 7机器上使用OpenCV 2.4.3,Python 2.7打开“.mp4”video文件

我目前正在研究一个涉及阅读mp4video文件的项目。 我遇到的问题是在Windows 7机器上使用Python 2.7(32位),OpenCV 2.4.3(cv2.pyd)。

代码片段如下:

try: video = cv2.VideoCapture("video.mp4") except: print "Could not open video file" raise print video.grab() 

video.grab() ”总是返回false:这意味着它不读取文件“ video.mp4 ”但是当我们尝试这个:

 try: video = cv2.VideoCapture("video.avi") except: print "Could not open video file" raise print video.grab() 

video.grab() ”返回true:表示能够读取“ .avi ”文件。

另一个是我们已经在Linux和Mac上尝试了这个相同的片段,它似乎工作正常,这意味着它能够读取MP4文件和AVI文件。

这个问题类似于这个问题和这个问题 。 两者仍然没有一个清晰可行的答案。

我将不胜感激任何帮助或解决办法,只是使用Linux或Mac进行编程,因为我需要在三个系统上工作。

我以前也有同样的问题,这一步解决了:

检查你的OpenCV python版本

 >>> from cv2 import __version__ >>> __version__ '2.4.0' 

然后将你的opencv_ffmpeg.dll复制到C:\Python27\ ,并将其重命名为相关的OpenCV Python版本。 在我的情况下,我不得不将其重命名为opencv_ffmpeg240.dll

更新:在Windows上,您可以在OpenCV安装的构建文件夹中找到opencv_ffmpeg DLL。 例如: C:\dev\opencv\build\x86\vc12\bin

然后,将opencv_ffmpeg<version>.dll文件复制并粘贴到Python安装的根文件夹中。

我在Windows 7操作系统下使用OpenCV版本2.4.11和Python 2.7来解决这个问题。 我无法打开和操作MP4文件,但能够打开AVI文件。

在我的情况下,解决方案是从我的OpenCV安装的build文件夹中复制opencv_ffmpeg2411.dll文件,并将其粘贴到我的Python安装的根文件夹中。 所以,在我的情况下,DLL文件是在“C:\ dev \ opencv \ build \ x86 \ vc12 \ bin”中,并将其复制到“C:\ Program Files(x86)\ Python2.7”。

您的mp4可能会有您的系统不支持的编解码器(或者opencv不支持),而您的avi编解码器可能受支持。 另外如果opencv使用libav进行解码,你应该安装它。

我有我的.mpg视频文件相同的问题。 无法在openCV打开它。

我将openCv_ffmpeg330.dllC:\OpenCV\build\bin folder into the c:\python27文件夹中。

这工作!