Estou tentando adicionar meu logotipo pelos primeiros 30 segundos em um vídeo com ffmpeg. Eu tenho um vídeo chamado d1.mp4
e um logotipo chamado logo.png
.
Quando o vídeo inicia, a marca d'água deve estar no canto superior esquerdo ou no canto superior direito do vídeo e desaparecer após 30 segundos.
Você pode me mostrar como adicioná-lo?
ffmpeg -i d1.mp4 -i logo.png
mostra? Por favor, basta digitar esse comando e nos mostrar qual é a saída. Ao fazer perguntasffmpeg
, sempre inclua o máximo de detalhes possível sobre o material de vídeo / áudio que você possui, o que já tentou e a saída completa da linha de comando de tudo o que tentou.Respostas:
Isso pressupõe que o logotipo seja uma única imagem estática com um canal alfa e você deseja sobrepor-se a um vídeo com uma taxa de quadros de 30000/1001 (taxa NTSC). Altere
-framerate
para corresponder à sua entrada de vídeo, 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 antesfade
.Isso exibirá o logotipo na posição x, y 10,10 por 30 segundos, seguido de um segundo desbotamento.
fonte
framerate
eloop
é necessário nesse caso e não para uma sobreposição simples sem filtro de desbotamento?-framerate
e-loop
para uma imagem estática é para que o desbotamento funcione. Se houver apenas um quadro, ele não poderá desaparecer em um intervalo de 1 segundo. Idealmente, deve ter a mesma taxa de quadros que o vídeo, para que o desbotamento seja o mais suave possível.Usando o
overlay
filtro de vídeo para adicionar um logotipo a um vídeo:Para entender esse comando, você precisa saber o que é um especificador de fluxo e ler a Introdução à filtragem FFmpeg ajudará.
[0:v]
refere-se ao (s) fluxo (s) de vídeo da primeira entrada (video.mp4
) e[1:v]
ao fluxo de vídeo da segunda entrada (logo.mp4
). É assim que você pode dizeroverlay
quais entradas usar. Você pode omitir[0:v][1:v]
eoverlay
ainda funcionará, mas recomenda-se que seja explícito e não confie em padrões possivelmente desconhecidos.Por padrão, o logotipo será colocado no canto superior esquerdo.
Usando
-codec:a copy
vai transmitir copiar o áudio. Isso simplesmente retira o som do á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:
Este exemplo moverá o logotipo 10 pixels do lado direito e 10 pixels para baixo:
main_w
refere-se à largura da entrada "principal" (plano de fundo ou[0:v]
) eoverlay_w
refere-se à largura da entrada "sobreposição" (o logotipo ou[1:v]
). Portanto, no exemplo, isso pode ser traduzido paraoverlay=320-90-10:10
ouoverlay=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 para
ffmpeg -filters
ver quais filtros suportam a edição da linha do tempo.Este exemplo mostrará o logotipo até 30 segundos:
Se você deseja desbotar o logotipo, consulte a resposta da mark4o .
fonte
enable=not(between'(t,30,50)')
. Isso mostrará a sobreposição o tempo todo, mas não a duração de 30 a 60 segundos.overlay
tudo por si só, usei , porque a posição padrão da parte superior esquerda era o que eu queria. (Então, no final, minhas bandeiras eram simplesmentefilter_complex overlay
.) #