Como adicionar um logotipo png ao vídeo mp4 com ffmpeg, que pode ser redimensionado dinamicamente e cobrir todo o vídeo

0

Eu quero mostrar um logotipo para quando o vídeo começar (para fazer uma introdução de alguma forma). Eu já financiei este comando:

ffmpeg -i input.mp4 -framerate 30000/1001 \
-loop 1 -i test.png -filter_complex "[1:v] fade=out:st=30:d=1:alpha=1 [ov];\
 [0:v][ov] overlay=10:10 [v]" -map "[v]" -map 0:a -c:v libx264 \
-c:a copy -shortest Bigout.mp4

de Como adicionar meu logotipo nos primeiros 30 segundos em um vídeo com ffmpeg?

Mas o problema é que meus vídeos widths / heights são diferentes e cada vez que eu adiciono um logotipo, ele não cobre todo o vídeo. O que devo fazer se eu quiser definir a largura / altura do logotipo para a largura / altura do vídeo?

UPDATE Depois do @Behroozfar Answer, tentei usar o scale2ref, com o comando abaixo:

ffmpeg -i input.mp4 -framerate 30000/1001 -loop 1 -i biglogo.png -filter_complex "[1: v] [0: v] scale2ref = iw / 1: -1 [ovrl] [0 v]; [0v] [ovrl] overlay = 0: 0 [v] "-map" [v]; [1: v] fade = out: st = 2: d = 1: alfa = 1 [ov] "-map 0: a -c: v libx264 -c: uma cópia do Bigout mais curto.mp4

mas a questão é: não posso mostrar o logotipo por apenas um segundo. Existe durante todo o jogo de vídeo.

    
por MHPalang 12.10.2016 / 14:51

2 respostas

2

Use scale2ref filter

ffmpeg -i input.mp4 -framerate 30000/1001 \ -loop 1 -i test.png -filter_complex "[1:v]fade=out:st=30:d=1:alpha=1[ov]; \ [ov][0:v]scale2ref[logo][video]; \ [video][logo]overlay=10:10[v]" -map "[v]" -map 0:a -c:v libx264 \ -c:a copy -shortest Bigout.mp4

    
por 12.10.2016 / 15:32
0

Para exibir o logotipo completo por um segundo e depois um logotipo pequeno, use

ffmpeg -i input.mp4 -framerate 30000/1001 -loop 1 -i test.png
       -filter_complex
         "[1]fade=out:st=1:d=0.9:alpha=1,trim=0:2[f]; \
          [1]fade=st=2:d=0.5:alpha=1,trim=0:3[s]; \
          [f][0]scale2ref[fs][video];[s][fs]scale2ref=iw/8:-1[ss][fo];
          [video][fo]overlay=eof_action=pass[v0]; \
          [v0][ss]overlay=W-w-5:H-h-5[v]" \
       -map "[v]" -map 0:a -c:v libx264 -c:a copy Bigout.mp4
    
por 12.10.2016 / 17:12