Как извлечь из видео 24 разных кадра в секунду?
Я хочу создать GIF из видео mp4. Поэтому мне нужно сначала извлечь кадры из видео. Вот код, который я использую для извлечения кадров:
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(mFilePath);
Bitmap bitmap = retriever.getFrameAtTime(i,
MediaMetadataRetriever.OPTION_CLOSEST);
Обратите внимание, что переменная i
время в микросекундах. Поскольку я хочу получить 24 кадра / секунду, я звоню retriever.getFrameAtTime()
с i
= 42000, 84000, .... (микросекунды).
Проблема в том, что когда я собираю извлеченные кадры в видео, я вижу только 4-5 разных кадров. Другими словами, я не получил гладкое видео. Кажется, что MediaMetadataRetriever
часто возвращает один и тот же кадр с разным заданным временем. Пожалуйста, помогите мне!