ios拉流软件_iOS 拉流使用 IJKPlayer 的集成

最近侯哥换了工作,下个项目用到直播的功能。虽然侯哥之前的工作是在某直播平台做iOS 端开发,但只做过前端页面相关内容,推流拉流都是引擎组封装好的库文件,直接使用即可。这两天研究了下推拉流,决定拉流使用 IJKPlayer,本文记录一下集成过程以及遇到的问题。

首先下载ijkplayer

下载下来之后,解压

编译ijkplayer

在解压后的文件 ijkplayer-master 中的 README 中可以看到,编译需要相关环境。我的电脑上已经安装了 homebrew,git,可以使用一下代码检测:

brew -v

git --version

还需要安装 yasm

brew install yasm

开始编译

cd 到 ijkplayer-master 文件夹中,执行  ./init-ios.sh

等待执行完毕后,cd 到 ios 目录中,在终端依次执行./compile-ffmpeg.sh clean和 ./compile-ffmpeg.sh all命令

此时遇到了第一个问题:

xcurun sdk iphonos clang is unable to create an executable file c compiler test failed

解决:因为装过多个xcode 版本,是xcode 的路径问题,修改一下

sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer

3. 重新执行./compile-ffmpeg.sh clean和 ./compile-ffmpeg.sh all命令

遇到了第二个问题:

error: unknown directive   .arch armv7-a

解决:这是因为新版本的 xcode,弱化了对 armv7 的支持导致的,使用文本工具打开 compile-ffmpeg.sh

这里将 armv7 去掉,重新执行./compile-ffmpeg.sh clean和 ./compile-ffmpeg.sh all命令。耐心等待后,终于完成。

因为去掉了 armv7,之后集成到项目中也不能对 armv7 进行支持,所以项目中架构也得去掉 armv7。iPhone 5s及以上都是64位的ARM CPU了,影响不大。

打包IJKMediaFramework.framework

打开工程 IJKMediaPlayer.xcodeproj

首先调整 editScheme 中,Run 改为 release;

然后选择项目 IJKMediaFramework,分别编译模拟器和真机;

找到路径,终端合成,lipo -create "真机路径" "模拟器路径" -output "合成后的路径"

这里遇到了问题三:

can't map input file: IJKMediaFramework.framework

解决:因为命令需要的参数是 IJKMediaFramework.framework/IJKMediaFramework

5.        最后, 将新生成的 IJKMediaFramework.framework 中的 IJKMediaFramework 拖到 Release-iphoneos/IJKMediaFramework.framework 中,替换原来的。

集成到项目中

Release-iphoneos/IJKMediaFramework.framework 这个就是我们所需要的,集成到工程中,添加依赖库,编译通过。

依赖库如下:

参考文章:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值