FFmpeg — это фреймворк который позволяет делать разные крутые штуки с видео, аудио и картинками. Его можно использовать как самостоятельное консольное приложение или встраивать его в свои продукты (FFmpeg выпускается под лицензией LGPL).
Одно из очень полезных его применений — создание роликов из статичного контента, картинок и текста. Например для описаний товаров. Об этом его применении и пойдет речь в запланированной серии роликов на канале Azzrael.
Задача
Есть масса лотов товаров представленных в виде нескольких картинок, текстовых заголовков, текстового описания товара и комментариев. Нужно сделать из этих данных видео, где картинки будут демонстрироваться с некоторыми эффектами (прокрутка, плавное появление, зум, паннинг и т.п.), заголовки и описания озвучиваться, комменты скриниться и зачитываться, все это под легкую музыку. Также необходимо чтобы в каждом ролике была картинка превью с Заголовком товара и ссылкой на магазин и финальная картинка с мотивашкой на подписку и лайки.
В принципе задача может быть реализована разными способами. Однако когда товаров много, скажем речь идет о тысячах лотов а сроки сжаты, то нужна автоматизация и здесь FFmpeg просто незаменим.
В результате мы планируем разработать некоторый программный комплекс, который мог бы делать такие пакеты видеоконтента на потоке по заранее заданному сценарию.
Разработка идет под Windows 10 x64, но в целом все в ролик не сложно портировать на *nix.
Сегодня начало, поэтому просто скачаем ffmpeg и напишем простой консольный скрипт (bat), который из картинки делает видео с прокручиваемой картинкой.
Установка FFmpeg под Windows 10 x64
Нам для работы нужен обычный бинарник (готовый к запуску файл, программа) ffmpeg.exe. Качаем нужную версию с официального сайта.
- В архиве несколько файлов, нам нужен только ffmpeg.exe.
- Создаем папку проекта, разархивируем туда ffmpeg.exe.
- В эту же папку проекта кладем картинку из которой будем делать видео.
- Создаем в этой папке файл run.bat — это обычный текстовый файл, в котором мы будем писать скрипт. Bat файл это исполняемый скрипт windows. Для его запуска просто кликните по нему дважды.
Пишем скрипт для создания видео с прокруткой
В файл run.bat пишем следующий код
1 2 3 |
echo "** Hey, Azzrael Youtube viewers!!!" ffmpeg.exe -f lavfi -i color=c=#DD0000:s=1920x1080 -loop 1 -i 1.png -s "1920x1080" -t 5 -filter_complex "[1:v]scale=1920:-2[fg], [0:v][fg]overlay=y=-'t*((h-1080)/5)':eof_action=endall" -y out.mp4 pause |
Сохраняем. Запускаем. Если все прошло хорошо, то в папке должен появиться файл out.mp4. Это результат работы нашего скрипта.
Как работает скрипт ffmpeg создания видео из картинки с прокруткой
Сначала мы создаем два потока (параметры -i) первый поток — это фон с заливкой цветом. Второй поток — это наша картинка. -s задает размер видео, -t его продолжительность.
-filter_complex делает всю магию. Здесь мы берем поток картинки и растягиваем его по ширине видео = 1920. Затем мы его накладываем на фон с заливкой и каждый кадр смещаем картинку вверх, таким образом создаем эффект скроллинга. Скорость скроллинга, его направление, мы можем регулировать в фильтре overlay.
Ссылки
lavfi , filter_complex , scale , overlay