Размер 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,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 ответ
Из-за того, как работают GIF-файлы, чем сложнее палитра, результирующий GIF-файл довольно быстро увеличивается.
Я бы использовал GIMP для оптимизации получившегося GIF из #2 - не уверен на 100%, как он работает, но думаю, что он в основном удаляет дублирующую информацию из одного кадра в другой.