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

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

Estou tentando adicionar meu logotipo nos primeiros 30 segundos de um vídeo com ffmpeg. Tenho uma chamada de vídeo d1.mp4e um logotipo chamado logo.png.

Quando o vídeo começar, a marca d'água deverá estar no canto superior esquerdo ou direito do vídeo e desaparecer após 30 segundos.

Você pode me mostrar como adicioná-lo?

Responder1

ffmpeg -i in.mp4 -framerate 30000/1001 -loop 1 -i logo.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 out.mp4

Isso pressupõe que o logotipo é uma única imagem estática com um canal alfa e você deseja sobrepô-lo a um vídeo com uma taxa de quadros de 30.000/1.001 (taxa NTSC). Altere -frameratepara corresponder ao seu vídeo de entrada, se for diferente. Se o seu logotipo for um vídeo, omita -framerate 30000/1001 -loop 1. Se o logotipo não tiver um canal alfa, adicione um inserindo, por exemplo, format=yuva420p,imediatamente antes de fade.

Isso exibirá o logotipo na posição x,y 10,10 por 30 segundos, seguido por um fade out de 1 segundo.

Responder2

Usandooverlayfiltro de vídeopara adicionar um logotipo a um vídeo:

insira a descrição da imagem aqui

ffmpeg -i video.mp4 -i logo.png -filter_complex "[0:v][1:v]overlay" \
-codec:a copy out.mp4

Para entender este comando você precisa saber o que é umespecificador de fluxoé e lendo oIntrodução à filtragem FFmpegvai ajudar. [0:v]refere-se ao(s) fluxo(s) de vídeo da primeira entrada ( video.mp4) e [1:v]refere-se ao fluxo de vídeo da segunda entrada ( logo.mp4). É assim que você pode saber overlayquais entradas usar. Você pode omitir [0:v][1:v]e overlayainda funcionará, mas é recomendável ser explícito e não confiar em padrões possivelmente desconhecidos.

Por padrão, o logotipo será colocado no canto superior esquerdo.

Usando -codec:a copyvontadecópia do fluxoo áudio. Isso simplesmente remixa o áudio em vez de recodificá-lo. Pense nisso como um “copiar e colar” do áudio.

Movendo o logotipo

Este exemplo moverá o logotipo 10 pixels para a direita e 10 pixels para baixo: insira a descrição da imagem aqui

ffmpeg -i video.mp4 -i logo.png -filter_complex "[0:v][1:v]overlay=10:10" \
-codec:a copy out.mp4

Este exemplo moverá o logotipo 10 pixels do lado direito e 10 pixels para baixo:

insira a descrição da imagem aqui

ffmpeg -i video.mp4 -i logo.png -filter_complex \
"[0:v][1:v]overlay=main_w-overlay_w-10:10" -codec:a copy out.mp4

main_wrefere-se à largura da entrada "principal" (o plano de fundo ou [0:v]) e overlay_wrefere-se à largura da entrada "sobreposta" (o logotipo ou [1:v]). Então, no exemplo, isso pode ser traduzido para overlay=320-90-10:10ou overlay=220:10.

Cronometrando a sobreposição

Alguns filtros podem lidaredição da linha do tempoque permite que você useexpressões aritméticaspara determinar quando um filtro deve ser aplicado. Consulte ffmpeg -filterspara ver quais filtros suportam a edição da linha do tempo.

Este exemplo mostrará o logotipo por até 30 segundos:

ffmpeg -i video.mp4 -i logo.png -filter_complex \
"[0:v][1:v]overlay=10:10:enable=between(t\,0\,30)" -codec:a copy out.mp4

Se você quiser desbotar o logotipo, consulteresposta do mark4o.

informação relacionada