Я накладываю с помощью следующей команды:
ffmpeg -i video.mp4 -i logo.png -filter_complex "[1]geq=r='r(X,Y)':a=0.1[a];[0][a] overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0" out.mp4
Я попытался настроить непрозрачность, используя
fmpeg -i video.mp4 -i logo.png -filter_complex "[1]format=rgba,geq=r='r(X,Y)':a='1*alpha(X,Y)'[a];[0][a] overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0" out.mp4
но он все еще прозрачен в части белого цвета.
Кажется, что часть белого цвета имеет прозрачность 0, из-за чего вторая команда не работает.
Есть ли причина, по которой это происходит? Логотип, который я пробовал,
Как сохранить белый цвет?
Белого цвета нет. Это цвет фона просвечивающей страницы. Ваш входной PNG представляет собой 8-битное изображение с палитрой, где черный цвет указывает на прозрачность.
Примените следующий фильтр к изображению, чтобы преобразовать черные пиксели в белые и установить равномерную прозрачность.
geq=r='if(p(X,Y),p(X,Y),255)':g='if(p(X,Y),p(X,Y),255)':b='if(p(X,Y),p(X,Y),255)':a=0.1
пользователь10024395
Гьян