Imagemagick: Как уменьшить размер анимированного GIF с большими статическими областями? - PullRequest
0 голосов
/ 28 февраля 2019

Я создал анимированный output.gif из снимка экрана, который в итоге оказался несжатым на 89 МБ.Половина GIF статична, но лучше хранить ее вместе, а не изображение + GIF, содержащий движущуюся часть.

Используя Imagemagick и следующую команду, мне удается уменьшить его размер до 18,1 МБ:

convert output.gif -coalesce -fuzz 3% +dither -layers Optimize compressed.gif

Увеличение процента приводит к получению гораздо меньших результатов, но качество ухудшается.

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

ОБНОВЛЕНИЕ Я используюUbuntu для этого и вот мой полный рабочий процесс:

  1. Используйте Kazam для захвата экрана именно то, что мне нужно, поэтому нет необходимости для редактирования любого вида.
  2. Использованиекоманда ffmpeg -i input.avi output.mp4 для преобразования в mp4.
  3. Создание каталога для кадров mkdir frames.
  4. Создание промежуточных изображений ffmpeg -i output.mp4 -r 25 'frames/frame-%04d.png'.
  5. Переход к кадрам cd frames.
  6. Создание GIF из изображений convert -delay 4 -loop 0 *.png output.gif.
  7. Оптимизация и сжатие GIF для уменьшения размера файла convert output.gif -coalesce -fuzz 3% +dither -layers Optimize compressed.gif

1 Ответ

0 голосов
/ 28 февраля 2019

Лучший способ уменьшить размер GIF - поместить как можно больше кадров в режим «объединения».Эти кадры содержат только то, что изменилось по сравнению с предыдущим кадром, и это может быть довольно мало, но для этого может потребоваться, чтобы все кадры были закодированы с одной и той же цветовой картой, и чтобы идентичные части были действительно идентичными (без размытости, без случайных артефактов кодирования),Gimp может сделать это, но другие утилиты, специализирующиеся на обработке GIF, также могут это сделать (возможно, Gifsicle)?

Кроме того, анимированный GIF-снимок экрана не обязательно должен быть 25fps, 10fps более чем достаточно.

...