FFMPEG - 定義された重複時間を持つ 2 つのオーディオ ファイルを結合します

FFMPEG - 定義された重複時間を持つ 2 つのオーディオ ファイルを結合します

要件

事前に定義された重複時間で 2 つのオーディオ ファイルを連結したいと思います。

たとえば、10 秒のオーバーラップが定義されている場合、最初のオーディオの最後の 10 秒と 2 番目のオーディオの最初の 10 秒が出力でオーバーラップされます。

|<---- 1st mp3 file -------------------->                       |
|                        <-----------2nd mp3 file ------------->|

result:
|<-----------------------(overlap 10 sec )--------------------->|

答え1

  1. 使用ffprobe期間を取得する最初の mp3 ファイル。

  2. 実行ffmpeg方法遅れ音声を遅らせ、混合2 つのオーディオ ストリームを 1 つにミックスするには:

    ffmpeg -i 1.mp3 -i 2.mp3 -filter_complex "[1]adelay=Ns|Ns[a1];[0:a][a1]amix=inputs=2[a]" -map "[a]" output.mp3
    
    • Ns= 1.mp3 duration- overlap duration。たとえば、1.mp3が 30 秒で、10 秒のオーバーレイが必要な場合は、 を使用します20s|20s

    • これは2.mp3ステレオであると想定しています。

    • バージョン 4.2 より古い場合はffmpeg、 のように、adelay で秒ではなくミリ秒を使用します20000|20000

    • -map "[a]"ffmpegは、amixからの出力を任意にラベル付けして使用するように指示します[a]。それ以外の場合は、デフォルトのストリーム選択動作が使用されます。それが問題でなく、意味を理解している場合は、ラベルと-map( など...amix=inputs=2" output.mp3)を省略してください。また、-mapドキュメンテーション。

関連情報