1

I want to create a GIF from mp4 video. So I need to extract the frames from video first. Here is the code I use to extract frames:

MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(mFilePath);
Bitmap bitmap = retriever.getFrameAtTime(i,
                    MediaMetadataRetriever.OPTION_CLOSEST);

Note that variable i is time in microseconds. Since I want to get 24 frames/second, I call retriever.getFrameAtTime() with i = 42000, 84000, .... (microseconds).

The problem is: when I collect extracted frames to a video, I see only 4-5 different frames. In other words, I didn't get a smooth video. It seems that MediaMetadataRetriever often returns the same frame with different given time. Please help me!

TOP
  • 2,574
  • 5
  • 35
  • 60

0 Answers0