ffmpeg command for concatenate two mp3 files
I am using ffmpeg for Concatenating two MP3 files together,
I use this command :
ffmpeg -y -i first.mp3 -i second.mp3 -filter_complex "[0:0][1:0] amix=inputs=2:duration=longest" -c:a libmp3lame output.mp3
It works, but there is a little problem, the overlay together!
I want first song plays, and when it finished, second file starts (in output file)
But now they starts at the same time.
How can i change that command, to have a output that contains first song then when the first finished, second plays ?
Plus, I've tried concat
command but not worked,
I just can use something like what i sent.
To skip re-encoding, use the concat demuxer:
Create a text file
file '/path/to/first.mp3'
file '/path/to/second.mp3'
and then
ffmpeg -f concat -i list.txt -c copy out.mp3
If re-encoding is fine,
ffmpeg -i first.mp3 -i second.mp3 -filter_complex [0:a][1:a]concat=n=2:v=0:a=1 out.mp3
Usually,
cat first.mp3 second.mp3 > out.mp3
should just work. You didn't say what goes wrong when you try it.
Alternatively, you can use mp3wrap
:
mp3wrap out.mp3 first.mp3 second.mp3 third.mp3 ...
This doesn't re-encode the MP3s like ffmpeg
would, it keeps the ID3 tags, and you can split the files again later with mp3split
.
I advise against using ffmpeg
or similar programs, because reencoding causes loss of quality.