Untuk menggabungkan dan mentranskode file audio, ini adalah alur kerja yang ingin Anda ikuti:
- Mendekode input file audio ke data WAV / PCM,
- WAV gabungan,
- Encode WAV untuk menampilkan file codec audio.
Pemrosesan dalam langkah-langkah ini melakukan penggabungan pada data WAV, yang paling mudah untuk ditangani dan paling tidak lossy. Dan karena Anda tetap ingin transcode, Anda harus mendekode ke WAV di suatu tempat dalam proses; lebih baik memanfaatkannya.
Berikut langkah-langkah yang saya rekomendasikan. Kami akan gunakan ffmpeg
untuk decoding, sox
untuk concatenation, dan oggenc
untuk encoding. Anda dapat mengganti alat lain untuk langkah apa pun - mencoder
dan yang lain berfungsi dengan baik sebagai dekoder, dan alat apa pun yang menyandikan Ogg dapat digunakan sebagai penyandi - meskipun saya pikir Anda akan kesulitan menemukan alat yang lebih baik daripada sox
untuk rangkaian.
find *.wma -exec ffmpeg -i {} outfile.{}.wav \;
(ini berjalan ffmpeg -i infile.wma outfile.infile.wma
pada setiap file WMA di direktori saat ini)
sox outfile* all.wav
(note outfile
adalah awalan yang sama dengan yang kita berikan pada file output pada langkah 1)
oggenc all.wav all.ogg
Anda mungkin ingin beberapa pengaturan kualitas di sini, tetapi ini akan memberikan standar kualitas yang layak. Saya tidak mendapatkan hasil yang saya sukai ffmpeg
, tetapi Anda mungkin lebih suka, jadi saya telah menyertakan contoh dengan ffmpeg di bawah ini.
Perhatikan bahwa sox
perintah tidak akan berfungsi dengan baik kecuali semua file WAV memiliki format yang sama - jika ada yang 22kHz dan ada yang 44.1kHz, misalnya, Anda perlu mengidentifikasi mereka sox
melalui sakelar baris perintah, dan tentukan format mana yang Anda inginkan. output in. Saya tidak tahu alat commandline yang mampu sox
untuk langkah penggabungan. Anda mungkin dapat menampilkan ke format PCM mentah di langkah 1 dan gunakan cat
untuk langkah 2, tetapi itu hanya akan berfungsi jika mereka berada dalam format yang sama, dan Anda harus sangat spesifik untuk dekoder dan enkoder Anda seperti apa format yang seharusnya mereka harapkan.
Pengkodean dengan ffmpeg: Banyak posting di sekitar 'mengeluh bahwa ffmpeg builtin Vorbis encoder tidak terlalu baik. Jika versi Anda dibuat dengan dukungan libvorbis, gunakan -acodec libvorbis
saja. Contoh perintah:
ffmpeg -i all.wav -acodec libvorbis -ac 2 -ab 128k all.ogg