gpt4 book ai didi

android - Android Studio OpenCV 3.2,无法使用 native OpenCV 打开视频文件或安卓相机

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

我目前正在使用相机/视频进行 Android 原生图像处理。

我正在使用 OpenCV 3.2 捕捉和处理图像。
问题是我无法打开任何类型的视频源或相机!

这是我的 C++ 代码。

cv::VideoCapture cap;
cv::Mat frame;

JNIEXPORT void JNICALL
Java_com_project_vmtest_Native_openVideo(JNIEnv *env, jobject instance, jstring fileName) {

const char * fileNameNative;
jboolean isCopy;
fileNameNative = env->GetStringUTFChars(fileName, &isCopy);

cap = cv::VideoCapture(fileNameNative);
cap.open(fileNameNative);
if(cap.isOpened()) // ALWAYS FALSE HERE!!!!
cap.read(frame);
}

JNIEXPORT void JNICALL
Java_com_project_vmtest_Native_render(JNIEnv *env, jclass type) {
if(engine){
cap.read(frame);
if (frame.empty()) return; // ALWAYS RETURNS HERE!!!!
engine->prepare(frame);
engine->renderObjToFBO();
engine->renderFrame();
engine->clearFrameData();
}
}

我检查了fileName,它似乎是正确的。
即这是我的文件结构:

app\src\main\cpp\native_main.cpp    // native code
app\src\main\assets\vmData\test\testFile.mp4 // video file

那么文件名是:

fileName = "../assets/vmData/test/testFile.mp4"

我尝试使用“..\assets\vmData\test\testFile.mp4”,但没有任何改变。

我试过 cap.open(CV_CAP_ANDROID + 0); 抓取相机预览并得到相同的结果,VideoCapture 根本打不开!

我使用以下代码启用了 Android 摄像头权限。

<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.camera.autofocus"/>
<uses-feature android:name="android.hardware.camera.front"/>
<uses-feature android:name="android.hardware.camera.front.autofocus"/>

我的测试设备是 Android 5.0 Lollypop,所以我认为这不是任何类型的权限问题。

挣扎了几个小时。
任何帮助表示赞赏!

最佳答案

这种格式“mp4”你不能用Android看到VideoCapture。您需要进行两次转换:

  1. 从 mp4 到 mjpeg。 : 例子: ffmpeg -i input.mp4 -vcodec mjpeg output.mjpeg
  2. 从 mjpeg 到 avi:示例:ffmpeg -i output.mjpeg -vcodec output.avi

如您所见:http://answers.opencv.org/question/126732/loading-video-files-using-videocapture-in-android/

这是一个例子:https://github.com/WritingMinds/ffmpeg-android-java .

关于android - Android Studio OpenCV 3.2,无法使用 native OpenCV 打开视频文件或安卓相机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43382359/

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