web-dev-qa-db-ja.com

2つのmp3ファイルを連結するためのffmpegコマンド

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コマンドを試しましたが、うまくいきませんでした。私が送ったもののようなものを使うことができます。

3
Karami

再エンコードをスキップするには、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
5
Gyan

通常、

cat first.mp3 second.mp3 > out.mp3

うまくいくはずです。試してみて、何がうまくいかないかは言いませんでした。

または、mp3wrapを使用できます。

mp3wrap out.mp3 first.mp3 second.mp3 third.mp3 ...

これはffmpegのようにMP3を再エンコードせず、ID3タグを保持し、後でmp3splitを使用してファイルを再度分割できます。

再エンコードすると品質が低下するため、ffmpegまたは同様のプログラムを使用しないことをお勧めします。

0
dirkt

cat [your files] > concat.mp3を使用して、複数のヘッダーとID3タグを持つmp3ファイルを生成することもできます。その後、mp3val -f -nb concat.mp3を呼び出すことでこれを修正できます。

0
user1064665