Vorbis Tools包含了Ogg的編碼器(oggenc)、解碼器(oggdec)以及其它相關工具。Ogg是開源、自由、免費的音訊編碼格式,沒有麻煩的專利授權問題。若拿相同大小的MP3和Ogg格式的音樂檔案來比較,Ogg的音質通常會比MP3還要來得好。更正確來說,Ogg一開始只是一個檔案封裝格式,就像M4A格式一樣,可以同時包含視訊與音訊在同一個檔案中,Vorbis才是Ogg檔案封裝格式所使用的音訊編碼格式,但後來為了相容性的考量,官方規定.ogg檔案只能存放Vorbis格式的音訊,而衍生出.oga.ogv.ogx等其他的檔案封裝格式,所以現在所稱的Ogg格式其實就是在說Vorbis格式。



目前已有比Vorbis格式還要更好的Opus格式,官方也建議使用Opus來取代Vorbis。有關Opus格式的介紹可以參考這篇文章

Vorbis支援32kbps到500kbps的變動位元率(VBR),使用變動位元率(VBR),它的取樣頻率範圍在8kHz到192kHz,比AAC的96kHz還要高。

Vorbis官方網站:

安裝Vorbis Tools

基於Debian的Linux發行版執行以下指令來安裝:

sudo apt install vorbis-tools

基於紅帽的Linux發行版執行以下指令來安裝:

sudo dnf install vorbis-tools

Vorbis Tools包含什麼工具?

Vorbis Tools包含了以下幾種工具:

  • ogg123:Ogg的播放器,可以從檔案或是從網路串流播放Ogg。
  • oggdec:Ogg的解碼器。
  • oggenc:Ogg的編碼器。
  • ogginfo:Ogg檔案的資訊顯示器。
  • vcut:剪輯Ogg檔案的工具。
  • vorbiscomment:查看或是編輯Ogg檔案註解的工具。

這篇文章將會著重介紹Ogg的編碼器(oggenc)的用法。

Ogg編碼器─oggenc

oggenc自帶文件

安裝好Vorbis Tools後,在終端機下輸入以下指令,可以查看oggenc的用法:

oggenc --help

linux-ogg

從上圖中可以看到oggenc可以設定的參數有許多種,但我們其實只要使用-q參數來調整輸出的Ogg之品質,就已經足夠應付大部分的狀況。

oggenc快速調整聲音輸出品質(-q參數)

oggenc提供了一個能牽一髮動全身的參數,那就是-q,只要調整這個值的大小,就可以影響輸出的位元率,這個值的範圍是「-1~10」,愈大音質愈高。以下將會以擁有CD音質的WAV檔案來使用不同的-q參數值實際轉檔測試。

先來看看WAV檔的頻譜:

linux-lame

-q 10

將參數-q設置為10,可以輸出oggenc能夠支援的最高音質。

將測試用的WAV檔使用-q 10轉換後,得到的音樂檔的變動位元率平均為472kbps,檔案大小約為原先的33%,頻譜如下:

linux-ogg

從上圖可以發現將WAV轉換成-q 10的Ogg後,20.5kHz以上的頻率有細微的變化,但20.5kHz以下的頻譜幾乎沒有改變。實際播放來聽,也聽不出與原始檔案的差異。

-q 9

將測試用的WAV檔使用-q 9轉換後,得到的音樂檔的變動位元率平均為338kbps,檔案大小約為原先的24%,頻譜如下:

linux-ogg

從上圖可以發現將WAV轉換成-q 9的Ogg後,20.5kHz以上的頻率有明顯的變化,但20.5kHz以下的頻譜變化甚微。實際播放來聽,也聽不出與原始檔案的差異。

-q 8

將測試用的WAV檔使用-q 8轉換後,得到的音樂檔的變動位元率平均為270kbps,檔案大小約為原先的19%,頻譜如下:

linux-ogg

從上圖可以發現將WAV轉換成-q 8的Ogg後,20.5kHz以上的頻率有很明顯的變化,18.7kHz至20.5kHz的頻譜也有一些改變,但18.7kHz以下的頻譜改變則不明顯。實際播放來聽,也聽不出與原始檔案的差異。

-q 7

將測試用的WAV檔使用-q 7轉換後,得到的音樂檔的變動位元率平均為230kbps,檔案大小約為原先的16%,頻譜如下:

linux-ogg

從上圖可以發現將WAV轉換成-q 7的Ogg後,和-q 8的Ogg相比,20.5kHz以上的頻譜有很明顯的變化,18.7kHz至20.5kHz的頻譜也有一些改變,但18.7kHz以下的頻譜形狀改變則相對不明顯。實際播放來聽,也聽不出與原始檔案的差異。

-q 6

將測試用的WAV檔使用-q 6轉換後,得到的音樂檔的變動位元率平均為198kbps,檔案大小約為原先的14%,頻譜如下:

linux-ogg

從上圖可以發現將WAV轉換成-q 6的Ogg後,和-q 7的Ogg相比,18.7kHz以上的頻譜有很明顯的變化,但18.7kHz以下的頻譜改變則相對不明顯。實際播放來聽,音質沒有受太大的影響。

-q 5

將測試用的WAV檔使用-q 5轉換後,得到的音樂檔的變動位元率平均為165kbps,檔案大小約為原先的12%,頻譜如下:

linux-ogg

