ijkplayer下載地址:https://github.com/Bilibili/ijkplayer
一、準(zhǔn)備工作
在終端安裝homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
homebrew安裝完成后分別安裝git
brew install git
和yasm
brew install yasm
二部翘、下載ijkplayer源碼
1.先在桌面創(chuàng)建一個空文件夾存放下載的ijkplayer源碼
//進(jìn)入桌面目錄
cd ./Desktop
//創(chuàng)建文件夾
mkdir ijk_download
//進(jìn)入文件夾
cd ./ijk_download
2.將ijkplayer源碼克隆到本地文件夾中
//克隆源碼需要一段時間……
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios
//等下載完成后硝训,進(jìn)入ijkplayer_ios目錄下
cd ijkplayer-ios
//切換到新分支
git checkout -B latest k0.8.8
效果一覽:
3.選擇編解碼器格式
默認(rèn)是最少支持,其他配置有如下
module-default.sh 更多的編解碼器新思、格式
module-lite-hevc.sh 較少的編解碼器窖梁、格式(包括hevc)
module-lite.sh 較少的編解碼器、格式(默認(rèn))
//進(jìn)入config
cd config
//刪除當(dāng)前module.sh文件
rm module.sh
//根據(jù)需要替換為 module-default.sh , module-lite-hevc.sh , module-lite.sh
//創(chuàng)建軟鏈接module.sh指向module-default.sh
ln -s module-default.sh module.sh
cd ..
cd ios
sh compile-ffmpeg.sh clean
4.執(zhí)行init-ios.sh腳本文件下載FFmpeg源碼
cd ..
./init-ios.sh
又是一段漫長的下載等待……
下載完成之后在目錄中已經(jīng)生成FFmpeg
5.添加https支持
//獲取openssl并初始化
./init-ios-openssl.sh
cd ios
//添加一行配置開啟openssl組件
echo 'export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-openssl"' >> ../config/module.sh
//刪除一些文件和文件夾夹囚;在執(zhí)行compile-ffmpeg.sh的時候會自動創(chuàng)建剛剛刪除的文件纵刘,避免文件名沖突
./compile-ffmpeg.sh clean
三、編譯
//進(jìn)入ios目錄
cd ios
./compile-ffmpeg.sh clean
//編譯openssl荸哟,如果不需要支持HTTPS可以跳過
./compile-openssl.sh all
操作完成后會生成這兩個庫
//編譯ffmpeg假哎,生成通用庫
./compile-ffmpeg.sh all
此時如果出現(xiàn)錯誤提示
感謝http://www.reibang.com/p/9743a68c2939提供的解決方法:
修改compile-ffmpeg.sh腳本文件
刪除armv7,修改如下:
FF_ALL_ARCHS_IOS8_SDK="arm64 i386 x86_64"
刪除后記得保存修改鞍历,再執(zhí)行
./compile-ffmpeg.sh all
又經(jīng)過漫長的等待舵抹,正確的編譯結(jié)果
四、打包framework
打開IJKMediaPlayer這個工程
選擇IJKMediaFramework,推薦使用這個堰燎,大部分基于ijkplayer的框架都是使用IJKMediaFramework掏父,即使要支持HTTPS也推薦使用后者,按照上面步驟添加openssl支持就可以
選擇Release秆剪,點擊close
添加依賴庫
此時編譯是會報錯赊淑,因為之前步驟刪除了compile-ffmpeg.sh中的armv7爵政,把這句注釋即可
分別以模擬器和真機編譯
編譯完成后選擇
可以在目錄中看到模擬器和真機兩個版本的編譯結(jié)果:
進(jìn)入到Products目錄下
//合并
//lipo -create 真機framework路徑 模擬器framework路徑 -output 合并的文件路徑
lipo -create /Users/zhurui/Library/Developer/Xcode/DerivedData/IJKMediaPlayer-dhbywfajroxzoxbigxvuxvlzqrbw/Build/Products/Release-iphoneos/IJKMediaFramework.framework/IJKMediaFramework /Users/zhurui/Library/Developer/Xcode/DerivedData/IJKMediaPlayer-dhbywfajroxzoxbigxvuxvlzqrbw/Build/Products/Release-iphonesimulator/IJKMediaFramework.framework/IJKMediaFramework -output IJKMediaFramework
將生成的IJKMediaFramework文件替換掉真機目錄下的IJKMediaFramework,這個替換過的文件就是最終的通用framework
提供集成好的庫鏈接: https://pan.baidu.com/s/1TK9xnCsAnFBZkfZFMGWLhA 密碼: mb58