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

Posted

技术标签:

【中文标题】无法在 Windows 7 机器中使用 OpenCV 2.4.3、Python 2.7 打开“.mp4”视频文件【英文标题】:Cannot open ".mp4" video files using OpenCV 2.4.3, Python 2.7 in Windows 7 machine 【发布时间】:2012-11-29 20:10:43 【问题描述】:

我目前正在从事一个涉及读取 mp4 视频文件的项目。 我遇到的问题是它在 Windows 7 机器上使用 Python 2.7(32 位)、OpenCV 2.4.3(cv2.pyd)。

sn-p代码如下:

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()”返回真:表示能够读取“.avi”文件。

另一个是我们在 Linux 和 Mac 上尝试过同样的 sn-p,它似乎工作正常,这意味着它能够读取 mp4 文件和 avi 文件。

这个问题类似于this problem 和this problem。两者都还没有明确可行的答案。

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

【问题讨论】:

我目前正在处理这个问题。现在有一个优雅的解决方案吗? 【参考方案1】:

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

【讨论】:

不知道系统是不是不支持mp4。当我在我的 Mac 和我的 Linux 中使用 opencv +python 时,我可以轻松阅读 mp4。至于编解码器,我可以使用任何其他软件观看 mp4。至于lib​​av,它带有opencv的包,还从FFmpeg网站下载了一个新的适用于Windows的libav......我只是不知道我是否安装它......你知道如何安装libav和其他供opencv+python使用的库? 如果我可以打开相同的视频文件并在股票播放器中播放(我运行 Windows 10),我的系统是否支持 mp4 是否安全?【参考方案2】:

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

检查您的 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 安装的根文件夹中即可。

【讨论】:

谢谢!我最初是从 python 3 开始的,直到我注意到我关注的一些博客引用了 2.7。这个简单的事情就成功了。 不适合我。我的 Python 安装在这里:c:\Users__name__\AppData\Local\Programs\Python\Python37-32\【参考方案3】:

我在 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”。

【讨论】:

【参考方案4】:

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

我从C:\OpenCV\build\bin folder into the c:\python27 文件夹中复制了openCv_ffmpeg330.dll

成功了!

【讨论】:

以上是关于无法在 Windows 7 机器中使用 OpenCV 2.4.3、Python 2.7 打开“.mp4”视频文件的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 7 机器上编写/编译的 .NET 4 程序无法在 XP 上运行

无法在 Windows 7 x64 上使用 VB 脚本中的 CreateObject

无法在 Windows 10 机器上使用 .vmdk 运行 cloudera VM

C# 应用程序在 Windows 7 中运行,但不在 Windows XP 中

Windows 7 上的 VB6 应用程序无法访问映射驱动器

让 VB6 ADO 应用程序在 Windows 7 中工作