注册

iOS-ijkplayer集成

ijkplayer是bibiliB站开源的一个三方,封装好了ffmpeg,可以去面向对象去开发。

苹果提供了:AVPlayer播放不了直播文件。需要自己去基于ffmpeg播放。

1.搜索查找ijkplayer

a8897fb38244b92ae41ad91b3b3604c2.png

1ce2cafe7e70cb53d51a50fd741caab9.png

3d36f713cb65b95e20d30bafd7c4ddca.png

c56bf0c501fe1a9451dac5c30a34627f.png

2.克隆ijkplayer到桌面

cd Desktop/
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios

d034686442379ae94507837528cb0e25.png

210bf76d5acb6df94f3c513a66fa6c5c.png

3.下载ffmpeg

78462b0945c5356481e151ab52858141.png

4.编译ffmpeg

660d79acaa564af9ef2dfd8a362005cf.png

编译很多情况,64位、32位

a858fec7865a04aaeca95875a478c962.png

ps: 如果提示错误:

./libavutil/arm/asm.S:50:9: error: unknown directive
.arch armv7-a
^
make: *** [libavcodec/arm/aacpsdsp_neon.o] Error 1
最新的 Xcode 已经弱化了对 32 位的支持, 解决方法:
在 compile-ffmpeg.sh 中删除 armv7 , 修改如:
FF_ALL_ARCHS_IOS8_SDK="arm64 i386 x86_64"
再重新执行出现错误的命令: ./compile-ffmpeg.sh all

5.打包framwork并合并

大家会发现除了IJKMediaFramework这个目标,还有一个叫IJKMediaFrameworkWithSSL,但是不推荐使用这个,因为大部分基于ijkplayer的第三方框架都是使用的前者,你把后者导入项目还是会报找不到包的错误,就算你要支持https也推荐使用前者,然后按照上一步添加openssl即可支持

5.1,配置释放模式如下图

0ff8ea94a8f266f97a07a7983563c5c2.png

ae39aa86614c1548966182eaaa6c510b.png

5.2,打包真机框架

54a3f7b06a5e317f3f2ecba3c2f23af6.png

如图操作,然后按键命令+ B编译即可

如果之前的步骤删除了compile-ffmpeg.sh中armv7,这里会报错,我们直接注释掉就好

aa99b74bc20720109cbcb714c8990974.png

用Xcode9可以找到这个 ,但是用Xcode10找不到这个 我只能用Xcode注释完,在用Xcode10编译就没问题了

5.3,打包模拟器 framework

681e89f92ad7e93755476a1abc643ef5.png

如图操作,然后命令+ B编译即可

5.4,合并框架
如果只需要真机运行或者模拟器运行,可以不用合并,直接找到对应的框架导入项目即可; 一般我们为了方便会合并框架,这样就同时支持模拟器和真机运行。
先找到生成框架的目录:

ee3e20f2888d13efa89c1c7409e0473c.png

638d96e43cdbd545673e838dfae646f5.png

准备合并:

打开终端, 先 cd 到 Products 目录下
然后执行: lipo -create 真机framework路径 模拟器framework路径 -output 合并的文件路径

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

合并完成:
可以看到这里生成了一个大概两倍大小的文件, 将生成的 IJKMediaFramework 文件替换掉 真机framework 中的 IJKMediaFramework 文件,然后这个替换掉文件的 真机framework 就是我们需要的 通用的framework 了。

6eddc201eff24335c2f388e9fa6a2999.png

e3b418dc5bfff833d58a7071bade002a.png

6.集成 framework 到项目中

1、导入 framework

直接将 IJKMediaFramework.framework 拖入到工程中即可
注意记得勾选 Copy items if needed 和 对应的 target

2、添加下列依赖到工程

170651c8e172cd02167d0d149b85eacc.png

【参考文章】:
1、ijkplayer 的编译、打包 framework 和 https 支持
2、armv7 armv7s arm64
3、iOS IJKPlayer项目集成(支持RTSP)
4、可用rtmp直播源

链接:https://www.jianshu.com/p/9a69af13835e

0 个评论

要回复文章请先登录注册