可能是由于fdk-aac開源協定的原因,VLC預設是不支援fdk-aac編碼的,fdk-aac 是非常優秀的AAC編碼庫,并且支援AAC-LD AAC-ELD, 對于要求低延遲的場景下很有用。
可以通過修改VLC的編譯腳本,并加入fdkaac庫來使用VLC支援fdkaac編碼器。
我是在64位的ubuntu16.04下編譯的,vlc的編譯方法參考VLC官網的編譯文檔。
1 修改vlc/extras/package/win32/configure.sh , 加入--enable-fdkaac, 這樣VLC就會編譯fdkaac這個子產品。
執行make,會出現編譯錯誤
as/package/win32/../../../modules/codec/fdkaac.c:56:32: fatal error: fdk-aac/aacenc_lib.h: No such file or directory
這是因為缺少fdk-aac庫相關的頭檔案。
2 編譯fdk-aac庫
在terminal下進入源碼目錄,輸入
mkdir winBuild
cd winBuild
../configure --host=i686-w64-mingw32 --prefix=VLCPATH/contrib/i686-w64-mingw32
make install
VLCPATH 替換成VLC代碼的路徑
3 編譯VLC代碼
make packag-win32-zip
這時應該可以編譯通過了, 在module/codec/ 目錄下會生成libfakaac_plugin.dll檔案。
還需要把這個子產品依賴的VLCPATH/contrib/i686-w64-mingw32/libfdk-aac-1.dll動态庫複制到這個目錄下。
現在VLC就可以支援fdk-aac編碼了。