前言
FFmpeg的大名想必做過視頻播放的同學(xué)都聽過罪佳、用過却舀,很多著名的視頻播放庫都是基于它開發(fā)的虫几,運(yùn)用比較廣泛的有VLC、kxmovie挽拔、vitamio等辆脸。但是每個使用FFmpeg及其衍生類庫是都需要踩一個坑,那就是編譯FFmpeg螃诅。這里我們不推薦直接從github上直接clone啡氢、編譯,推薦使用一個比較牛逼的編譯腳本术裸,腳本下載地址:https://github.com/kewlbear/FFmpeg-iOS-build-script 倘是。
具體步驟
-
下載編譯腳本
git clone https://github.com/kewlbear/FFmpeg-iOS-build-script
下載下來之后是這個樣子
FFmpeg-iOS-build-script文件結(jié)構(gòu) 執(zhí)行編譯腳本
cd FFmpeg-iOS-build-script
./build-ffmpeg.sh
如下圖:
-
執(zhí)行后自動編譯
FFmpeg(這個腳本下下來的是最新的3.1.1)的源文件包并不算太大,整個文件夾也就55.9MB袭艺,但是文件個數(shù)非常之多搀崭,而且 由于要編譯armv7、armv7s猾编、arm64等眾多指令集使用的庫瘤睹,所以編譯時間比較長升敲,具體多久要看電腦性能。本人16G 的Mac Pro也需要將近10分鐘轰传。
編譯過程示例圖編譯成功顯示:
編譯成功由于編譯時會用到Xcode驴党,因此必須在OSX環(huán)境下進(jìn)行
編譯成功后我們文件結(jié)構(gòu)將變?yōu)椋?/p>
編譯成功后的目錄結(jié)構(gòu)
我們可以看到原先的目錄下多了三個文件夾,分別是FFmpeg-iOS获茬、ffmpeg-3.1.1港庄、scratch、thin锦茁,F(xiàn)Fmpeg-iOS是我們將要拖到項目里使用的文件夾攘轩,ffmpeg-3.1.1是FFmpeg的源碼,thin是各個arm指令集的lib码俩,他們相當(dāng)于是FFmpeg-iOS的一個拆分,你可以使用lipo命令將他們合并起來使用歼捏,最后一個scratch是做什么的稿存,本人沒有研究過,大家可以繼續(xù)研究瞳秽。
關(guān)于arm指令集
上面我們提到了指令集的概念瓣履,Apple的指令集有armv6、armv7练俐、armv7s袖迎、x86、i1386等等腺晾,這些事處理器的指令集燕锥,具體機(jī)型的對應(yīng)關(guān)系百度一下你就知道,這里不再贅述悯蝉。FFmpeg的編譯是可以修改支持的指令集的归形,在build-ffmpeg.sh腳本中有這個一句話:
ARCHS="arm64 armv7 x86_64 i386"
可以在這里進(jìn)行增減,保存退出鼻由,重新安裝前面的方法重新編譯即可暇榴。