LAME是一款高品質的MP3編碼器(Encoder),普遍認為經由LAME轉換出來的MP3檔案,可以維持住較好的音質。LAME為跨平台的開源軟體,在Linux系統上如果要將音樂檔案轉成MP3格式,可以使用LAME來輕易達成。LAME官方沒有提供圖形化介面,與其使用品質參差不齊、不曉得的會輸出什麼檔案的第三方圖形化介面,倒不如學習如何透過Command Line指令來操作LAME,精準地控制音樂檔案的輸出品質。
LAME的輸出品質可以直接從音樂檔案的頻譜看出來,可以參閱這篇文章來學習如何判斷MP3檔案的音質。
在繼續瞭解LAME之前,您必須要先知道LAME「只是」MP3編碼器,它不能夠將MP3音樂檔案轉換成其他的格式。而且,在一般情形下(無自帶額外解碼器),LAME只能夠讀取PCM(WAV)或是MPEG-1 Audio Layer(MP1、MP2、MP3)格式,如果要將其他格式的檔案轉成MP3(例如FLAC轉成MP3),必須配合其他工具一起使用才行!
安裝LAME
基於Debian的Linux發行版執行以下指令來安裝:
基於紅帽的Linux發行版執行以下指令來安裝:
LAME 使用方法
LAME自帶文件
安裝好LAME後,在終端機下輸入以下指令,可以查看LAME的用法:
如果要看更進階的用法與各個參數的說明,可以輸入以下指令:
從上圖中可以看到LAME可以設定的參數實在是太多了,真是令人眼花撩亂,但其實我們只要會使用--preset
參數就已經足夠應付大部分的狀況。
LAME內建的轉檔配置(--preset
參數)
LAME強大的參數系統可能會使得使用者難以調整,所以LAME很貼心地內建了幾組常用的配置,只要使用--preset
參數就可以調用。內建的配置可依照輸出的音質優劣分為insane
、extreme
、standard
、medium
四種。以下將會以擁有CD音質的WAV檔案來使用這四種配置進行實際轉檔測試。先來看看WAV檔的頻譜:
--preset insane
insane
是LAME內建的四種配置中的最高品質配置,同時也是唯一一種使用CBR(固定位元率)編碼方式,位元率為MP3最大的320kbps。
將測試用的WAV檔使用insane
轉換後,得到的音樂檔的檔案大小約為原先的23%,頻譜如下:
從上圖可以發現將WAV轉換成使用insane配置的MP3後,20.1KHz以上的資料完全消失。但實際播放來聽,卻聽不出與原始檔案的差異,這是因為20KHz以下的頻譜幾乎沒有改變。
--preset extreme
extreme
是LAME內建的三種使用VBR(變動位元率)編碼配置中的最高品質配置。
將測試用的WAV檔使用extreme
轉換後,得到的音樂檔的變動位元率平均為277kbps,檔案大小約為原先的20%,頻譜如下:
從上圖可以發現將WAV轉換成使用extreme
配置的MP3後,頻譜在16KHz以上發生些許改變,尤其大概在18.7KHz以上的頻率衰減更為明顯。但實際播放來聽,也聽不出與原始檔案的差異。
--preset standard
standard
是音樂品質以及音樂檔案大小較平衡的配置。
將測試用的WAV檔使用standard
轉換後,得到的音樂檔的變動位元率平均為204kbps,檔案大小約為原先的14%,頻譜如下:
從上圖可以發現將WAV轉換成使用standard
配置的MP3後,18.7KHz以上的音訊完全消失。實際播放來聽,已可以略為聽出聲音有些壓縮感,不如原始的清晰,但還算是不錯的音質。
--preset medium
medium
是LAME內建的四種配置中品質最差的配置。
將測試用的WAV檔使用medium
轉換後,得到的音樂檔的變動位元率平均為152kbps,檔案大小約為原先的11%,頻譜如下:
從上圖可以發現將WAV轉換成使用medium
配置的MP3後,16KHz以上的資料已走樣,17.5KHz以上的資料完全消失。實際播放來聽,已可以聽出聲音有些壓縮感,不如原始的清晰,而且聽久了會有暈眩感。
--preset 位元率
直接在--preset
參數後加上位元率,可以使用ABR(平均位元率)編碼方式來進行MP3編碼,如此一來就可以預估編碼後的MP3檔案大小。不過這個很少使用,就不多提了。
使用--preset
參數來轉檔
根據以上四種LAME內建的配置測試,medium
配置是不用考慮的項目,用它轉換出來的MP3檔案大小和使用standard
配置轉換出來的MP3檔案大小差不多,卻可以明顯聽出音質差異。所以說,如果有檔案傳輸需求的話,standard
配置絕對是首選,而聽起來和extreme
幾乎一樣的insane
則不用考慮。如果是要收藏音樂的話,extreme
是首選。insane
配置可能只有在需要「320kbps」這個噱頭時才會用到。
如果我們要使用extreme
配置進行轉檔,可以使用以下指令:
使用-V
參數來轉檔
如果想要更精細的調整lame的輸出品質,筆者不太建議直接使用-b
參數來修改輸出的位元率,直接使用-V
參數來交由LAME動態控制位元率會比較好。-V
參數分為10種等級,數值為0~9,數值愈小品質愈好。如果要對照--preset
參數的話,-V 0
就是「--preset extreme」;-V 2
就是--preset standard
;-V 4
就是--preset medium
。用到-V 4
已經會讓聲音聽起來有些壓縮感了,如果真的需要省空間,需要再將數值往上加的話,-V 5
、-V 6
可以跳過不使用,建議直接從會重新取樣的-V 7
、-V 8
、-V 9
來嘗試,因為它們的音質和檔案大小的平衡在大部分的情況下會比-V 5
、-V 6
來得好。
LAME與其他解碼器合作
由於LAME所支援的輸入格式有限,因此常會與其他解碼器一同工作,利用外部的解碼器將特殊格式的音樂檔進行解碼,再將解碼結果傳給LAME進行格式轉換的工作。在終端機預設的bash script下可以使用|
字元將兩個指令隔開在同一行中。字元|
左邊的指令輸出到標準輸出(stdout)中的資料,會成為字元|
右邊指令的標準輸入串流(stdin)。使用-
字元可以指定要使用標準輸入/輸出串流的參數位置。
FLAC轉MP3
必須要先有flac
套件。
基於Debian的Linux發行版可以使用以下指令來安裝:
基於紅帽的Linux發行版可以使用以下指令來安裝:
使用以下指令可以將FLAC格式的音樂檔案轉成MP3音樂檔:
flac
指令的-c
參數表示將輸出改成標準輸出(同-o -
),-d
參數表示要進行解碼(decode)。
APE(MAC)轉MP3
APE(或是MAC)為Monkey's Audio的格式,在Linux上如果要進行解碼,得使用以下的非官方套件(基於Debian的Linux發行版):
使用以下指令可以將APE(或是MAC)格式的音樂檔案轉成MP3音樂檔:
mac
指令的-d
參數表示要進行解碼(decode)。
Ogg轉MP3
必須要先有vorbis-tools
套件。
基於Debian的Linux發行版可以使用以下指令來安裝:
基於紅帽的Linux發行版可以使用以下指令來安裝:
使用以下指令可以將Ogg格式的音樂檔案轉成MP3音樂檔:
AAC(M4A)轉MP3
必須要先有faad
套件。
基於Debian的Linux發行版可以使用以下指令來安裝:
基於紅帽的Linux發行版可以使用以下指令來安裝:
使用以下指令可以將AAC(M4A)格式的音樂檔案轉成MP3音樂檔:
Opus轉MP3
必須要先有opus-tools
套件。
基於Debian的Linux發行版可以使用以下指令來安裝:
基於紅帽的Linux發行版可以使用以下指令來安裝:
使用以下指令可以將Opus格式的音樂檔案轉成M4A音樂檔: