ffmpeg
Теперь можно выводить более качественный GIF. Если вы используете более старую сборку, подумайте о загрузке последней статической сборки или компиляцииffmpeg
.
ffmpeg
пример
203K
Этот пример пропустит первые 30 секунд ввода и создаст 3 секунды вывода. Он масштабирует вывод до 320 пикселей в ширину и автоматически определяет высоту, сохраняя соотношение сторон. В palettegen
и paletteuse
фильтры будут генерировать и использовать пользовательскую палитру генерируемый из источника.
Создайте палитру:
ffmpeg -y -ss 30 -t 3 -i input.flv \ -vf fps=10,scale=320:-1:flags=lanczos,palettegen palette.png
Выведите GIF, используя палитру:
ffmpeg -ss 30 -t 3 -i input.flv -i palette.png -filter_complex \ "fps=10,scale=320:-1:flags=lanczos[x];[x][1:v]paletteuse" output.gif
Посмотрите Высокое качество GIF с FFmpeg для многих других примеров и опций.
convert
пример
Другой метод командной строки - экспортировать фильм в кадры, используя, а ffmpeg
затем создать GIF с помощью convert
ImageMagick (или GraphicsMagick).
246k
Экспорт кадров:
mkdir frames ffmpeg -i input -vf scale=320:-1:flags=lanczos,fps=10 frames/ffout%03d.png
Затем используйте
convert
(или,gm convert
если вы предпочитаете GraphicsMagick), чтобы сделать анимированный GIF:convert -loop 0 frames/ffout*.png output.gif
С помощью convert
вы можете контролировать задержку между кадрами -delay
при желании.