Assumindo um ambiente linux (ou cygwin no windows), a única maneira que encontrei é executar 2 comandos.
Primeiro, para obter o tamanho do vídeo principal e fazer a matemática neles (nota: x/20 == x*0.05
:
val='ffmpeg.exe -i 1.mp4 2>&1 | grep Video: | sed 's_.*, \([0-9]*x[0-9]*\) .*__' | awk 'BEGIN {FS="x"} {print int($1/20)"x"int($2/20)}''
Segundo para dimensionar e sobrepor o vídeo
ffmpeg -i 1.mp4 -i logo.png -filter_complex "[1:v] scale=$val [logo1]; [0:v][logo1] overlay=0:0" -y -b 1600k -c:v libx264 -profile high -level 4.1 -c:a libfaac -q:a 128k 2.mp4
Além disso, você poderia simplesmente substituir $val
na segunda linha pela primeira expressão (incluindo as backquotes) e obter o mesmo resultado, mas acho mais fácil ler o comando de divisão em dois.