【问题标题】:Cannot open ".mp4" video files using OpenCV 2.4.3, Python 2.7 in Windows 7 machine无法在 Windows 7 机器中使用 OpenCV 2.4.3、Python 2.7 打开“.mp4”视频文件
【发布时间】: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 problemthis problem。两者都还没有明确可行的答案。

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

【问题讨论】:

  • 我目前正在处理这个问题。现在有一个优雅的解决方案吗?

标签: python windows opencv ffmpeg mp4


【解决方案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

    成功了!

    【讨论】:

      猜你喜欢
      • 2015-09-04
      • 2017-05-03
      • 1970-01-01
      • 1970-01-01
      • 2017-10-19
      • 2014-11-11
      • 2016-08-06
      • 2015-12-29
      • 2017-09-08
      相关资源
      最近更新 更多