ijkplayer是B站开源的一款视频直播框架,它是基于ffmpeg的。美拍和斗鱼都使用到了 ijkplayer 项目。ijkplayer 实现了跨平台功能,支持 Android 和 iOS 双平台;API 易于集成;编译配置可裁剪,方便控制安装包大小;支持 硬件加速解码,更加省电。 个人是做iOS开发的,最近正在学习ijkplayer框架,故在这里详细讲一下如何在iOS项目中集成ijkplayer。

一、下载ijkplayer框架

ijkplayer项目地址:https://github.com/Bilibili/ijkplayer

下载完成后解压,解压后文件目录如下: image

二、编译ijkplayer

1、首先需要配置编译环境,需要安装homebrewgit,yasm(需先安装ruby环境)

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"  
brew install git  
brew install yasm

2、开始编译ijkplayer(本质上是对ffmpeg的编译)

cd ijkplayer-master  
./init-ios.sh

cd ios  
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all

(1)通过终端进入ijkplayer-master文件夹

(2)执行命令行./init-iOS.sh(该命令是去下载ffmpeg,时间比较长)

(3)步骤2执行完毕后,进入到ijkplayer-master文件夹下的ios目录

(4)通过终端在ios目录下,依次执行./compile-ffmpeg.sh clean 和 ./compile-ffmpeg.sh all命令行来编译ffmpeg(编译时间较长,耐心等待即可)

三、打包IJKMediaFramework框架

ijkplayer框架已经编译完成,现在到了使用阶段了。若想使用ijkplayer,则需要把该框架集成到要使用的项目中。 现在有两种集成方法可供选择:

1、直接在项目中导入IJKMediaPlayer.xcodeproj即可,这种方法比较简单,不再赘述。 
2、将ijkplayer打包成framework的格式,将打包后的IJKMediaFramework.framework导入项目中即可使用。

(1)

image

(2) 设置Scheme

image

(3) 将Scheme设置好后,分别在模拟器和真机环境下进行编译

image

(4) 编译完成后,进行如下操作:

image

image

(5) 通过终端执行命令行来合并文件

lipo -create "真机IJKMediaFramework文件路径" "模拟器IJKMediaFramework文件路径" -output "合并后的IJKMediaFramework文件路径"  

image

(6) 现在到了打包的最后一步,将原来真机编译文件目录下的IJKMediaFramework文件替换为合并后的IJKMediaFramework文件

image

到此,ijkplayer已经打包完毕。

四、集成ijkplayer

将打包好的IJKMediaFramework.framework文件导入到需要使用的项目中,并为其添加相关依赖框架。

image

在需要的文件中引用IJKMediaFramework.h就可以使用了

#import <IJKMediaFramework/IJKMediaFramework.h>

这是打包好的IJKMediaFramework文件,有需要的同学可以下载。