Краткий справочник по конвертации видеофайлов в качественные анимированные GIF с помощью консольных утилит.
Современный подход с FFmpeg (Рекомендуется)
Создание оптимизированных GIF с предварительной генерацией палитры в одну команду:
ffmpeg -ss 00:00:02 -to 00:00:08 -i input.mp4 \
-vf "fps=15,scale=480:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" \
-loop 0 output.gif
Классический пайплайн ImageMagick и Gifsicle
Конвертация MP4 в GIF через mplayer и gifsicle
mkdir -p gif
mplayer -ao null -vo gif89a:outdir=gif "$INPUT"
mogrify -format gif *.png
gifsicle --colors=256 --delay=4 --loopcount=0 --dither -O3 gif/*.gif > "${INPUT%.*}.gif"
rm -rf gif
Требуются mplayer, imagemagick и gifsicle. Извлекает отдельные кадры видео и объединяет их в сжатый GIF.
Обрезка по времени
Извлечение только определенного фрагмента видео по таймкодам:
mplayer -ao null -ss 0:02:06 -endpos 0:00:15 -vo gif89a:outdir=gif videofile.mp4
-ss [time]: Начальный таймкод.-endpos [duration]: Длительность обрабатываемого отрезка.
Оптимизация и сжатие в Gifsicle
Сжатие с потерями и сокращение палитры для радикального уменьшения размера файла GIF:
# Уменьшение количества цветов и оптимизация сжатия
gifsicle -O3 --colors 128 input.gif -o output.gif
# Сжатие с потерями (сильное уменьшение веса)
gifsicle -O3 --lossy=80 input.gif -o output.gif