2015/02/28

Convert m4a to mp3

在 Mac OS X 終端機下將 m4a 音樂檔轉成 mp3 檔案

因為有一些個人需求,需要將 m4a 或 wmv 之類的音樂格式轉成 mp3,又因為要轉的音樂檔案有點多,所以才會想到要一次性解決這個問題。在網路上查找好一番後,寫下了一點自己用得到的東西。

可轉檔軟體

Mac OS X 系統下圖型介面的轉檔軟體很多,其中也不乏批次轉檔和條件式轉檔的軟體。例如 AudacityXLDAudio Converter Lite 等等,以上舉的例子都是自由或免費版本。
  • Audacity – http://audacity.sourceforge.net
  • XLD – http://tmkk.undo.jp/xld/index_e.html
  • Audio Converter Lite – https://geranium-soft.com
XLD 是專門用來轉無損音質的軟體。Audacity 則是無法批次轉檔(需要另外下載 lame 和 ffmpeg 的套件或涵式庫)——或者其實可以,但我還不曉得具體做法。而 Audio Converter Lite 只能固定 bitrate,但可以批次轉檔。

FFmpeg

這裡要介紹的是一款在終端機下就可以操作的軟體:ffmpeg
這得有 Xcode 和 homebrew
首先從 Apple Store 下載安裝 Xcode command line tools,再安裝 homebrew。在 homebrew 下安裝 ffmpeg,此時會同時安裝相依檔案。在排除掉一些安裝過程中的警告後,就能使用。至於如何安裝 ffmpeg,請參考 René Calles 的做法[1]。若不使用 homebrewMacPort 其實也可以,但個人覺得使用 homebrew 比較友善。

開始轉檔

在轉成 mp3 的過程中,最要緊的是轉檔後 mp3 的品質。雖然已知 mp3 是一種破壞性壓縮檔案,但它的壓縮程度還是可以控制,這在其他圖型介面的軟體中也是可以調整的選項。至於該壓縮到多少?我個人建議應該要看原檔案的 bitrate 和 sample rate。一般 mp3 的 bitrate 大約是在 128 Kbps,而其 sample rate 則是在 44.1 KHz 左右,一般不需要在轉檔過程中更動。
單檔轉檔參考的 是FFmpeg 官網上的 mp3 encoding 說明文件[2],例子:
ffmpeg -i input.m4a -codec:a libmp3lame -qscale:a 2 output.mp3
其中 input.m4a 指的是來源檔案,output.mp3 則是要生成的 mp3 音樂檔,這裡使用的是 lame 這個 mp3 編碼涵式庫,指令後的選項『-qscale:a』可以簡寫成『-q:a』,這相當於 lame 中的『-V』選項,至於後面的參數『2』也是和 lame 中的參數屬於同一個等級,指的是 bitrate 為範圍 170Kbps 到 210kbps 之間的變動,預設是參數『4』。參數是從 到 9,數字越大,mp3 的品質越差。詳情請看上述的說明文件。
批次轉檔參考的是 shantiq 網友在 Ubuntu 論壇的做法[3]
for f in *.m4a; do ffmpeg -i "$f" -acodec libmp3lame -q:a "${f%.m4a}.mp3"; done
上述一行指令中的『-acodec』等同於『-codec:a』。
值得注意的是最好先確認原檔是 ABRCBR 或 CBRVBR 的 bitrate 是變動的,CBR 則是固定的,至於 ABR 則是指平均值。我的確認方式是在 VLC 打開音樂檔,觀看音樂資訊中的 bitrate 是否會變化,如果變動不大,那或許用 ABR 指定轉檔後的 bitrate 就可以了,但是像是想聽古典樂,但原始檔太大,也許就要用 VBR 的變動參數設定,將原始檔改成 mp3,卻又能保持在木耳依然覺得好聽的程度。詳細內容可以參考 FFmpeg 官網上的說明文件[2]
FFmpeg 能做的事不只是將音樂檔轉成 mp3 格式,但它的其他功能,直到目前為止,我不大需要在終端機下操作。因此,其他部分就不提了,等往後用得到再說。

參考資料

[1] René Calles, “How to install FFmpeg on Mac OS X | reneVolution.” http://www.renevolution.com/how-to-install-ffmpeg-on-mac-os-x/
[2] FFmpeg, “Encode/MP3 – FFmpeg.” Available: https://trac.ffmpeg.org/wiki/Encode/MP3.
[3] shantiq, “Convert M4A to MP3 using FFMPEG,” http://ubuntuforums.org/showthread.php?t=1614765

沒有留言:

張貼留言

逢廣告文必砍!