Как извлечь из видео 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 часто возвращает один и тот же кадр с разным заданным временем. Пожалуйста, помогите мне!

0 ответов

Другие вопросы по тегам