O FFmpeg pode concat e drawtext ao mesmo tempo?

0

Eu posso usar com sucesso o filtro de concat do FFmpeg e o filtro drawtext em comandos separados.

Mas isso requer duas execuções de codificação.

É possível obter esses dois filtros para funcionar em uma cadeia, de modo que apenas uma codificação ocorra? Como?

Eu tenho três videoclipes que estou tentando concatenar e quero que um texto comum apareça sobre o vídeo resultante.

    
por fionasdad 22.10.2013 / 03:37

1 resposta

3

Tente isto:

ffmpeg -i inputfile1 -i inputfile2 -y \
-filter_complex '[0:0] [0:1] [1:0] [1:1] concat=n=2:v=1:a=1 [v] [a];\
[v]drawtext=fontsize=72:fontcolor=White:fontfile=/usr/share/fonts/truetype/DejaVuSans.ttf:text=Text Line To Render:x=(w)/2:y=(h)/2[o]'\
-map '[o]' -map '[a]' ...other encoding parameters... outputfile

Note que [v] e [a] são apenas rótulos - você poderia muito bem usar [p] e [q] , e isso também seria ótimo. Apenas o fluxo 0 vai para o primeiro marcador e passa o rótulo de 1 para o segundo. Então, suponho que o fluxo 0 seja vídeo.

Você precisa garantir que os fluxos em inputfile1 e inputfile2 tenham o mesmo pedido. Em seguida, passamos a saída do fluxo de vídeo como entrada para o filtro de texto de desenho, dizendo [v]drawtext=....

A saída disso agora é rotulada como [o] no final dos parâmetros drawtext . Ao dizer -map [o] , usamos a saída de drawtext para passar adiante para seus outros parâmetros de codificação.

O caminho da fonte que estou usando é do OpenSUSE. O seu pode ser diferente.

    
por 23.10.2013 / 17:57

Tags