无法在Windows 7机器中使用OpenCV 2.4.3,Python 2.7打开".mp4"视频文件

TJ *_*rat 7 python windows mp4 opencv ffmpeg

我目前正在开展一个涉及阅读mp4视频文件的项目.我遇到的问题是它在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()
Run Code Online (Sandbox Code Playgroud)

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

try:
        video = cv2.VideoCapture("video.avi")
except:
        print "Could not open video file"
        raise
print video.grab()
Run Code Online (Sandbox Code Playgroud)

" video.grab()"返回true:表示它能够读取" .avi"文件.

另一个是我们在Linux和Mac上试过这个相同的片段,它似乎工作正常,这意味着它能够读取mp4文件和avi文件.

这个问题类似于这个问题这个问题.两者仍然没有明确和可行的答案.

除了使用Linux或Mac进行编程之外,我将不胜感激任何帮助或解决方法,因为我需要在所有三个系统上工作.

Yud*_*ira 15

之前我遇到过同样的问题,通过这一步解决了:

检查你的OpenCV python版本

>>> from cv2 import __version__
>>> __version__
'2.4.0'
Run Code Online (Sandbox Code Playgroud)

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

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

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


av5*_*501 0

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