Не удается получить кадры из видео YouTube с помощью FFmpegMediaMetadataRetriever - PullRequest
0 голосов
/ 27 июня 2019

Я пытался извлечь кадр из видео на YouTube с помощью FFmpegMediaMetadataRetriever в моем проекте студии Android.всякий раз, когда я использую URL-адрес YouTube внутри setDataSource, приложение вылетает.Я совершенно новичок в андроид студии и раньше не работал с FFmpeg.Буду признателен, если кто-нибудь может мне помочь.Кроме того, мне жаль, если я задал действительно глупый / легкий вопрос.

import wseemann.media.FFmpegMediaMetadataRetriever;
.....

private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
    @Override
    public void onManagerConnected(int status) {
        switch (status) {
            case LoaderCallbackInterface.SUCCESS: {
                Log.i(TAG, "OpenCV loaded successfully");
                mOpenCvCameraView.enableView();
                try {
                    initializeOpenCVDependencies();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            break;
            default: {
                super.onManagerConnected(status);
            }
            break;
        }
    }
};


private void initializeOpenCVDependencies() throws IOException {

    tick =0;
   //extract frame at 2 second using FFmpegMediaMetadataRetriever
    FFmpegMediaMetadataRetriever mmr = new FFmpegMediaMetadataRetriever();
    mmr.setDataSource("https://youtu.be/f-ehTcWC6dc");
    Bitmap b = mmr.getFrameAtTime(2000000, FFmpegMediaMetadataRetriever.OPTION_CLOSEST);
    mmr.release();

    objMat = new MatOfPoint2f();
    sceneMat = new MatOfPoint2f();
    obj_corners = new Mat(4, 1, CvType.CV_32FC2);
    img = new Mat();
    img2 = new Mat();
}

в build.gradle, я добавил следующие зависимости

dependencies {

       //FFmpegMediaMetadataRetriever dependencies
       implementation 'com.github.wseemann:FFmpegMediaMetadataRetriever:1.0.14'

       implementation project(path: ':openCVLibrary340dev')
}

ошибка, которую я получаю:

E / AndroidRuntime: FATALИСКЛЮЧЕНИЕ: основной Процесс: com.example.jeverfun, PID: 8877 java.lang.RuntimeException: Невозможно возобновить активность= 0xFFFFFFFF в android.app.ActivityThread.performResumeActivity (ActivityThread.java:3581) в android.app.ActivityThread.handleResumeActivity (ActivityThread.java:3621) в android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2862) в иapp.ActivityThread.-wrap11 (неизвестный источник: 0) на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1589) на android.os.Handler.dispatchMessage (Handler.java:106) на android.os.Looper.loop (Looper.java:164) на android.app.ActivityThread.main (ActivityThread.java:6494) на java.lang.reflect.Method.invoke (собственный метод) на com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:438) в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807) Вызвано: java.lang.IllegalArgumentException: сбой setFFataXFFFFFFFFFFF = 0 0в wseemann.media.FFmpegMediaMetadataRetriever.setDataSource (собственный метод) по адресу com.example.jeverfun.jevercamera.initializeOpenCVDependencies (jevercamera.java:373) по com.example.jeverfun.jeverraamera: 59 $.example.jeverfun.jevercamera $ 1.onManagerConnected (jevercamera.java:347) в com.example.jeverfun.jevercamera.onResume (jevercamera.java:469) в android.app.Instrumentation.callActivityOnResume (Instrumentation.java and5): 35.app.Activity.performResume (Activity.java:7117) в android.app.ActivityThread.performResumeActivity (ActivityThread.java:3556) в android.app.ActivityThread.handleResumeActivity (ActivityThread.java:3621) в android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2862) в android.app.ActivityThread.-wrap11 (неизвестный источник: 0) в android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1589) в android.os.Handler.dispatchMessage (Handler.java:106) в android.os.Looper.loop (Looper.Java: 164) в android.app.ActivityThread.main (ActivityThread.java:6494) в java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.Java: 438) на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807) I / MediaMetadataRetrieverJNI: выпуск приложения прекращен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...