OpenCV VideoCapture无法读取Python中的视频,但能够在VS11中读取

Yao*_*hen 4 python opencv ffmpeg

作为标题,我无法使用以下代码在python中使用VideoCapture读取视频:

v = 'C:\\test.mp4'
import cv2
cap = cv2.VideoCapture(v)
if cap.isOpened():
  print "Finally"
else:
  print "BOOM"
Run Code Online (Sandbox Code Playgroud)

BOOM总是被打印出来.

在VS11中,以下代码有效:

#include "stdafx.h"

#include <opencv2\highgui\highgui.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char* argv[])
{
    string v = "C:\\test.mp4";
    VideoCapture cap;
    cap.open(v);
    if (cap.isOpened()) {
        cout << "Yes!" << endl;
    } else {
        cout << "BOOM" << endl;
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我确实知道SO中有一些解决方案,但对我来说没有任何作用.我在C:\ Python27和C:\ Python27\DLLs以及PATH中有以下dll

  • opencv_ffmpeg.dll
  • opencv_ffmpeg_64.dll
  • opencv_ffmpeg_245_64.dll
  • opencv_ffmpeg_245.dll

我不知道还没有做什么.

请帮我.非常感谢你.

Yao*_*hen 6

我通过安装答案提供的下载链接中的二进制文件解决了这个问题.

它将所有opencv DLL复制到C:\ Python27(或者其他文件).但我不明白为什么它不会提前工作,因为我已经将这些DLL包含在我的PATH中