В какой-то момент передо мной встала задача создания небольших анимированных GIF файлов. Осмотревшись вокруг, остановил свой выбор на программе FFMPEG, все равно я активно ее использую для перекодирования видео файлов. Это консольная программа, для которой достаточно один раз составить команду с нужными параметрами. Кому-то это покажется слишком сложным, для меня же было плюсом. Новички же могут попробовать использовать для это обычный Photoshop, ведь теперь в нем можно открывать видео файлы. Еще одна программа способная помочь - Gifsicle. Её задача - оптимизация gif для уменьшения размеров файла.
Как создать GIF анимацию из видео с FFMPEG
https://www.youtube.com/watch?v=FGaA2n_Urx0
На последнем стриме меня попросили еще раз рассказать про создание гифок и я обещал выложить BAT файл, который использую последнее время. В нем вы обнаружите четыре команды, которые возможно захотите изменить:
Код: Выделить всё
SET param=fps=20,scale=480
Задает частоту кадров в готовом gif и его размер в пикселях по ширине. Высота подберется автоматически, сохраняя пропорции исходного файла. Чем больше эти параметры, тем приятнее глазу, но увеличит размер gif файла.
Код: Выделить всё
"e:\FFmpeg\bin\ffmpeg.exe" -i %1 -vf "%param%:-1:flags=lanczos, palettegen=stats_mode=diff:max_colors=64" -y "palette.png"
Создание палитры с используемыми цветами. Так как количество цветов в gif файлах ограничено 255 (+прозрачность), необходимо использовать параметр max_colors для более точно цветопередачи, но сохранения небольшого размера. Больше цветов - лучше картинка, больше размер.
Код: Выделить всё
"e:\FFmpeg\bin\ffmpeg.exe" -y -i %1 -i "palette.png" -lavfi "%param%:-1:flags=lanczos [x]; [x][1:v] paletteuse=dither=floyd_steinberg" %1.gif
Здесь задаются параметры дизеринга. Это позволяет в условиях фактически ограниченной палитры цветов сохранить их количество для восприятия человеком. Тут можно посмотреть примеры работы этих алгоритмов: http://blog.pkh.me/p/21-high-quality-gif-with-ffmpeg.html
Код: Выделить всё
"e:\gifsicle\gifsicle.exe" --careful -O3 %1.gif -o %1_cO3.gif
Финальный штрих - уменьшение размера новой гифки за счет оптимизации в программе Gifsicle. Вроде и так работает. Ничего менять не нужно. А вот и ссылка на сам готовый файл:
Конечно перед использованием надо заменить пути исполняемых файлов на свои и хоть немного понимать в работе пакетных файлов. Да-да, пора взрослеть
. .
Полезные ссылки:
- High quality GIF with FFmpeg
http://blog.pkh.me/p/21-high-quality-gi ... fmpeg.html - ffmpeg Documentation
https://ffmpeg.org/ffmpeg-all.html - Gifsicle Man Page
https://www.lcdf.org/gifsicle/man.html