很多直播项目播放视频流使用的都是
bilibili
的IJKPlayer
三方,其是基于FFPlayer
的封装,本文会简单的讲解如何集成IJKPlayer,仅做学习交流,非实际项目。有兴趣的可以在回复中进行交流,谢谢。
关于集成编码推流的三方请看这里。
一、下载IJKPlayer
附上GitHub下载地址。
这里我针对的是iOS平台,滚动到Build iOS
,根据提示操作:
1、 执行命令:git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios
,克隆下项目。
二、运行IJKPlayerDemo
1、 进入下载的ijkplayer-ios
文件夹,可以看到有对应的Demo
文件:
2、 继续根据GitHub
的IJKPlayer
首页的提示,执行./init-ios.sh
,下载FFMPEG
,这是一个比较耗时的操作,我们需要耐心等待。
3、执行完./init-ios.sh
,继续下一步,编译FFMEPG
,cd
目录到ios
目录下,执行命令:./compile-ffmpeg.sh clean
和 ./compile-ffmpeg.sh all
,这也是非常耗时的一个操作,继续耐心等待。
4、编译完后,可以看到文件多了许多。
5、此时在运行一次Demo,你会发现,这次就可以正常运行了。(但是bilibili给的Demo的直播流貌似都不能播了,我们可以网上自己找直播流测试,这种很多,这里推荐VLC播放器,可以直接播放直播的地址,便于我们的测试)。
三、集成IJKPlayer
1、有两种方式:一是把IJKPlayer
工程拖到我们的工程中集成;二是把IJKPlayer
打包成frameWork
。这里我们介绍第二种,只要把frameWork
集成进来就好了,比第一种方法方便多了。
2、这次我们不运行Demo
了,直接打开IJKMediaPlayer
,IJKMediaPlayer
是一个framework,选择Edit Scheme
,修改成Release
模式。我们需要运行生成一个供模拟器使用的版本和真机使用的版本。我们随便选择一个模拟器,Build
一下,就生成了一个模拟器使用的版本的framework:
该
Build
一个真机的framework了,我们选择Generic iOS Device
,Build
一下:3、此时我们拿到了真机和模拟器版本的framework,接下来我们就要合并模拟器和真机的framework,让我们后期用起来方便点。下图是我们真正需要合并的framework,在Bundle
里面。
在终端中输入命令
lipo -create "引号内使用拖动进来的真机framework生成的路径" "引号内使用拖动进来的模拟器framework生成的路径" -output "引号内为指定的合并后的路径/文件名"
,合并后如下:之后我们随便选择一个
Bundle
,把合并后的framework替换进去,可以单独取个路径保存这个Bundle
,因为这就是我们后期开发需要的framework。
4、到项目中导入依赖包,选择tager
->General
->Linked Frameworks and Libraries
,点击加号,开始添加framework。
5、添加所需的framework,需要依据IJKPlayer
在GitHub
首页上的提示进行操作:
6、至此,IJKPlayer
已经集成完毕,接下来我们只要参照IJKPlayer
给出的Demo去对应设计自己的IJKFFMoviePlayerController
类即可。
以上就是直播项目集成IJKPlayer
的基本步骤,我也只是学习,没有实际的直播项目经验,如果有什么不对的,或者可以改进的,望各位大神指教。