簡(jiǎn)介
做音視頻開(kāi)發(fā)悲立,除了平臺(tái)提供的SDK外冯遂,我們經(jīng)常會(huì)用到一些優(yōu)秀的第三方開(kāi)源庫(kù),這里我們將介紹下lame, fad-aac, x264的編譯及使用薪铜。
lame
目前,LAME被認(rèn)為是中高比特率和VBR的最佳MP3編碼器恩溅,主要得益于其開(kāi)發(fā)人員的專(zhuān)注工作和開(kāi)源許可模式隔箍,使該項(xiàng)目能夠利用來(lái)自世界各地的工程資源。 質(zhì)量和速度的提升仍在繼續(xù)脚乡,可能使LAME成為唯一仍在積極開(kāi)發(fā)的MP3編碼器蜒滩。
fdk-aac
Fraunhofer FDK AAC是由Fraunhofer IIS開(kāi)發(fā)的高質(zhì)量開(kāi)源AAC編碼器庫(kù)。 它是針對(duì)Android正式發(fā)布的奶稠,但已被移植到其他平臺(tái)俯艰。 Winamp中包含的許可Fraunhofer AAC編解碼器(通常稱(chēng)為FhG AAC)與FDK AAC編解碼器不同。FDK AAC是一個(gè)目前效率很高的aac編解碼庫(kù)锌订。
x264
x264是一個(gè)免費(fèi)的開(kāi)源軟件庫(kù)和VideoLAN開(kāi)發(fā)的命令行實(shí)用程序蟆炊,用于將視頻流編碼為H.264 / MPEG-4 AVC格式。 它是根據(jù)GNU通用公共許可證條款發(fā)布的瀑志。
編譯
lame, fad-aac, x264的編譯其實(shí)很簡(jiǎn)單涩搓,github上有現(xiàn)成的build shell, 但有些并非在機(jī)器上就能跑起來(lái)污秆。所以針對(duì)一些錯(cuò)誤,我對(duì)一些build shell做了少許改動(dòng)昧甘,支持 x86_64, arm64e, arm64, armv7s, armv7架構(gòu)的編譯良拼。
接下來(lái)我們就要開(kāi)始編譯了,請(qǐng)先從這里下載編譯需要用的代碼充边、腳本和一些說(shuō)明庸推,下載后,直接進(jìn)行編譯就行浇冰,省時(shí)省力贬媒。
Build lame
- 進(jìn)入目錄 lame-3.100 ,
cd lame-3.100
. - 更改腳本文件的權(quán)限,
sudo chmod 777 build-lame.sh
. - 運(yùn)行腳本,
./build-lame.sh
你也可以參考腳本使用說(shuō)明 lame shell 腳本使用說(shuō)明.
Build fdk-aac
- 進(jìn)入目錄 fdk-aac-2.0.0 ,
cd fdk-aac-2.0.0
. - 更改腳本文件的權(quán)限,
sudo chmod 777 build-fdk-aac.sh
. - 運(yùn)行腳本,
./build-fdk-aac.sh
你也可以參考腳本使用說(shuō)明 fdk-aac shell 腳本使用說(shuō)明.
Build x264
- 進(jìn)入目錄 x264-20190809-2245 ,
cd x264-20190809-2245
. - 更改腳本文件的權(quán)限,
sudo chmod 777 build-x264.sh
. - 運(yùn)行腳本,
./build-x264.sh
你也可以參考腳本使用說(shuō)明 x264 shell 腳本使用說(shuō)明.
ffmpeg
一種完整的跨平臺(tái)解決方案,用于錄制肘习,轉(zhuǎn)換和流式傳輸音頻和視頻际乘。
Build ffmpeg
- 進(jìn)入目錄
ffmpeg-4.2
,cd x264-20190809-2245
. - 更改腳本文件的權(quán)限,
sudo chmod 777 build-ffmpeg.sh
. - 如果想讓ffmpeg使用
x264, lame, fdk-aac
的話,還請(qǐng)手動(dòng)將之前編譯環(huán)節(jié)中產(chǎn)生的fat-x264, fat-lame, fat-fdk-aac
三個(gè)文件夾復(fù)制到ffmpeg-4.2/external-libs
下面漂佩。反之脖含,你需要把X264, LAME, FDK_AAC
從build-ffmpeg.sh
中注釋掉. - 運(yùn)行腳本,
./build-ffmpeg.sh
。 - 最后投蝉,你可以在
fat-ffmpeg
目錄下找到相關(guān)靜態(tài)庫(kù)养葵。
你也可以參考腳本使用說(shuō)明 ffmpeg shell 腳本使用說(shuō)明.
編譯可能碰到的問(wèn)題
No working C compiler found.
可能是xcode路徑問(wèn)題,終端輸入命令:
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
原因是沒(méi)有安裝yasm/nasm或yasm/nasm版本太低瘩缆,需要重新安裝nasm/yasm关拒。
brew install nasm
或brew install yasm
.-
編譯i386遇到
No working C compiler found
有兩種解決辦法,任選一種就好:- 可以直接將i386略過(guò)編譯庸娱,將
i386
從編譯腳本ARCHS="arm64 x86_64 i386 armv7 armv7s" 中刪除夏醉,然后重新編譯 - 在終端輸入
./build-x264.sh arm64e arm64 x86_64 armv7s
進(jìn)行編譯。
- 可以直接將i386略過(guò)編譯庸娱,將