Как подключить комплекс фильтров в ffmpeg?


1

Я запускаю следующую команду с ошибкой (также ниже):

ffmpeg -i input.mp4 -i %04d.png -i another_input.png -filter_complex "\
  drawtext=text='Text to write':fontsize=180:fontcolor=white:x=500:y=800:enable='eq(n\,25)'[tmp];\
  [2:v]scale=20:20[ovrl];\
  [0:v][ovrl]overlay=860:500:enable='eq(n\,0)'[tmp];\
  [tmp][1:v]overlay=0:0" output.mp4

Я получаю ошибку Filter drawtext has a unconnected output

Я предполагаю, что это то, где мы переходим от drawtext фильтр к scale фильтр, но я не уверен, как «подключить» [tmp] к scale фильтр сохраняя сначала drawtext , Любая помощь?


На что вы хотите нарисовать текст? Конечный композит?
Gyan

Я хотел бы нарисовать текст в [0: v], вывести его в [tmp], затем масштабировать / наложить [2: v] на [tmp]
user1661677

Ответы:


1

использование

ffmpeg -i input.mp4 -i %04d.png -i another_input.png -filter_complex "\
  [0]drawtext=text='Text to write':fontsize=180:fontcolor=white:x=500:y=800:enable='eq(n\,25)'[tmp];\
  [2:v]scale=20:20[ovrl];\
  [tmp][ovrl]overlay=860:500:enable='eq(n\,0)'[tmp1];\
  [tmp1][1:v]overlay=0:0" output.mp4

Спасибо. По какой причине я не могу использовать [tmp] везде?
user1661677

Вы могли бы, но не рекомендуется назначать одну и ту же метку разным выходам цепочки фильтров. В любом случае, это не ошибка в вашей команде, а то, что вы назначили tmp как выход двух разных цепочек фильтров, но не передали первую в другую цепочку фильтров перед созданием второй. Так стало двусмысленно.
Gyan
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.