OpenCV Java将文件绑定VideoCapture以静默方式失败

LCa*_*ght 5 java video opencv ffmpeg

我正在使用提供的Windows 64bit Java jar的OpenCV 2.4.8.到目前为止,我一直在目前的环境中充分利用OpenCV.

我无法使用VideoCapture该类打开视频文件, 但网络摄像头Feed工作正常.

下面按预期工作,video.isOpened返回true

    VideoCapture video = new VideoCapture();
    boolean result = video.open(0);
Run Code Online (Sandbox Code Playgroud)

video.isOpened返回false时,以下内容失败

    VideoCapture video = new VideoCapture();
    boolean result = video.open("res/hand-test-1.mp4");
Run Code Online (Sandbox Code Playgroud)

两种文件格式似乎都没有区别(这些都是转换的,而不仅仅是希望重命名)

    video.open("res/hand-test-1.mp4");
    video.open("res/hand-test-1.avi");
    video.open("res/hand-test-1.wmv");
Run Code Online (Sandbox Code Playgroud)

位置似乎也不重要.

    video.open("C:/hand-test-1.mp4");
    video.open("C:\\hand-test-1.mp4");
    video.open("hand-test-1.mp4");
Run Code Online (Sandbox Code Playgroud)

垃圾,也没有例外从OpenCV通过Java启动,似乎无声地失败.

    video.open("ashdkfhkajsjdfkhaksdf");
Run Code Online (Sandbox Code Playgroud)

PATH包含随opencv安装提供的ffmpeg目录,

    C:\dev\opencv\sources\3rdparty\ffmpeg
Run Code Online (Sandbox Code Playgroud)

现在我的想法已经用完了,似乎我扔给原生的东西video.open(String)都会返回false.

任何帮助将非常感激

小智 4

我在 OpenCV 2.4.9 中遇到了同样的问题。解决问题的解决方案是将 PATH 变量设置为 OpenCV 安装目录的“bin”目录,例如“C:\opencv\build\x64\vc11\bin”。