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

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

sample_video.mp4 masked_image.png

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

Маска изображения

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

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

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

1 ответ1

1

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .