ijk 集成过程

2021-12-22  本文已影响0人  雪月965

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

上一篇下一篇

猜你喜欢

热点阅读