2つのMP3ファイルを連結するためにffmpegを使用しています。
私はこのコマンドを使用します:
ffmpeg -y -i first.mp3 -i second.mp3 -filter_complex "[0:0][1:0] amix=inputs=2:duration=longest" -c:a libmp3lame output.mp3
それは動作しますが、少し問題があります、一緒にオーバーレイします!
最初の曲を再生したいのですが、終了すると2番目のファイルが始まります(出力ファイル内)
しかし今、彼らは同時に始まります。
そのコマンドを変更して、最初の曲を含む出力を作成し、最初の曲が終了すると2番目の曲が再生されるようにするにはどうすればよいですか?
加えて、私はconcat
コマンドを試しましたが、うまくいきませんでした。私が送ったもののようなものを使うことができます。
再エンコードをスキップするには、concatdemuxerを使用します。
テキストファイルを作成する
file '/path/to/first.mp3'
file '/path/to/second.mp3'
その後
ffmpeg -f concat -i list.txt -c copy out.mp3
再エンコードに問題がない場合は、
ffmpeg -i first.mp3 -i second.mp3 -filter_complex [0:a][1:a]concat=n=2:v=0:a=1 out.mp3
通常、
cat first.mp3 second.mp3 > out.mp3
うまくいくはずです。試してみて、何がうまくいかないかは言いませんでした。
または、mp3wrap
を使用できます。
mp3wrap out.mp3 first.mp3 second.mp3 third.mp3 ...
これはffmpeg
のようにMP3を再エンコードせず、ID3タグを保持し、後でmp3split
を使用してファイルを再度分割できます。
再エンコードすると品質が低下するため、ffmpeg
または同様のプログラムを使用しないことをお勧めします。
cat [your files] > concat.mp3
を使用して、複数のヘッダーとID3タグを持つmp3ファイルを生成することもできます。その後、mp3val -f -nb concat.mp3
を呼び出すことでこれを修正できます。