我目前工作的一个项目,该项目包括读取mp4视频文件。 我遇到的问题是,使用Python 2.7(32位),OpenCV的2.4.3(cv2.pyd)在Windows 7的机器吧。
代码段如下所示:
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安装的build文件夹内的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_ffmpeg2411.dll文件从我的OpenCV安装的build文件夹复制,并贴到我的Python安装的根文件夹。 所以,在我的情况,DLL文件是在 “C:\ dev的\ OpenCV的\建设\ 86 \ VC12 \ BIN”,我复制到 “C:\ Program Files文件(x86)的\ Python2.7”。
你的MP4,可以具有一个用于您的系统没有支持(或OpenCV中没有支持),而你的AVI编解码器可支持的编解码器。 此外,如果OpenCV的使用libav解码,你应该安装。
我有同样的问题,我.mpg
视频文件。 在无法打开它openCV
。
我复制了openCv_ffmpeg330.dll
从C:\OpenCV\build\bin folder into the c:\python27
文件夹中。
这工作!
文章来源: Cannot open “.mp4” video files using OpenCV 2.4.3, Python 2.7 in Windows 7 machine