debian: บันทึกการแปลงไฟล์ amr เป็น mp3

มีงานต้องแปลงไฟล์เสียงสกุล amr ไปเป็น mp3 เพื่อแจกจ่าย พบปัญหาว่า

  • เมื่อแปลงแล้วจะเกิดเสียง hiss มาก
  • เสียงต้นฉบับเบามาก
  • lame ไม่รู้จัก amr

ทางแก้ไขคือ

  • ปัญหาเสียง hiss เกิดจากการแปลงด้วยออปชั่นปกติหรือเพิ่มออปชั่นที่ไปเพิ่มคุณภาพเสียง แก้ด้วยการใช้ lame โดยใส่ออปชั่นว่าไม่ต้องพยายามเพิ่มลดอะไรจากต้นฉบับ -q9
  • ปัญหาเสียงเบา แก้ด้วยการ normalize
  • ปัญหา lame ไม่รู้จัก amr แก้ด้วยการแปลงจาก amr เป็น wav ก่อน ด้วย ffmpeg แล้วจึงแปลงเป็น mp3 ด้วย lame

โปรแกรมที่ต้องการใช้งานคือ ffmpeg, normalize-audio, lame จาก debian-multimedia.org
(ผมใช้ squeeze ให้เปลี่ยนตามที่ใช้จริง)

$ sudo vi /etc/apt/sources.list
...
deb http://www.debian-multimedia.org squeeze main non-free
...
$ sudo apttiude update
$ sudo aptitude install ffmpeg normalize-audio lame

คำสั่งที่ใช้คือ

$ for i in *amr; do 
ffmpeg -i "$i" /tmp/x.wav
normalize-audio /tmp/x.wav
lame -q9 /tmp/x.wav /PATH/TO/NEW/FILE/${i%amr}mp3"
rm /tmp/x.wav
done

จะได้ไฟล์ mp3 ที่คุณภาพและขนาดไฟล์ใกล้เคียงกับต้นฉบับ amr และไม่มีเสียง hiss ตามต้องการ