Вопрос или проблема
Я пытаюсь наложить видео с веб-камеры поверх основного видео, сделать углы веб-камеры закругленными и разместить его в левом нижнем углу основного видео. Я также хочу, чтобы видео с веб-камеры уменьшилось до размеров 400×225. Я новичок в ffmpeg, кто-нибудь может помочь.
ИНФО
main.mp4
:- 1920×1080, 60fps, есть звук
webcam.mp4
:- 1280×1920, 60fps, есть звук
Код, который я пробовал:
ffmpeg -i main_video.mp4 -i webcam_video.mp4 -filter_complex "[1:v]scale=400:225[scaled];[0:v][scaled]overlay=10:845" -c:a copy output_video.mp4
Вышеуказанный код работает, однако он показывает только прямоугольное видео с веб-камеры, но я хочу, чтобы оно имело радиус границы 20 уголков веб-камеры.
Ответ или решение
Чтобы наложить видеопоток с веб-камеры на основное видео с закругленными углами, вы можете использовать ffmpeg. Давайте рассмотрим, как это можно сделать, шаг за шагом.
Шаг 1: Установка ffmpeg
Если вы ещё не установили ffmpeg, вам необходимо это сделать. Вы можете загрузить его с официального сайта ffmpeg и следовать инструкциям по установке для вашей операционной системы.
Шаг 2: Команда ffmpeg
Ваша начальная команда имеет правильный подход, но для добавления закругленных углов вам нужно использовать фильтр drawbox
для создания маски с округлыми углами. Давайте модифицируем вашу команду.
Вот пример команды, который выполняет вашу задачу:
ffmpeg -i main.mp4 -i webcam.mp4 -filter_complex "
[1:v]scale=400:225[scaled];
[scaled]format=rgba,colorchannelmixer=.5:.5:.5:0:0:0:0:0:0[scaledWithAlpha];
[scaledWithAlpha]drawbox=x=0:y=0:w=400:h=225:color=black@0.0:t=fill, \
format=rgba,geq='if(gte(X\,20),if(gte(Y\,20),if(lte(X\,w-20),if(lte(Y\,h-20),255\,0)\,0)\,0)\,0)\,0)':0:rgb \
[borderedWebcam];
[0:v][borderedWebcam]overlay=10:885
" -c:a copy output_video.mp4
Разбор команды
-i main.mp4
и-i webcam.mp4
: определяет входные файлы.[1:v]scale=400:225[scaled]
: изменяет размер видео с веб-камеры до 400×225 пикселей.[scaled]format=rgba
: преобразует видео в формат RGBA для правильной обработки альфа-канала.colorchannelmixer=.5:.5:.5:0:0:0:0:0:0[scaledWithAlpha]
: смешивает цвета, как необходимо для создаваемой маски.drawbox
: создает черный прямоугольник (или массив) для наложения.geq
: здесь мы применяем фильтр для создания маски с закругленными углами. Он проверяет соответствующие координаты и подает 255 (белый или непрозрачный) или 0 (черный или прозрачный) в зависимости от положения пикселя.[0:v][borderedWebcam]overlay=10:885
: накладывает видео с веб-камеры на основное видео, указывая позицию в пикселях.
Шаг 3: Запуск команды
Теперь вы готовы запустить эту команду в вашей командной строке. Убедитесь, что пути к вашим видеофайлам правильные и что у вас есть разрешение для выполнения этой команды.
Заключение
Следуя данным шагам и используя предложенную команду, вы сможете успешно наложить видео с веб-камеры на основной видеотрек с закругленными углами. Этот подход позволяет вам настроить внешний вид видео и достичь желаемого результата, даже если вы только начинаете работать с ffmpeg.
Если у вас возникнут дополнительные вопросы или дополнительные настройки, не стесняйтесь обращаться за помощью!