#file #input #filter #ffmpeg
#файл #ввод #Фильтр #ffmpeg
Вопрос:
Я пытаюсь отправить входные медиафайлы из текстового файла вместо встроенного аргумента и фильтровать комплекс также из текстового файла.
Вот что я сделал.
-
Я создал текстовый файл и поместил все входные данные в текстовый файл, например,
file 0.mp3 file 1.mp3 file 2.mp3 file 3.mp3 file 4.mp3 file 5.mp3 file 6.mp3 file 7.mp3 file 8.mp3 file 9.mp3 ...
-
Я также создал другой текстовый файл с именем
filter.txt
и ввел в него все сложные правила фильтрации.[0]adelay=0|0,volume=207[0a];[1]adelay=111400|111400,volume=206[1a];[2]adelay=116300|116300,volume=205[2a];[3]adelay=122300|122300,volume=204[3a];[4]adelay=125600|125600,volume=203[4a];[5]adelay=128000|128000,volume=202[5a];[6]adelay=137800|137800,volume=201[6a];[7]adelay=149100|149100,volume=200[7a];[8]adelay=150400|150400,volume=199[8a];[9]adelay=151900|151900,volume=198[9a];[10]adelay=153300|153300,volume=197[10a];[11]adelay=190300|190300,volume=196[11a];[12]adelay=210000|210000,volume=195[12a];[13]adelay=222500|222500,volume=194[13a];[14]adelay=224400|224400,volume=193[14a];[15]adelay=226900|226900,volume=192[15a];[16]adelay=228700|228700,volume=191[16a];[17]adelay=236100|236100,volume=190[17a];[18]adelay=240000|240000,volume=189[18a];[19]adelay=251200|251200,volume=188[19a];[20]adelay=253400|253400,volume=187[20a];[21]adelay=256500|256500,volume=186[21a];[22]adelay=258800|258800,volume=185[22a];[23]adelay=263700|263700,volume=184[23a];[24]adelay=267500|267500,volume=183[24a];[25]adelay=272000|272000,volume=182[25a];[26]adelay=273500|273500,volume=181[26a];[27]adelay=276600|276600,volume=180[27a];[28]adelay=27920 ....
Оба этих файла в качестве входных данных по отдельности работают нормально. Однако, если я пытаюсь передать их оба вместе, FFMPEG жалуется.
ffmpeg -y -f concat -i tmp/input.txt -filter_complex_script tmp/filter.txt -map "[a]" tmp/out.mp3
Я получаю эту ошибку:
Invalid file index 1 in filtergraph description
Любая помощь действительно ценится.
Комментарии:
1. Если ваш ffmpeg достаточно новый, вы можете изменить его
adelay=273500|273500
наadelay=27.35:all=true
.
Ответ №1:
Демультиплексор concat создает единый объединенный ввод, поэтому при фильтрации вы не сможете ссылаться на отдельные файлы, как при обычных вводах.
Вам нужно будет перечислить входные данные по отдельности ( ffmpeg -i 0.mp3 -i 1.mp3 ...
).