macOS編譯 lame, fad-aac, x264, ffmpeg

簡介

做音視頻開發(fā),除了平臺提供的SDK外,我們經(jīng)常會用到一些優(yōu)秀的第三方開源庫,這里我們將介紹下lame, fad-aac, x264的編譯及使用。

lame

目前,LAME被認為是中高比特率和VBR的最佳MP3編碼器,主要得益于其開發(fā)人員的專注工作和開源許可模式,使該項目能夠利用來自世界各地的工程資源。 質(zhì)量和速度的提升仍在繼續(xù),可能使LAME成為唯一仍在積極開發(fā)的MP3編碼器。

fdk-aac

Fraunhofer FDK AAC是由Fraunhofer IIS開發(fā)的高質(zhì)量開源AAC編碼器庫。 它是針對Android正式發(fā)布的,但已被移植到其他平臺。 Winamp中包含的許可Fraunhofer AAC編解碼器(通常稱為FhG AAC)與FDK AAC編解碼器不同。FDK AAC是一個目前效率很高的aac編解碼庫。

x264

x264是一個免費的開源軟件庫和VideoLAN開發(fā)的命令行實用程序,用于將視頻流編碼為H.264 / MPEG-4 AVC格式。 它是根據(jù)GNU通用公共許可證條款發(fā)布的。

編譯

lame, fad-aac, x264的編譯其實很簡單,github上有現(xiàn)成的build shell, 但有些并非在機器上就能跑起來。所以針對一些錯誤,我對一些build shell做了少許改動,支持 x86_64, arm64e, arm64, armv7s, armv7架構(gòu)的編譯。

接下來我們就要開始編譯了,請先從這里下載編譯需要用的代碼、腳本和一些說明,下載后,直接進行編譯就行,省時省力。

Build lame

  1. 進入目錄 lame-3.100 , cd lame-3.100.
  2. 更改腳本文件的權(quán)限, sudo chmod 777 build-lame.sh.
  3. 運行腳本, ./build-lame.sh

你也可以參考腳本使用說明 lame shell 腳本使用說明.

Build fdk-aac

  1. 進入目錄 fdk-aac-2.0.0 , cd fdk-aac-2.0.0.
  2. 更改腳本文件的權(quán)限, sudo chmod 777 build-fdk-aac.sh.
  3. 運行腳本, ./build-fdk-aac.sh

你也可以參考腳本使用說明 fdk-aac shell 腳本使用說明.

Build x264

  1. 進入目錄 x264-20190809-2245 , cd x264-20190809-2245.
  2. 更改腳本文件的權(quán)限, sudo chmod 777 build-x264.sh.
  3. 運行腳本, ./build-x264.sh

你也可以參考腳本使用說明 x264 shell 腳本使用說明.

ffmpeg

一種完整的跨平臺解決方案,用于錄制,轉(zhuǎn)換和流式傳輸音頻和視頻。

Build ffmpeg

  1. 進入目錄 ffmpeg-4.2 , cd x264-20190809-2245.
  2. 更改腳本文件的權(quán)限, sudo chmod 777 build-ffmpeg.sh.
  3. 如果想讓ffmpeg使用x264, lame, fdk-aac的話,還請手動將之前編譯環(huán)節(jié)中產(chǎn)生的fat-x264, fat-lame, fat-fdk-aac三個文件夾復(fù)制到ffmpeg-4.2/external-libs下面。反之,你需要把X264, LAME, FDK_AACbuild-ffmpeg.sh中注釋掉.
  4. 運行腳本, ./build-ffmpeg.sh。
  5. 最后,你可以在fat-ffmpeg目錄下找到相關(guān)靜態(tài)庫。

你也可以參考腳本使用說明 ffmpeg shell 腳本使用說明.

編譯可能碰到的問題

  • No working C compiler found.
    可能是xcode路徑問題,終端輸入命令:
    sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer/

  • Found no assembler,Minimum version is nasm-x.x.x
    Found no assembler,Minimum version is yasm-x.x.x
    原因是沒有安裝yasm/nasm或yasm/nasm版本太低,需要重新安裝nasm/yasm。
    brew install nasmbrew install yasm.

  • 編譯i386遇到No working C compiler found
    有兩種解決辦法,任選一種就好:

    1. 可以直接將i386略過編譯,將i386從編譯腳本ARCHS="arm64 x86_64 i386 armv7 armv7s" 中刪除,然后重新編譯
    2. 在終端輸入./build-x264.sh arm64e arm64 x86_64 armv7s進行編譯。

參考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容