從上圖可以發現將WAV轉換成-q 5的Ogg後,20.1KHz以上的訊號幾乎消失,18.7kHz以下的頻譜形狀則有一些改變。實際播放來聽,已可以略為聽出聲音不如原始的清晰,但還算是很不錯的音質。

-q 4

將測試用的WAV檔使用-q 4轉換後,得到的音樂檔的變動位元率平均為134kbps,檔案大小約為原先的10%,頻譜如下:

linux-ogg

從上圖可以發現將WAV轉換成-q 4的Ogg後,19.6KHz以上的資料完全消失,18.7kHz以下的頻譜形狀則有一些改變。實際播放來聽,已可以聽出聲音有些壓縮感,不如原始的清晰,但還能接受。

-q 3

將測試用的WAV檔使用-q 3轉換後,得到的音樂檔的變動位元率平均為112kbps,檔案大小約為原先的8%,頻譜如下:

linux-ogg

從上圖可以發現將WAV轉換成-q 3的Ogg後,17.1kHz以上的訊號幾乎完全消失,17.1kHz以下的頻譜有一些改變。實際播放來聽,已可以聽出聲音有壓縮感。

-q 2

將測試用的WAV檔使用-q 2轉換後,得到的音樂檔的變動位元率平均為92kbps,檔案大小約為原先的7%,頻譜如下:

linux-ogg

從上圖可以發現將WAV轉換成-q 2的Ogg後,16.6KHz以上的資料完全消失,16.6kHz以下的頻譜有一些改變。實際播放來聽,可以聽出聲音有很重的壓縮感。

-q 1

將測試用的WAV檔使用-q 1轉換後,得到的音樂檔的變動位元率平均為74kbps,檔案大小約為原先的5%,頻譜如下:

linux-ogg

從上圖可以發現將WAV轉換成-q 1的Ogg後,16KHz以上的訊號幾乎完全消失,16kHz以下的頻譜形狀也有很明顯的改變。這音質已經完全讓人無法接受了,不要再用-q 0-q -1來傷耳朵。

使用-q參數來轉檔

根據以上不同-q參數值的測試,-q -1-q 0-q 1不要使用比較好,很傷耳朵。如果是要收藏音樂的話,-q 7是首選。如果有檔案傳輸需求的話,-q 6是音質和檔案大小平衡的首選。

如果我們要使用-q 7進行轉檔,可以使用以下指令:

oggenc -q 7 輸入檔案路徑 -o 輸出檔案路徑

使用-b參數來轉檔

如果想要更精細的調整oggenc的輸出品質,可使用-b參數來指定Ogg的動態控制位元率的逼近值,範圍值是32~500。

oggenc與其他解碼器合作

由於oggenc所支援的輸入格式有限,因此常會與其他解碼器一同工作,利用外部的解碼器將特殊格式的音樂檔進行解碼,再將解碼結果傳給oggenc進行格式轉換的工作。在終端機預設的bash script下可以使用|字元將兩個指令隔開在同一行中。字元|左邊的指令輸出到標準輸出(stdout)中的資料,會成為字元|右邊指令的標準輸入串流(stdin)。使用-字元可以指定要使用標準輸入/輸出串流的參數位置。

FLAC轉Ogg

必須要先有flac套件。

基於Debian的Linux發行版可以使用以下指令來安裝:

sudo apt install flac

基於紅帽的Linux發行版可以使用以下指令來安裝:

sudo dnf install flac

使用以下指令可以將FLAC格式的音樂檔案轉成Ogg音樂檔:

flac -c -d 輸入檔案路徑 | oggenc -q 7 - -o 輸出檔案路徑

flac指令的-c參數表示將輸出改成標準輸出(同-o -),-d參數表示要進行解碼(decode)。

APE(MAC)轉Ogg

APE(或是MAC)為Monkey's Audio的格式,在Linux上如果要進行解碼,得使用以下的非官方套件(基於Debian的Linux發行版):

使用以下指令可以將APE(或是MAC)格式的音樂檔案轉成Ogg音樂檔:

mac 輸入檔案路徑 - -d | oggenc -q 7 - -o 輸出檔案路徑

mac指令的-d參數表示要進行解碼(decode)。

Opus轉Ogg

必須要先有opus-tools套件。

基於Debian的Linux發行版執行以下指令來安裝:

sudo apt install opus-tools

基於紅帽的Linux發行版執行以下指令來安裝:

sudo dnf install opus-tools

使用以下指令可以將Opus格式的音樂檔案轉成Ogg音樂檔:

opusdec --force-wav 輸入檔案路徑 - | oggenc -q 7 - -o 輸出檔案路徑

AAC(M4A)轉Ogg

必須要先有faad套件。

基於Debian的Linux發行版可以使用以下指令來安裝:

sudo apt install faad

基於紅帽的Linux發行版可以使用以下指令來安裝:

sudo dnf install faad2

使用以下指令可以將AAC(M4A)格式的音樂檔案轉成Ogg音樂檔:

faad -o - 輸入檔案路徑 | oggenc -q 7 - -o 輸出檔案路徑

MP3轉Ogg

必須要先有lame套件。

基於Debian的Linux發行版執行以下指令來安裝:

sudo apt install lame

基於紅帽的Linux發行版執行以下指令來安裝:

sudo dnf install lame

使用以下指令可以將MP3格式的音樂檔案轉成Ogg音樂檔:

lame --decode 輸入檔案路徑 - | oggenc -q 7 - -o 輸出檔案路徑