android 无法使用 Videocapture() 读取视频文件

Can't read a video file using Videocapture() on android

我是 android 的新手,对在 android 中使用 opencv 了解不多。我想从存储中读取视频并提取帧,但无法读取视频。我使用了视频捕捉,但它总是显示失败。这是我正在使用的代码片段。视频文件路径为/storage/emulated/0/Android/data/demoVid/Demo.avi。文件大小为250MB

        VideoCapture cap = new VideoCapture();
//        cap.open(vpath.toString());
        cap.open(imFile);
        Mat frame = new Mat();
        int framecount = 0;

        if(cap.isOpened()){
            Log.d("VideoCapture","Videocapture successful");
        }
        else
        {
            Log.d("VideoCapture","Videocapture failed");
        }

所以基本上我只想使用 opencv 的视频捕捉在 android 中读取视频文件。我使用的是 opencv 版本 3.4.10,它给出了找不到文件的错误。我尝试更改路径并检查路径是否正确定义但仍然无法读取文件。在浪费了大量时间之后,我升级到 opencv 版本 4.5.0(升级以获得筛选功能)并且我的问题已针对相同的代码得到解决。所以也许一些旧版本的 opencv 不支持视频捕获。另外我想提一下,我从视频捕获中读取的帧需要很多时间,因此我无法获得实时体验。