You need to get an image from the video stream. I try to do it this way.

public static Bitmap getVideoFrame(Context context, Uri uri) { MediaMetadataRetriever retriever = new MediaMetadataRetriever(); try { retriever.setDataSource(uri.toString(),new HashMap<String, String>()); return retriever.getFrameAtTime(); } catch (IllegalArgumentException ex) { ex.printStackTrace(); } catch (RuntimeException ex) { ex.printStackTrace(); } finally { try { retriever.release(); } catch (RuntimeException ex) { } } return null; } 

But this method does not work for streams. To display the video using the library LibVLC

    1 answer 1

    This problem is solved using the library FFmpegMediaDataRetriever

     FFmpegMediaMetadataRetriever mmr = new FFmpegMediaMetadataRetriever(); mmr.setDataSource(mUri); mmr.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_ALBUM); mmr.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_ARTIST); Bitmap b = mmr.getFrameAtTime(2000000, FFmpegMediaMetadataRetriever.OPTION_CLOSEST); // frame at 2 seconds byte [] artwork = mmr.getEmbeddedPicture(); mmr.release();