Исходные данные: Есть много видео разного размера, есть PNG в виде телевизора Цель: Получить ролики вида исходный ролик, который показывают по телевизору. Дополнительное условие: так как видео много, то хотелось бы автоматизировать процесс, то есть идеально был бы консольный скрипт, который потом можно запихнуть в цикл
Варианты типа программ или сайта, в на котором заранее установлена PNG и подставляются разные видео не канают, нужны именно готовые видео
Я так понимаю, что как вариант можно использовать схему:
1. ресайз всех роликов под определенный размер с помощью ffmpeg
2. тот же ffmpeg можно использовать на наложения рамки в качестве ватермарка
Но вот я не понимаю как сделать 2 момента:
1. как сделать, чтобы видео после ресайза имели небольшой запас пространства с краю, чтобы рамка телевизора после наложения в виде ватермарка была не поверх видео, а вокруг него
2. экран телевизора находится не по центру PNG, а если добавлять белые рамки в картинку, чтобы выровнять экран по центру картинки, то это будет в ущерб размеру и без того уже уменьшенного видео. Так что видео нужно еще и немного сместить относительно центра картинки чуть в сторону и по высоте.
пришел к такому решению
1. фильтр pad помогает задать реальный размер видео 1454:899 (размер картинки) в который вписывается видео 1280:720 со смещением 83:79 (координаты верхней левой точки экрана на картинке телевизора), все остальное пространство заполняется black
ffmpeg -i ./input.mp4 -vcodec mpeg4 -vb 2500k -acodec copy -vf "scale=1280:720,pad=1454:899:83:79:black,unsharp" -y middle.mp4