FFMPEG: добавить больше треков к предыдущему выводу amix - PullRequest
1 голос
/ 12 апреля 2020

Я могу смешивать несколько звуковых дорожек в ffmpeg с помощью команды, подобной

ffmpeg -i track1.wav \
       -i track2.wav \
       -i track3.wav \
       -filter_complex "[0:a] [1:a] [2:a] amix=3 [out]" \
       -map "[out]" \
       -c copy mix.wav

Все дорожки одинаковой длины в моем сценарии использования. Периодически я получаю новый трек (назовите его track4.wav), и я хотел бы создать новый микс из всех четырех треков. Наивным решением было бы повторить приведенный выше комментарий с дополнительным треком, но это становится дорогим, поскольку количество треков становится большим.

Есть ли элегантный способ объединить mix.wav и track4.wav получить эквивалентный результат, без дисбаланса в уровнях громкости или значительной потери качества по сравнению с «наивным» подходом?

1 Ответ

2 голосов
/ 12 апреля 2020

Пока вы сохраняете файлы в формате PCM / WAV, о качестве говорить не приходится.

С последней версией ffmpeg вы можете запускать

ffmpeg -i mixof3.wav \
       -i track4.wav \
       -filter_complex "[0:a] [1:a] amix=2:weights='3 1' [out]" \
       -map "[out]" \
       mixof4.wav

Это эквивалентно чтобы запустить исходную команду с 4 входами.

...