Все статьи
Конвертировать видео в GIF через CLI
ffmpeg: собрать палитру и закодировать зацикленный анимированный GIF.
Открыть онлайн-конвертерКакие пакеты установить
Нужен только ffmpeg. palettegen и paletteuse сохраняют цвета ближе к исходному видео.
ffmpeg
sudo apt-get update
sudo apt-get install -y ffmpegКак вызвать команду
Обрежьте отрезок флагами -ss start и -to end перед -i. В -vf задайте fps, scale, palettegen и paletteuse. Флаг -loop 0 зацикливает GIF, -loop -1 проигрывает один раз.
ffmpeg -y -i input.mp4 -vf "fps=10,scale=480:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 output.gifПример Dockerfile
Соберите минимальный образ Ubuntu с нужными пакетами и запускайте конвертацию в контейнере.
FROM ubuntu:24.04
RUN apt-get update && \
apt-get install -y --no-install-recommends \
ffmpeg && \
rm -rf /var/lib/apt/lists/*
WORKDIR /work
docker build -t video-to-gif .
docker run --rm -v "$PWD:/work" -w /work video-to-gif \
ffmpeg -y -i input.mp4 -vf "fps=10,scale=480:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 output.gifПримеры команд
Команды ниже можно запускать локально после установки пакетов или внутри контейнера из Dockerfile.
ffmpeg -y -i input.mp4 -vf "fps=10,scale=480:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 output.gifffmpeg -y -ss 1.5 -to 4 -i input.mp4 -vf "fps=10,scale=480:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 clip.gifffmpeg -y -i input.webm -vf "fps=15,scale=480:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 output.gifffmpeg -y -i input.avi -vf "fps=10,scale=320:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop -1 output.gif