項(xiàng)目集成ijkplayer直播框架總結(jié)--下載、編譯、打包、集成

1、 下載

打開終端,在桌面新建一個(gè)文件夾,例如LiveStreaming

cd 到LiveStreaming中,依次執(zhí)行
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios
cd ijkplayer-ios
git checkout -B latest k0.8.8

  • ijkplayer是基于ffmpeg這個(gè)庫的,因此需要導(dǎo)入ffmpeg

同級(jí)路徑下執(zhí)行:
./init-ios.sh

執(zhí)行 ./init-ios.sh前

執(zhí)行 ./init-ios.sh后

  • 支持https(可選)

如果不需要支持,可不進(jìn)行這一步

獲取 openssl 并初始化
./init-ios-openssl.sh
cd ios
在模塊文件中添加一行配置 以啟用 openssl 組件
echo 'export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-openssl"' >> ../config/module.sh

2、編譯

cd到次級(jí)目錄ios下,先執(zhí)行

./compile-ffmpeg.sh clean

如果設(shè)置了支持https,則

先執(zhí)行,編譯openssl
./compile-openssl.sh all
再執(zhí)行,編譯ffmpeg
./compile-ffmpeg.sh all

如果沒有設(shè)置https,則只需

編譯ffmpeg
./compile-ffmpeg.sh all

這里可能會(huì)報(bào)錯(cuò)
./libavutil/arm/asm.S:50:9: error: unknown directive

        .arch armv7-a

        ^
解決方案:

打開如圖

第24行改為:FF_ALL_ARCHS_IOS8_SDK="arm64 i386 x86_64"
第120行改為:if [ "$FF_TARGET" = "armv7s" -o "$FF_TARGET" = "arm64" ]; then
第159行改為:echo "  compile-ffmpeg.sh arm64|i386|x86_64"
運(yùn)行完成后如圖

3、打包(制作靜態(tài)庫)

打開項(xiàng)目IJKMediaPlayer,要把這個(gè)做成靜態(tài)庫

  • 如果做了支持https設(shè)置,則進(jìn)行下一步

點(diǎn)擊上圖加號(hào)

成功添加ibcrypto.a 和 libssl.a 文件。
  • 打包真機(jī)和模擬器兩個(gè)版本

1、如果進(jìn)行了https設(shè)置,則需要?jiǎng)h除armv7
2、分別選擇真機(jī)和模擬器,進(jìn)行編譯(command+b)
3、合并兩個(gè)framework

打開終端

cd到Products路徑下

執(zhí)行
lipo -create Release-iphoneos/IJKMediaFramework.framework/IJKMediaFramework Release-iphonesimulator/IJKMediaFramework.framework/IJKMediaFramework -output IJKMediaFramework

得到合并后的framework

替換合并后的framework替換真機(jī)目錄下的,可按下圖進(jìn)行直接覆蓋

4、保存最終得到的IJKMediaFramework.framework(真機(jī)編譯目錄下的)

4、集成IJKMediaFramework.framework到自己項(xiàng)目

  • 簡單粗暴的方法:

直接復(fù)制IJKMediaFramework.framework,然后拷貝到自己項(xiàng)目的根目錄下

  • 添加相關(guān)依賴,如下圖
  • 下面三個(gè)一定要添加,不然報(bào)錯(cuò)

command+shift+g,彈出

輸入:/usr/lib 進(jìn)入

到這里,就已經(jīng)完成集成,項(xiàng)目可成功運(yùn)行。

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

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