web-dev-qa-db-ja.com

ffmpegを使用して2つのオーディオファイルをオーバーレイ/ダウンミックスする方法

Ffmpegを使用して2つのオーディオmp3ファイルを1つのmp3出力ファイルにオーバーレイ/ダウンミックスできますか?

40
Faisal

ステレオ+ステレオ→ステレオ

通常のダウンミックス

Normal downmix

amix フィルターを使用します。

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

または amerge フィルター:

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

各入力を特定の出力チャンネルにダウンミックスします

Downmix each input into specific output channel

amerge および 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

join フィルターを使用します。

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

または amerge

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

モノ+モノ→モノ

mono + mono → mono

amix フィルターを使用します。

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

詳細と例

FFmpeg Wiki:Audio Channels を参照してください

57
llogan

これをチェックしてください:

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

役立つと思います。

18
UI Developer

amixフィルターは、複数のオーディオ入力を単一の出力にミックスするのに役立ちます。

次のコマンドを実行する場合:

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

このコマンドは、3つの入力オーディオストリーム(次の例では2つのmp3ファイルを使用)を、最初の入力と同じ持続時間でドロップアウト遷移時間3秒の単一の出力にミックスします。

amixフィルターは、次のパラメーターを受け入れます。

  • inputs:入力の数。指定しない場合、デフォルトは2です。

  • duration:ストリームの終わりを判断する方法。

    • longest:最長入力の期間。 (デフォルト)

    • shortest:最短入力の期間。

    • first:最初の入力の期間。

  • dropout_transition:入力ストリームが終了したときのボリュームの再正規化の遷移時間(秒)。デフォルト値は2秒です。

たとえば、Ubuntuで次のコマンドを実行しました:FFMPEGバージョン: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

-codec:a libmp3lame -q:a 0は、可変ビットレートの設定に使用されました。必要に応じて、libmp3lameライブラリをインストールする必要があることに注意してください。ただし、-codec:a libmp3lame -q:a 0部分がなくても機能します。

リファレンス: https://ffmpeg.org/ffmpeg-filters.html#amix

13
Ehsan

長さが異なる場合は、 apad を使用して、最短音に無音を追加できます

2
Chung Xa

Bashを使用

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

1
Steven Penny

2つのオーディオファイルを異なるボリュームと異なる期間でマージするには、次のコマンドが機能します。

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

ここで、期間は最長または最短に変更できます。また、音量レベル必要に応じて。

バックグラウンドミュージックを音声に追加したい場合、音楽がギャップするギャップのように次のコマンドを使用します自動的に大きくなります

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

このしきい値には、その値がオーディオの音量を決定する値があります、しきい値を小さくするとオーディオは大きくなります。比率は、他のオーディオをどの程度圧縮する必要があるかを示します。比率が大きいほど、圧縮は大きくなります

1
Sheetansh kumar