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

8

Estou tentando adicionar meu logotipo nos primeiros 30 segundos em um vídeo com o ffmpeg. Eu tenho um vídeo chamado d1.mp4 e um logotipo chamado logo.png .

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

Você pode por favor me mostrar como adicioná-lo?

    
por iwocan 03.12.2013 / 23:25

2 respostas

12
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 seja uma única imagem estática com um canal alfa e você queira sobrepor um vídeo com uma taxa de quadros de 30000/1001 (taxa NTSC). Altere o -framerate para 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 segundo de 1 segundo.

    
por 04.12.2013 / 03:21
18

Usando o overlay filtro de vídeo para adicionar um logotipo a um vídeo:

ffmpeg-ivideo.mp4-ilogo.png-filter_complex"[0:v][1:v]overlay" \
-codec:a copy out.mp4

Para entender esse comando, você precisa saber o que é um especificador de fluxo e ler o Introdução à Filtragem FFmpeg 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 informar overlay de quais entradas usar. Você pode omitir [0:v][1:v] e overlay ainda funcionará, mas é recomendado que seja explícito e não confie em padrões possivelmente desconhecidos.

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

Usar -codec:a copy transmitir a cópia do áudio. Isso simplesmente redireciona o áudio em vez de recodificá-lo. Pense nisso como um "copiar e colar" do áudio.

Mover o logotipo

Este exemplo moverá o logotipo 10 pixels para a direita e 10 pixels para baixo:

ffmpeg-ivideo.mp4-ilogo.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 abaixo:

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

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

Cronometrando a sobreposição

Alguns filtros podem lidar com a edição da linha do tempo , que permite usar expressões aritméticas para determinar quando um filtro deve ser aplicado. Consulte ffmpeg -filters para ver quais filtros suportam a edição da linha do tempo.

Este exemplo mostrará o logotipo 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 quiser desvanecer o logotipo, consulte a resposta do mark4o .

    
por 05.12.2013 / 00:20

Tags