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

257
Zain Ali

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

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

0

1 ответ на вопрос

1
Gyan

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

ffmpeg -y -i sample_video.mp4 -loop 1 -i masked_image.png ... 
Я наблюдал для вышеописанного случая (с использованием маскирующего изображения для применения эффекта размытия), что при увеличении значения boxblur затем уменьшается эффект размытия, как с 1-16, он продолжает увеличиваться и после этого начинает уменьшаться (независимо от того, какое высокое значение вы выберете ), есть ли у вас идея, почему это может произойти, или лучше использовать маски для размытия? Zain Ali 5 лет назад 0
Можете ли вы опубликовать пример фото? Gyan 5 лет назад 0
Я обновил свой вопрос Zain Ali 5 лет назад 0
Измените `boxblur = 16` на` boxblur = 16: ap = 0`. Мы не хотим размывать альфа-плоскость. Gyan 5 лет назад 0

Похожие вопросы