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.