Наложение циркулярного фильма в FFmpeg

Я пытаюсь создать круговой оверлей фильма, используя ffmpeg. До сих пор мне удавалось создать квадратный круговой оверлей фильма с помощью следующей команды:

ffmpeg -i bg.mp4 -vf "movie=smaller.mp4[inner];[in][inner] overlay=92:460 [out]" final.mp4

Я хочу создать что-то вроде этого:

Кто-нибудь может мне помочь?

Большое спасибо!

1 ответ

Неопределенный пример адаптирован из Как установить маску круга с помощью фильтра geq:

Имгур должен быть вниз

ffmpeg -i input.mp4 -filter_complex \
"trim=end_frame=1,geq='st(3,pow(X-(W/2),2)+pow(Y-(H/2),2));if(lte(ld(3),80*80),255,0)':128:128,loop=-1:1,setpts=N/FRAME_RATE/TB[alf]; \
[0:v][alf]alphamerge,scale=iw/2:-1[fg]; \
[0:v][fg]overlay=(W-w)/2:H-(h/2)-20-40:shortest=1" \
output.mp4

Вы не предоставили никаких подробностей или информации о файле, поэтому я сделал несколько предположений:

  • редактировать 80*80 увеличить радиус круга.
  • Круг источника находится по центру посередине.
  • Наложение будет горизонтально отцентрировано. По вертикали будет установлено 20 пикселей снизу bg.mp4,
  • Аудио не упоминалось, поэтому я ничего не добавил для этого.
  • Нет белой границы вокруг круга.
  • "Не определено", потому что у меня не хватило времени, чтобы закончить, но это, вероятно, должно работать как есть. Я смогу вернуться к нему позже.
Другие вопросы по тегам