Can not get frames from youtube video using FFmpegMediaMetadataRetriever

0

I have been trying to extract a frame from a youtube video using FFmpegMediaMetadataRetriever in my android studio project. whenever I use the youtube url inside setDataSource, the app crashes. I am totally new in android studio and haven't worked with FFmpeg before. I would appreciate if anyone can help me out. Also, I am sorry if I have asked a really silly/easy question.

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();
}

in the build.gradle, I have added the following dependencies

dependencies {

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

       implementation project(path: ':openCVLibrary340dev')
}

error that I get is:

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.jeverfun, PID: 8877 java.lang.RuntimeException: Unable to resume activity {com.example.jeverfun/com.example.jeverfun.jevercamera}: java.lang.IllegalArgumentException: setDataSource failed: status = 0xFFFFFFFF at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3581) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3621) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2862) at android.app.ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6494) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) Caused by: java.lang.IllegalArgumentException: setDataSource failed: status = 0xFFFFFFFF at wseemann.media.FFmpegMediaMetadataRetriever.setDataSource(Native Method) at com.example.jeverfun.jevercamera.initializeOpenCVDependencies(jevercamera.java:373) at com.example.jeverfun.jevercamera.access$100(jevercamera.java:59) at com.example.jeverfun.jevercamera$1.onManagerConnected(jevercamera.java:347) at com.example.jeverfun.jevercamera.onResume(jevercamera.java:469) at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1355) at android.app.Activity.performResume(Activity.java:7117) at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3556) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3621)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2862)  at android.app.ActivityThread.-wrap11(Unknown Source:0)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)  at android.os.Handler.dispatchMessage(Handler.java:106)  at android.os.Looper.loop(Looper.java:164)  at android.app.ActivityThread.main(ActivityThread.java:6494)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)  I/MediaMetadataRetrieverJNI: release Application terminated.

android
ffmpeg
asked on Stack Overflow Jun 27, 2019 by Ahasan Ratul • edited Jun 27, 2019 by Ahasan Ratul

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0