ijk 集成過程

1. 獲取 ijkplayer 源碼

cd 到自己想要保存的文件中,執行一下命令

git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios
cd ijkplayer-ios
git checkout -B latest k0.8.8

2. 獲取 ffmpeg 并初始化

此過程需要從網上拉取ffmpeg,需要花些時間

執行腳本獲取 ffmpeg ,輸入一下命令

cd ..
./init-ios.sh

3. 添加 https 支持

獲取 openssl 并初始化

./init-ios-openssl.sh

cd ios

在模塊文件中添加一行配置 以啟用 openssl 組件

echo 'export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-openssl"' >> ../config/module.sh

./compile-ffmpeg.sh clean

4. 編譯 ffmpeg

編譯openssl, 如果不需要https可以跳過這一步

./compile-openssl.sh all

編譯ffmpeg

./compile-ffmpeg.sh all

如果編譯ffmpeg提示如下錯誤:


./libavutil/arm/asm.S:50:9: error: unknown directive

        .arch armv7-a

        ^

make: *** [libavcodec/arm/aacpsdsp_neon.o] Error 1

最新的 Xcode 環境中iOS SDK最低支持從iOS 8.0開始了,弱化了對 32 位iOS系統的支持,解決方法:

在compile-ffmpeg.sh中刪除armv7, 修改如:

FF_ALL_ARCHS_IOS8_SDK="arm64 i386 x86_64"

再重新執行出現錯誤的命令:

./compile-ffmpeg.sh all

5. 打開IJKMediaPlayer項目

選擇 Targets ——> IJKMediaFrameworkWithSSL ——> General ——> Linked Frameworks and Libraries ,選擇 Add Other... , 然后在 ijkplayer-ios 目錄下(也可能是別的名字)的 ios —— build —— universal —— lib 中,選中 libcrypto.a 和 libssl.a 文件,添加進去

6. 打包 framework

1)選擇 Xcode 上方導航欄中的 Product ——> Scheme ——> Edit Scheme..., 打開后選擇 Run ——> Info ——> Build Configuration,將 Debug 改為 Release。
如圖:

2)Cmd + b 直接運行,會報錯 avconfig.h 文件找不到,這時候去一下路徑找到 avconfig.h 文件,如:

~/Desktop/ijkplayer-ios/ios/build/universal/include/libavutil

打開 avconfig.h ,注釋掉

include "armv7/avconfig.h"

2546763-df6c38d042d912fa.png

Cmd + b 再運行,又報錯 config.h 文件找不到,去

~/Desktop/ijkplayer-ios/ios/build/universal/include/libffmpeg
中打開 config.h , 同上注釋掉

include "armv7/avconfig.h"

7.合并框架

打開終端, 先 cd 到 Products 目錄下

然后執行: lipo -create 真機framework路徑 模擬器framework路徑 -output 合并的文件路徑


lipo -create Release-iphoneos/IJKMediaFramework.framework/IJKMediaFramework Release-iphonesimulator/IJKMediaFramework.framework/IJKMediaFramework -output IJKMediaFramework

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容