kalugin1912
kalugin1912

Reputation: 193

Frame from Videostream

I need to get frame from this videostream: http://tcp://62.109.15.84:1300

I used this method, but it isn't suitable for videostrams.

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

Upvotes: 0

Views: 92

Answers (1)

kalugin1912
kalugin1912

Reputation: 193

This problem solved by this library FFmpegMediadataRetriever

FFmpegMediaMetadataRetriever mmr = new FFmpegMediaMetadataRetriever();
                        mmr.setDataSource("tcp://62.109.15.84:1300");
                        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();

Upvotes: 1

Related Questions