我想从mp4 视频创建一个 GIF。所以我需要先从视频中提取帧。这是我用来提取帧的代码:
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(mFilePath);
Bitmap bitmap = retriever.getFrameAtTime(i,
MediaMetadataRetriever.OPTION_CLOSEST);
请注意,变量i
的时间为微秒。由于我希望获得24帧/秒,因此我使用retriever.getFrameAtTime()
= 42000,84000,......(微秒)调用i
。
问题是:当我将提取的帧收集到视频时,我只看到4-5个不同的帧。换句话说,我没有得到流畅的视频。似乎MediaMetadataRetriever
经常以不同的给定时间返回相同的帧。请帮帮我!