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複製代碼