Mischen Sie eine beliebige Anzahl von Audiodateien mit ffmpeg in eine einzelne Stereo-Audiodatei

1

Ich arbeite derzeit an einer Karaoke-Anwendung und muss eine beliebige Anzahl (von 1 bis 12) Eingangsspuren zusammen mit einer Song-Spur in einer Audio-Ausgangsdatei zusammenführen, die Stereo sein sollte.

Ich habe versucht, Amerge- und Amix-Filter zu verwenden. Sie haben hervorragend funktioniert, aber beide hatten ein Problem: Die Lautstärke im resultierenden Mix war niedriger als in den Quelldateien. Der Befehl, den ich verwendete, war:

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

Ich habe auch versucht, den Pan-Filter zu verwenden, und es funktionierte hervorragend für 2 Dateien mit
pan = stereo: c0 = c0 + c1: c1 = c0 + c1 - das Ergebnis war genau das, was ich brauchte, aber ich konnte nicht mit mehr als 2 Dateien arbeiten (und ich muss in der Lage sein, bis zu 12 zusammenzuführen).

user3524517
quelle
Ich würde erwarten, dass ein richtiges Downmixing die Verstärkung verringert, um ein Übersteuern zu verhindern. Anstatt pan Sie können es einfach versuchen -ac 2.
llogan
ich benutzte ffmpeg.exe -i Avicii-WakeMeUp.mp3 -i jk0-0.mp3 -i jk0-3.mp3 -ac 2 mixsingers.mp3. Die Ausgabedatei enthält nur die erste Spur. Die Ausgabe von ffmpeg war: Stream mapping: Stream #0:0 -> #0:0 (mp3 -> libmp3lame) Größe = 3919 KB Zeit = 00: 04: 10,75 Bitrate = 128,0 KBit / s Video: 0 KB Audio: 3918 KB Untertitel: 0 globale Header: 0 KB Muxing-Overhead 0,006355%
user3524517
Du brauchst amerge zuerst.
llogan