Смешайте произвольное количество аудиофайлов в один стерео аудиофайл с помощью ffmpeg

Смешайте произвольное количество аудиофайлов в один стерео аудиофайл с помощью ffmpeg

В настоящее время я работаю над приложением для караоке и мне нужно объединить произвольное количество (от 1 до 12) входных дорожек вместе с песней в один выходной аудиофайл, который должен быть стерео.

Я пробовал использовать фильтры amerge и amix, они работали отлично, но у обоих была одна проблема — громкость в результирующем миксе была ниже, чем в исходных файлах. Команда, которую я использовал, была:

ffmpeg.exe -y  -i song.mp3 -i track1.mp3  .... -i track[N].mp3  -filter_complex amerge=inputs=[N]  -c:a libmp3lame  -ar 44100 -q:a 1 mix.mp3

Я также попробовал использовать фильтр Pan, и он отлично сработал для 2 файлов с
pan=stereo:c0=c0+c1:c1=c0+c1 — результат был именно таким, как мне нужно, но я не смог заставить его работать с более чем 2 файлами (а мне нужно иметь возможность объединять до 12).

решение1

Для справки в будущем: как сказал llogan, сначала нужно выполнить объединение:

ffmpeg -i input1.mp3 -i input2.mp3 -filter_complex "[0:a][1:a]amerge=inputs=2[a]" -map "[a]" -ac 2 output.mp3

Связанный контент