FFMPEG: adicione uma imagem de tamanho fixo em um vídeo, independentemente da largura e altura do vídeo (resolução)
Este é o meu código que adiciona uma imagem aos vídeos, executando via PHP:
exec('ffmpeg -i input.mp4 -i logo.png -filter_complex
"[0:v][1:v] overlay=10:10" -pix_fmt yuv420p -c:a copy output.mp4');
Funciona bem, mas o problema é que a imagem é reduzida ou ampliada na resolução do vídeo. Por exemplo, nas imagens a seguir, a largura do logotipo é50px
mas a resolução dos vídeos é diferente:
e este
Como impedir que a imagem seja reduzida / ampliada?
AtualizarGraças aMulvya, ele propôs esses códigos
ffmpeg -i input.mp4 -i logo.png -filter_complex
"[1:v][0:v]scale2ref=(W/H)*ih/8:ih/8[wm][base];[base][wm]overlay=10:10"
-pix_fmt yuv420p -c:a copy output.mp4
e
ffmpeg -i input.mp4 -i logo.png -filter_complex
"[1:v][0:v]scale2ref=(W/H)*ih/8:ih/8[wm][base];[wm]setsar=1[wmsar];
[base][wmsar]overlay=10:10"
-pix_fmt yuv420p -c:a copy output.mp4
isso funciona muito bem, mas não mantém a proporção do logotipo. Eu tentei esse código em dois vídeos com resolução diferente e esse é o resultado
e este
É possível melhorar esta solução?