Anda dapat melakukan ini secara terprogram dengan demuxer concat ffmpeg.
Pertama, buat file bernama inputs.txt dengan baris seperti
file '/path/to/input1.mp3'
file '/path/to/input2.mp3'
file '/path/to/input3.mp3'
...dll. Kemudian, jalankan perintah ffmpeg berikut:
ffmpeg -f concat -i inputs.txt -c copy output.mp3
Dimungkinkan untuk membuat inputs.txt dengan mudah menggunakan bash for loop (ini mungkin dapat dilakukan dengan batch Windows untuk loop juga), dengan asumsi Anda ingin menggabungkan file dalam urutan abjad. Ini akan cocok dengan setiap *.mp3 di direktori kerja, tetapi dapat dimodifikasi dengan mudah:
for f in ./*.mp3; do echo "file '$f'" >> inputs.txt; done
## Alternatively
printf "file '%s'\n" ./*.mp3 >> inputs.txt
Anda juga dapat melakukan semuanya dalam satu baris, menghindari pembuatan file daftar perantara dengan substitusi proses:
ffmpeg -f concat -i <(printf "file '%s'\n" ./*.mp3) -c copy output.mp3
Gunakan ffmpeg atau alat serupa untuk mengonversi semua MP3 Anda menjadi format yang konsisten, mis.
ffmpeg -i originalA.mp3 -f mp3 -ab 128kb -ar 44100 -ac 2 intermediateA.mp3
ffmpeg -i originalB.mp3 -f mp3 -ab 128kb -ar 44100 -ac 2 intermediateB.mp3
Kemudian, saat runtime, gabungkan file Anda bersama-sama:
cat intermediateA.mp3 intermediateB.mp3 > output.mp3
Terakhir, jalankan melalui alat MP3Val untuk memperbaiki kesalahan streaming apa pun tanpa memaksa penyandian ulang penuh:
mp3val output.mp3 -f -nb
(sumber)