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