LAME簡介
LAME是目前非常優(yōu)秀的一種MP3編碼引擎,行業(yè)內(nèi),轉(zhuǎn)碼MP3格式的音頻文件時,LAME庫就是最常用的編碼器,當(dāng)達(dá)到320Kbit/s時,LAME編碼出來的音頻質(zhì)量幾乎可以和CD的音質(zhì)相媲美,并且還能保證整個音頻文件的體積非常小赴穗,因此若要在移動端平臺上編碼MP3文件,使用LAME便成為唯一的選擇膀息。
注意: 《音視頻開發(fā)進(jìn)階》書中用的是3.99.5版本的,
通過腳本,讓LAME支持iOS平臺
./configure \
--disable-shared \
--disable-frontend \
--host=arm-apple-darwin \
##這個是你文件存放的路徑(寫腳本時刪除這句話,把路徑設(shè)置為你的目標(biāo)路徑)
--prefix="/Users/pangrifu/Desktop/編程知識/音視頻進(jìn)階代碼/lame/thin/arm64" \
CC="xcrun -sdk iphoneos clang -arch arm64" \
CFLAGS="-arch arm64 -fembed-bitcode -miphoneos-version-min=7.0" \
LDFLAGS="-arch arm64 -fembed-bitcode -miphoneos-version-min=7.0"
make clean
make -j8
make install
conf igure : 是符合GNU標(biāo)準(zhǔn)的軟件包發(fā)布所必備的命令般眉,所以這里是通過configure的方式來生成Makef ile文件,然后使用make和makeinstall編譯和安裝整個庫潜支。可使用conf igure -h命令來查看一下conf igure的幫助文檔冗酿,了解LAME的可選配置項络断,具體如下项玛。
--prefix : 將編譯好的庫放在哪一個目錄下
--host : 指定最重要運(yùn)行的品臺
CC : 指定交叉工具編譯鏈的路徑
CFLAGS : 指定編譯時所帶的參數(shù)
實際操作
step1 下載LAME庫文件
step2 編寫腳本文件
關(guān)于如何創(chuàng)建腳本文件,請查看上一篇文章:Mac下建立.sh腳本文件
step3 目錄結(jié)構(gòu)
step4 生成.a文件
在終端中 cd 到lame-3.100
目錄下
cd /Users/pangrifu/Desktop/編程知識/音視頻進(jìn)階代碼/lame/lame-3.100
然后執(zhí)行命令sudo ../build_armv7.sh
稍计,提示輸入密碼,輸入密碼即可,
此時目錄下多了如下的文件:
同樣的步驟臣嚣,可以編譯arm64
下的版本,然后使用lipo -create
來合并靜態(tài)庫
注意,此處arm64是不帶v的,本人在編寫腳本的時候,多謝了一個v,導(dǎo)致出錯了好多次,檢查了很久才找到問題.
通過 lip -creat
指令合并arm64和armv7兩個.a文件
lipo -create ./arm64/lib/libmp3lame.a(第1個.a文件路徑) ./armv7/lib/libmp3lame.a(第2個.a文件路徑) -output libmp3lame.a(輸出文件)
合并之后淹父,使用file libmp3lame.a
來驗證怎虫,如果輸出如下的內(nèi)容,則說明編譯成功了:
libmp3lame.a: Mach-O universal binary with 2 architectures: [arm_v7:current ar archive random library] [arm64]
libmp3lame.a (for architecture armv7): current ar archive random library
libmp3lame.a (for architecture arm64): current ar archive random library