Quero sobrepor uma imagem com uma configuração de opacidade
Sei como sobrepor uma imagem em um vídeo, mas também não entendo como definir seu nível de opacidade. Posso facilmente adicionar uma marca d'água no meu vídeo, mas essa marca d'água tem 100% de opacidade:
Mas como faço para que o arquivo de imagem tenha uma opacidade de 50%?
Exemplo:
ffmpeg -i in.mp4 -i image.png -af "pan=stereo|c0<c0+c2|c1<c1+c3,aeval=val(0)|val(1),volume=1.6" -vf "opacity=0.5" out.mp4
[AVFilterGraph @ 0000000000316dc0] Filtro inexistente: 'opacidade' Erro ao abrir filtros!
Responder1
Use o comando abaixo.
ffmpeg -i in.mp4 -i image.png \
-af "pan=stereo|c0<c0+c2|c1<c1+c3,aeval=val(0)|val(1),volume=1.6" \
-filter_complex "[1]geq=r='r(X,Y)':a='0.5*alpha(X,Y)'[a];[0][a]overlay" out.mp4
O a='0.5*alpha(X,Y)'
define o alfa, ou seja, a opacidade.
O geq
filtro não detecta automaticamente se a entrada é RGB ou YUV e segue a sugestão da presença de uma expressão de um dos planos não alfa, portanto, um deles deve ser especificado. Especifiquei uma expressão para o plano R e configurei-a como identidade, para que não seja alterada.