ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install git
brew install yasm
#在桌面建立一个ijkplayer的文件夹 cd ~/Desktop mkdir ijkplayer cd ijkplayer #clone git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios # 进入源码目录 cd ijkplayer-ios #切换成最新的分支(当前为k0.8.8,许久未更新了) git checkout -B latest k0.8.8复制代码
根据本身的须要进行配置,本文选用最多的编解码器支持module-default.shphp
cd config #移除 module.sh rm module.sh #创建软连接,可自行根据须要进行修改 ln -s module-default.sh module.sh cd .. cd ios sh compile-ffmpeg.sh clean复制代码
cd .. #注意点:若是须要支持armv7s架构,则修改init-ios.sh中FF_ALL_ARCHS=$FF_ALL_ARCHS_IOS7_SDK ./init-ios.sh 复制代码
./init-ios-openssl.sh cd ios # 在模块文件中添加一行配置 以启用 openssl 组件 echo 'export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-openssl"' >> ../config/module.sh(也能够自行添加) ./compile-ffmpeg.sh clean复制代码
#编译openssl ./compile-openssl.sh all #编译ffmpeg ./compile-ffmpeg.sh all复制代码
若是出现以下错误
ios
./libavutil/arm/asm.S:50:9: error: unknown directive .arch armv7-a ^复制代码
若是你的应用不须要支持armv7架构,则能够在compile-ffmpeg.sh
中删除,修改成
git
FF_ALL_ARCHS_IOS8_SDK="arm64 i386 x86_64"复制代码
若是须要armv7以及armv7s等架构支持,则须要下载旧版本的Xcode,选择Xcode9.1进行下载,完成后再终端执行sudo xcode-select -s /Applications/Xcode9.1.app/Contents/Developer
github
而后修改compile-ffmpeg.sh
脚本 FF_ALL_ARCHS=$FF_ALL_ARCHS_IOS7_SDK
xcode
而后执行./compile-ffmpeg.sh all
ruby
打开IJKMediaPlayer.xcodeproj,若是须要https支持,则将ios/build/universal
目录下生成的libcrypto.a
以及libssl.a
拖入Target "IJKMediaFramework", 而后在Build Settings
里添加User-Defined BITCODE_GENERATION_MODE=bitcode
,而后进行编译生成framework
bash
以前怕openssl
不支持bitcode
致使ijkplayer
没法支持bitcode
,特地找了个支持bitcode的ssl
markdown
查看framework
是否支持bitcode
的方式
架构
otool -l IJKMediaFramework.framework/IJKMediaFramework #而后在终端搜索bitcode,若是有结果且size不为0x0000000000000001,则为支持 #若是framework已合并。需使用下面的方法 otool -arch arm64 -l IJKMediaFramework.framework/IJKMediaFramework复制代码
查看支持的架构
app
lipo -info IJKMediaFramework.framework/IJKMediaFramework复制代码