很多直播项目播放视频流使用的都是
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的基本步骤,我也只是学习,没有实际的直播项目经验,如果有什么不对的,或者可以改进的,望各位大神指教。