gpt4 book ai didi

android - 如何 : Android OpenCV VideoCapture with File

转载 作者:太空宇宙 更新时间:2023-11-03 22:10:59 29 4
gpt4 key购买 nike

我正在尝试将视频传递给 OpenCV VideoCapture 类。但是,当我调用 VideoCapture.isOpened() 方法时,它总是返回 false。我尝试了两种方法:

  1. 将视频文件保存到内存中,context.getFilesDir() =>/data/data/package_name/files/VideoToAnalyze/Recording.mp4

  2. 还有一个到 environment.getExternalStorageDirectory() => sdcard/appName/Recording.mp4。

这里似乎没有任何作用。我的问题是如何将视频文件(或正确的文件路径是什么)传递给 VideoCapture OpenCV 对象?我在下面发布了一些代码作为示例。请注意,我没有收到错误。该文件总是被发现/存在,但是当我调用 isOpened() 时,我总是得到 false

更新:所以看起来网络上的每个人都在说 OpenCV(我使用的是 3.10)缺少 ffmpeg 后端,因此无法处理视频。我想知道有没有人知道这是事实??有没有解决办法。几乎所有其他逐帧处理视频的替代方法都非常慢。

String x = getApplicationContext().getFilesDir().getAbsolutePath();
File dir = new File(x + "/VideoToAnalyze");
if(dir.isDirectory()) {
videoFile = new File(dir.getAbsolutePath() + "/Recording1.mp4");
} else {
// handle error
}

if(videoFile.exits(){

String absPath = videoFile.getAbsolutePath();
VideoCapture vc = new VideoCapture();
try{
vc.open(absPath);
} catch (Exception e) {
/// handle error
}

if(!vc.isOpened(){
// this code is always hit
Log.v("VideoCapture", "failed");
} else {
Log.v("VideoCapture", "opened");


.....

最佳答案

这是一个老问题,但我也有同样的问题。

Android 版 Opencv 仅支持 AVI 容器中的 MJPEG 编解码器。 See this

关于android - 如何 : Android OpenCV VideoCapture with File,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36535607/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com