Misture um número arbitrário de arquivos de áudio em um único arquivo de áudio estéreo usando ffmpeg

Misture um número arbitrário de arquivos de áudio em um único arquivo de áudio estéreo usando ffmpeg

Atualmente estou trabalhando em um aplicativo de karaokê e preciso mesclar um número arbitrário de faixas de entrada (de 1 a 12) com uma faixa de música em um único arquivo de áudio de saída que deve ser estéreo.

Tentei usar os filtros amerge e amix, eles funcionaram muito bem, mas ambos tiveram um problema - o volume na mixagem resultante era menor do que nos arquivos de origem. O comando que usei foi:

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

Também tentei usar o filtro pan e funcionou muito bem para 2 arquivos com
pan=stereo:c0=c0+c1:c1=c0+c1 - o resultado foi exatamente o que eu precisava mas não consegui fazer funcionar com mais de 2 arquivos (e preciso mesclar até 12).

Responder1

Para referência futura: Como dito por llogan, você precisa mesclar primeiro:

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

informação relacionada