Фильтр Alphamerge работает только на первом кадре.

Фильтр Alphamerge работает только на первом кадре.

Я пытаюсь реализовать фильтр размытия для определенного непрямоугольного объекта, у меня есть маска и образец видео, но проблема в том, что результат альфа-слияния первого кадра видео применяется ко всему видео (как будто вы наложили статическое изображение на всю длину видео). Я использовал следующую команду

ffmpeg -y -i sample_video.mp4 -i masked_image.png -filter_complex 
"[0:v][1:v]alphamerge,boxblur=16[alf];[0:v][alf]overlay[v]" -map [v] -map 0:a -c:a copy -preset ultrafast test.mp4

образец_видео.mp4 замаскированное_изображение.png

ОБНОВЛЯТЬ: Ваше решение работает достаточно хорошо, но теперь значение интенсивности размытия не влияет на интенсивность размытия.

Изображение маски

Образец изображения

Результат с boxblur=10

Результат с boxblur=30

решение1

Ваша маска представляет собой одно изображение, поэтому она не будет отслеживать объект, но я предполагаю, что проблема в том, что пиксели наложения статичны. Вам нужно будет зациклить маску, поскольку alphamerge завершается самым коротким входом, а наложение будет повторять последний кадр вторичного входа.

ffmpeg -y -i sample_video.mp4 -loop 1 -i masked_image.png ...

Связанный контент