项目集成ijkplayer直播框架总结--下载、编译、打包、集成

1、 下载

打开终端,在桌面新建一个文件夹,例如LiveStreaming

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

  • ijkplayer是基于ffmpeg这个库的,因此需要导入ffmpeg

同级路径下执行:
./init-ios.sh

执行 ./init-ios.sh前

执行 ./init-ios.sh后

  • 支持https(可选)

如果不需要支持,可不进行这一步

获取 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到次级目录ios下,先执行

./compile-ffmpeg.sh clean

如果设置了支持https,则

先执行,编译openssl
./compile-openssl.sh all
再执行,编译ffmpeg
./compile-ffmpeg.sh all

如果没有设置https,则只需

编译ffmpeg
./compile-ffmpeg.sh all

这里可能会报错
./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"
运行完成后如图

3、打包(制作静态库)

打开项目IJKMediaPlayer,要把这个做成静态库

  • 如果做了支持https设置,则进行下一步

点击上图加号

成功添加ibcrypto.a 和 libssl.a 文件。
  • 打包真机和模拟器两个版本

1、如果进行了https设置,则需要删除armv7
2、分别选择真机和模拟器,进行编译(command+b)
3、合并两个framework

打开终端

cd到Products路径下

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

得到合并后的framework

替换合并后的framework替换真机目录下的,可按下图进行直接覆盖

4、保存最终得到的IJKMediaFramework.framework(真机编译目录下的)

4、集成IJKMediaFramework.framework到自己项目

  • 简单粗暴的方法:

直接复制IJKMediaFramework.framework,然后拷贝到自己项目的根目录下

  • 添加相关依赖,如下图
  • 下面三个一定要添加,不然报错

command+shift+g,弹出

输入:/usr/lib 进入

到这里,就已经完成集成,项目可成功运行。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容