3

Я пытаюсь извлечь GIF из видеофайла MP4.

Теперь у меня есть два способа, с помощью которых я делаю это:

1) обычный:

ffmpeg -t 7.7 -ss 00:22:53 -i video.mp4 -i palette.png -s 320x174 -filter_complex "fps=15" output.gif

который выдает файл размером 1,6 МБ.

и 2)

ffmpeg -t 7.7 -ss 00:22:53 -i video.mp4 -i palette.png -filter_complex "fps=15,scale=320:-1:flags=lanczos[x];[x][1:v]paletteuse" output.gif

который дает способ лучше выглядеть, но 4,5 МБ (увеличение на 181%) большого файла. Он использует файл палитры 16x16, который я создал с

ffmpeg -y -t 7.7 -ss 00:22:53 -i video.mp4 -vf fps=15,scale=320:-1:flags=lanczos,palettegen palette.png

Сейчас я не совсем понимаю, как 2 GIF с одинаковым fps, длительностью и разрешением могут иметь такую огромную разницу в размере. Моя интуиция была бы, они должны быть одинаковыми. Почему эта разница? И есть ли способ сократить размер 2) до размера 1) без потери качества?

Спасибо

1 ответ1

3

Из-за того, как работают GIF-файлы, чем сложнее палитра, результирующий GIF-файл довольно быстро увеличивается.

Я бы использовал GIMP для оптимизации получившегося GIF из # 2 - не уверен на 100%, как он работает, но думаю, что он в основном удаляет дублирующую информацию из одного кадра в другой.

Скриншот GIMP

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .