it-swarm.com.de

Überlagern / Downmixen von zwei Audiodateien mit ffmpeg

Kann ich mit ffmpeg zwei Audio-MP3-Dateien in eine MP3-Ausgabedatei überlagern/heruntermischen?

40
Faisal

stereo + Stereo → Stereo

Normaler Downmix

Normal downmix

Verwenden Sie den Filter amix :

ffmpeg -i input0.mp3 -i input1.mp3 -filter_complex amix=inputs=2:duration=longest output.mp3

Oder der amerge Filter:

ffmpeg -i input0.mp3 -i input1.mp3 -filter_complex amerge=inputs=2 -ac 2 output.mp3

Mischen Sie jeden Eingang in einen bestimmten Ausgangskanal herunter

Downmix each input into specific output channel

Verwenden Sie die Filter amerge und pan :

ffmpeg -i input0.mp3 -i input1.mp3 -filter_complex "amerge=inputs=2,pan=stereo|c0<c0+c1|c1<c2+c3" output.mp3

mono + Mono → Stereo

mono + mono → stereo

Benutze den join Filter:

ffmpeg -i input0.mp3 -i input1.mp3 -filter_complex join=inputs=2:channel_layout=stereo output.mp3

Oder amerge :

ffmpeg -i input0.mp3 -i input1.mp3 -filter_complex amerge=inputs=2 output.mp3

mono + Mono → Mono

mono + mono → mono

Verwenden Sie den Filter amix :

ffmpeg -i input0.mp3 -i input1.mp3 -filter_complex amix=inputs=2:duration=longest output.mp3

Weitere Infos und Beispiele

Siehe FFmpeg-Wiki: Audiokanäle

57
llogan

Überprüfen Sie dies heraus:

ffmpeg -y -i ad_sound/whistle.mp3 -i ad_sound/4s.wav -filter_complex "[0:0][1:0] amix=inputs=2:duration=longest" -c:a libmp3lame ad_sound/outputnow.mp3

Ich denke, es wird helfen.

18
UI Developer

Mit dem Filter amix können Sie mehrere Audioeingänge zu einem einzigen Ausgang zusammenfassen.

Wenn Sie den folgenden Befehl ausführen:

ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT

Mit diesem Befehl werden 3 Audio-Eingangsströme (ich habe im folgenden Beispiel zwei MP3-Dateien verwendet) zu einem einzigen Ausgang mit der gleichen Dauer wie der erste Eingang und einer Dropout-Übergangszeit von 3 Sekunden gemischt.

Der Filter amix akzeptiert die folgenden Parameter:

  • Eingänge : Die Anzahl der Eingänge. Wenn nicht angegeben, wird standardmäßig 2 verwendet.

  • duration : Bestimmen des Stream-Endes.

    • längste: Die Dauer der längsten Eingabe. (Standard)

    • kürzeste: Die Dauer der kürzesten Eingabe.

    • first: Die Dauer der ersten Eingabe.

  • dropout_transition : Die Übergangszeit in Sekunden für die Volume-Renormierung, wenn ein Eingabestream endet. Der Standardwert ist 2 Sekunden.

Zum Beispiel habe ich den folgenden Befehl in Ubuntu ausgeführt: FFMPEG-Version: 3.2.1-1 UBUNTU 16.04.1

ffmpeg -i background.mp3 -i bSound.mp3 -filter_complex amix=inputs=2:duration=first:dropout_transition=0 -codec:a libmp3lame -q:a 0 OUTPUT.mp3

Mit -codec:a libmp3lame -q:a 0 Wurde eine variable Bitrate eingestellt. Denken Sie daran, dass Sie bei Bedarf die libmp3lame-Bibliothek installieren müssen. Aber es wird auch ohne den Teil -codec:a libmp3lame -q:a 0 Funktionieren.

Referenz: https://ffmpeg.org/ffmpeg-filters.html#amix

13
Ehsan

Wenn sie unterschiedlich lang sind, können Sie apad verwenden, um dem kürzesten einen leisen Ton hinzuzufügen

2
Chung Xa

Mit Bash

set 'amovie=a.mp3 [gg]; amovie=b.mp3 [hh]; [gg][hh] amerge'
ffmpeg -f lavfi -i "$1" -q 0 c.mp3

Beispiel

1
Steven Penny

Zum Zusammenführen von zwei Audiodateien mit unterschiedlichen Lautstärken und unterschiedlicher Dauer funktioniert folgender Befehl:

ffmpeg -y -i audio1.mp3 -i audio2.mp3 -filter_complex "[0:0]volume=0.09[a];[1:0]volume=1.8[b];[a][b]amix=inputs=2:duration=longest" -c:a libmp3lame output.mp3

Hier kann die Dauer in die längste oder in die kürzeste geändert werden. Sie können auch die Lautstärke ändern nach Ihrem Bedarf.

Wenn Sie einer Stimme Hintergrundmusik hinzufügen möchten , verwenden Sie den folgenden Befehl wie in den Lücken, in denen die Musik erklingt automatisch laut werden :

ffmpeg -i bgmusic.mp3 -i audio.mp3 -filter_complex "[1:a]asplit=2[sc][mix];[0:a][sc]sidechaincompress=threshold=0.003:ratio=20[bg]; [bg][mix]amerge[final]" -map [final] final.mp3

Bei dieser Schwelle entscheidet ein Wert darüber, wie laut das Audiosignal sein soll , je niedriger die Schwelle, desto höher das Audiosignal . Ratio gibt an, wie stark das andere Audio komprimiert werden soll , je mehr das Verhältnis ist, desto stärker ist die Komprimierung .

1
Sheetansh kumar