Я долгое время использовал скрипт, который выполняет конкатенацию для разных кодеков, используя сложные фильтры, как описано здесь.
Эта вики дает следующую примерную команду:
ffmpeg -i input1.mp4 -i input2.webm -i input3.mov \
-filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0][2:v:0][2:a:0]concat=n=3:v=1:a=1[outv][outa]" \
-map "[outv]" -map "[outa]" output.mkv
Моя проблема в том, что если у вас есть много небольших клипов, которые нужно комбинировать таким образом, это масштабируется катастрофически.
В то время как для этого примера кажется, что сложный фильтр является источником проблем, давление для этого может быть фактически уменьшено до постоянной нагрузки с помощью -filter_complex_script
который помещает всю строку фильтра во внешний файл, который отлично масштабируется.
Таким образом, единственной проблемой, которая остается, являются входные файлы. Я не достиг бы этого предела почти так же легко, если бы меня не ограничивали разные пути и длинные автоматически сгенерированные имена файлов, но они не могут меня изменить. К сожалению, моя ситуация выросла до того, что 8000 нечетных символов, которые предлагает мне Windows, недостаточно.
Так что я ищу (примерно) что-то вроде скрипта входного файла. Я видел упоминания о демультиплексоре concat, который имеет нечто подобное, но я не могу понять, как это будет работать. Насколько я могу судить, это все бросит в один файл и сделает невозможным выполнение сложной комбинации сценариев фильтра. Не упоминать: ссылка на вики выше упоминает, что для всех файлов должен быть одинаковый кодек, временная база и т.д., Что не относится к моей ситуации.
Как мне избавиться от моих забот о длине командной строки и навсегда забыть о вещи, известной как ограничения символов командной строки?