android - CvCaptureFromAVI 问题 - OpenCV Android

标签 android c opencv android-ndk java-native-interface

我需要从存储在我的 Android 设备(在本例中是我的模拟器)的 SD 卡中的视频中逐帧捕捉。我正在通过 NDK 使用 Android 和 OpenCV。我通过 DDBS (eclipse) 的文件资源管理器手动将文件“SinglePerson.avi”推送到 sdcard 中,并使用下面的代码读取文件:

    JNIEXPORT void JNICALL Java_org_opencv_samples_tutorial4_Sample4Mixed_VideoProcessing(JNIEnv*, jobject)
{
    LOGI("INSIDE VideoProcessing ");

    CvCapture* capture = cvCaptureFromAVI("/mnt/sdcard/SinglePerson.avi");

    IplImage* img = 0;

    if(!cvGrabFrame(capture)){              // capture a frame
        LOGI("Inside the if");
        printf("Could not grab a frame\n\7");
        exit(0);
    }
    img=cvRetrieveFrame(capture);// retrieve the captured frame
    cvReleaseCapture(&capture);

}

问题是 cvGrabFrame(capture) 结果总是错误的。 有什么建议可以正确打开视频并抓取帧吗? 提前致谢

最佳答案

某些版本的 OpenCV(在 opencv2 包中)构建时不支持视频。如果是这种情况,您必须在 pkg 的 Makefile 中启用“-D WITH_FFMPEG=ON”并重新编译。

"Displaying AVI Video using OpenCV"教程:

“您可能需要确保已成功安装 ffmpeg,以便允许以不同格式进行视频编码和视频解码。没有 ffmpeg 功能可能会在尝试运行这个简单示例时导致问题并产生编译错误”。

还要检查 cvCaptureFromAVI 中的路径是否正确。

希望这会有所帮助!

关于android - CvCaptureFromAVI 问题 - OpenCV Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14497595/

相关文章:

java - OpenCV,安卓 : Draw Line on bitmap

java - SQLite更新查询Android

java - ArrayList<User> 好友。 VkAPI

c - 尝试从 js-ctypes 调用 pam_start 时出现 undefined symbol

c - 如何在c中读取文件并打印不同单词的数量

c++ - 在 openCV 中将 cvPoint[][] 转换为 cvPoint** 时出现段错误

单击时的 Android 标记信息窗口

android - Jquery Mobile App 不在 Android 上显示某些图像

C WiringPi 等待函数完成

java - 通过 OpenCV 在 Android 中使用 native 函数