Размер GIF-файла слишком большой?

Размер GIF-файла слишком большой?

Я пытаюсь извлечь 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.5MB (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

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

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

Скриншот GIMP

Связанный контент