ffmpeg - накладывать видео со скругленными углами - PullRequest
0 голосов
/ 01 ноября 2019

Я успешно использую наложение масштабированного (меньшего) видео поверх большего, но с трудом понимаю, как можно придать маленькому видео маску с закругленными углами.

Редактировать

благодаря комментарию @loogan мне удалось получить рабочую команду, которая создала применяет круговую маску:

ffmpeg 
    -i main.mp4 
    -i vignette.mp4 
    -filter_complex 
      [1:v]scale=300:-1[scaled];
      [scaled]split [scaled0][scaled11]; 
      [scaled0]trim=end_frame=1,geq='st(3,pow(X-(W/2),2)+pow(Y-(H/2),2));if(lte(ld(3),780*780),255,0)':3:3,loop=-1:1,setpts=N/FRAME_RATE/TB[mask];
    [scaled1][mask]alphamerge[cutout];
    [0][cutout]overlay=x=W-w:y=0[v];
    -map [v] 
    -map [a]  
    output.mp4

, но как добраться от круга до скругленного прямоугольника все еще ускользает от меня,Я не могу понять, какие параметры ожидает geq и математика для их генерации.

Если предположить, что видео, требующее маскирования, равно 200 * 300, а углы должны иметь радиус 5px, есть команда geq, которая можетсоздать эту маску? может быть, по эллипсу?

или, может быть, лучше использовать готовый png в качестве маски?

любые идеи приветствуются

1 Ответ

0 голосов
/ 04 ноября 2019

Ленивый метод заключается в использовании фильтра виньетка :

vignette mask
Пример маски виньетки

ffmpeg -i main.mp4 -i vignette.mp4 -filter_complex "color=c=white,vignette=angle=PI/2:aspect=4/3[mask];[1][mask]alphamerge[fg];[2][fg]overlay[v]" -map "[v]" -map 0:a -c:a copy output.mp4

Настройка angle и aspect.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...