Как создавать GIF-файлы разумного размера в Linux?

#imagemagick-convert

#imagemagick-конвертировать

Вопрос:

У меня есть куча снимков с веб-камеры Raspberry Pi, которые я хочу объединить в gif. Это jpg-файлы размером 640×480 пикселей, примерно по 200 Кб каждый. У меня есть 200 из них, которые я хотел бы объединить.

Прямо сейчас, если я это сделаю convert -loop 0 *.jpg out.gif , в итоге получится около 45 МБ, что безумно.

Я могу выполнить несколько трюков, например, добавить опции: -layers optimizeframe , -colors 40 , -dither None и -fuzz 20% , что сокращает размер до 13 МБ, что все равно довольно ужасно.

Я знаю, что могу использовать -resize опцию; выполнение resize 50% сокращает его до ~ 5 МБ, но это все еще довольно большой размер, и теперь это изображение размером 320×240 довольно низкого качества (из-за аргументов fuzz / colors).

Я почти уверен, что раньше видел GIF-файлы в Интернете, которые не были такого огромного размера, но были большими изображениями и довольно хорошего качества. Есть ли что-то еще, что можно попробовать? действительно ли они получают намного большее сжатие от использования .gifv или что-то в этом роде? Или обычно это не 200 кадров? (Мне кажется, я видел достаточно длинные GIF-файлы с достаточно высокой частотой кадров, чем они и были.)

Честно говоря, мне не обязательно, чтобы они были GIF-файлами, но я хочу что-то, что просто автоматически воспроизводится в браузере, без каких-либо специальных плагинов. Другое дело, я хочу, чтобы это воспроизводилось автоматически и зацикливалось как gif. Я рассматриваю возможность простого создания mp4 с помощью ffmpeg, но я не вижу, как заставить его обрабатываться как gif-файл или что-то еще и автоматически воспроизводиться / зацикливаться.

Комментарии:

1. У меня нет ответа на вашу проблему, однако да, gif-файлы, которые вы обычно видите, обычно не имеют 200 кадров, если они небольшого веса

2. Чтобы еще больше уменьшить размер ваших GIF-файлов, нужно сделать две другие вещи. 1) Используйте один из инструментов для создания GIF-файлов, отличных от imagemagick, чтобы оптимизировать их лучше. смотрите imagemagick.org/Usage/formats/#gif_non-im . 2) Используйте одну общую цветовую карту для всех кадров с помощью -remap с помощью одного цветового изображения. Вы можете выбрать несколько кадров из полной длины последовательности, добавить их, затем уменьшить количество цветов до 256, получить уникальные цвета и преобразовать их в цветовую карту. Смотрите imagemagick.org/Usage/quantize/#extract . Смотрите imagemagick.org/Usage/quantize/#remap , но использовать -dither none.

3. ПРОДОЛЖЕНИЕ: Смотрите imagemagick.org/Usage/video для примера можно использовать обычную цветовую карту, но в этом случае они начинают с видео и конвертируют в анимированный gif.

Ответ №1:

Чтобы создавать GIF-файлы в Linux, вам необходимо установить ImageMagick. Если вы используете любой дистрибутив на базе Debian, такой как Linux Mint, Ubuntu или elementary OS, выполните эту команду:

 sudo apt-get install imagemagick
  

Если вы используете любой другой дистрибутив, найдите это приложение в вашем диспетчере пакетов. После этого поместите все изображения, из которых вы хотите создать GIF, в одну папку. Я поместил эти изображения в папку gif-icons.

Комментарии:

1. вы вообще читали мой пост? Я уже использую convert который является частью imagemagick, и мой вопрос был о том, как использовать его определенным образом.