AAC(進階音訊編碼, Advanced Audio Coding)被許多人認為是目前音訊有損壓縮品質最好的格式,相較於MP3格式,AAC支援更多的聲道,更高的採樣率和位元率,以及更精確的音樂訊號。若拿相同大小的MP3和AAC格式的音樂檔案來比較,AAC的音質通常會比MP3還要來得好。AAC的取樣精度最高可到32位元,MP3則只有16位元;AAC的取樣頻率最高可以達到96kHz,MP3則只有48kHz。FAAC是開放原始碼的AAC編碼器,可以直接在Linux下編譯使用。本篇文章將會實際在Linux環境下編譯FAAC。



內建的軟體庫就有提供FAAC了,為什麼還要編譯FAAC?

因為授權條款的關係,Linux軟體庫提供的FAAC大多沒有MP4的功能,因此無法將AAC封裝成常見的m4A等格式。如果要查看FAAC有無MP4的功能,可以使用以下指令:

faac --help

若是看到「MP4 support unavailable」,就代表這個FAAC工具不支援MP4。

為了使FAAC可以支援MP4,方便流通編碼出來的AAC檔案,我們需要手動編譯FAAC。

編譯FAAC For Linux

編譯環境:Linux Mint 17 MATE

取得FAAC

FAAC的原始碼可以直接在FAAC的SourceForge上取得:

http://sourceforge.net/projects/faac/

產生「configure」檔案

若是在FAAC原始碼根目錄找不到「configure」檔案,就需要自己產生出來。

可以使用sh指令來執行「bootstrap」這個指令檔:

sh bootstrap

如果執行過程中出現奇怪的語法錯誤,可能是因為「bootstrap」指令檔的換行字元不相容Linux的關係。這時可以使用以下指令來轉換換行字元的格式:

dos2unix bootstrap

轉換換行字元格式後,再次執行以下指令來產生「configure」檔案。

sh bootstrap

配置FAAC

使用以下指令執行「configure」檔案。

./configure

如果在configure過程中出現錯誤,可能也是字元編碼格式的問題。此時如果再使用「dos2unix」工具來轉換「configure」檔案,可能會出現「configure」檔案擁有Binary資料的訊息。

要解決這個問題的話,可以直接用純文字編輯工具開啟「configure」檔案,再重新存檔一次,讓文字編輯工具對「configure」檔案重新編碼。

再次執行以下指令,應該就可以成功了。

./configure

編譯與安裝FAAC

使用以下指令編譯FAAC:

make

如果「mpeg4ip.h」檔案檔案出現「strcasestr有ambiguous」的訊息,需修改「common/mp4v2」目錄下的「mpeg4ip.h」檔案,將有問題的那行註解掉。

FAAC編譯成功後,可以使用以下指令來安裝:

sudo make install

安裝好自己編譯的FAAC之後,再使用以下指令來查看FAAC,可以發現MP4相關的選項出現,並且可以使用了!

faac --help

有關FAAC指令更詳細的用法可以參考底下這篇文章:

https://magiclen.org/linux-faac-2/