Попробуй это:
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
Обратите внимание, что [v] и [a] - просто метки - вы можете очень хорошо использовать [p] и [q] и это тоже подойдет. Только поток 0 идет к первой метке, а поток 1 - ко второй. Я предполагаю, что поток 0 - это видео.
Вы должны убедиться, что потоки в inputfile1 и inputfile2 имеют одинаковый порядок. Затем мы передаем вывод видеопотока в качестве входных данных фильтру drawtext, говоря [v]drawtext=....
Вывод этого теперь помечен как [o] в конце параметров drawtext . Говоря -map [o] , мы используем вывод из drawtext для передачи вперед к другим вашим параметрам кодирования.
Путь к шрифту, который я использую, взят из OpenSUSE. Ваш может быть другим.