ijkplayer iOS項(xiàng)目集成記錄

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)建一個(gè)空文件夾存放下載的ijkplayer源碼

//進(jìn)入桌面目錄

cd ./Desktop

//創(chuàng)建文件夾

mkdir ijk_download

//進(jìn)入文件夾

cd ./ijk_download

2.將ijkplayer源碼克隆到本地文件夾中

//克隆源碼需要一段時(shí)間……

git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios

//等下載完成后,進(jìn)入ijkplayer_ios目錄下

cd ijkplayer-ios

//切換到新分支

git checkout -B latest k0.8.8

效果一覽:

克隆ijkplayer源碼

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

又是一段漫長(zhǎng)的下載等待……

下載完成之后在目錄中已經(jīng)生成FFmpeg


ffmpeg下載完成


5.添加https支持

//獲取openssl并初始化

./init-ios-openssl.sh


openssl相關(guān)組件下載完成

cd ios

//添加一行配置開啟openssl組件

echo 'export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-openssl"' >> ../config/module.sh

//刪除一些文件和文件夾;在執(zhí)行compile-ffmpeg.sh的時(shí)候會(huì)自動(dòng)創(chuàng)建剛剛刪除的文件,避免文件名沖突

./compile-ffmpeg.sh clean


三、編譯

//進(jìn)入ios目錄

cd ios


./compile-ffmpeg.sh clean


清理完成

//編譯openssl,如果不需要支持HTTPS可以跳過

./compile-openssl.sh all

操作完成后會(huì)生成這兩個(gè)庫(kù)

生成兩個(gè)庫(kù)

//編譯ffmpeg,生成通用庫(kù)

./compile-ffmpeg.sh all

此時(shí)如果出現(xiàn)錯(cuò)誤提示


錯(cuò)誤提示

感謝http://m.itdecent.cn/p/9743a68c2939提供的解決方法:

修改compile-ffmpeg.sh腳本文件

修改該文件

刪除armv7,修改如下:

FF_ALL_ARCHS_IOS8_SDK="arm64 i386 x86_64"

刪除后記得保存修改,再執(zhí)行

./compile-ffmpeg.sh all

又經(jīng)過漫長(zhǎng)的等待,正確的編譯結(jié)果

正確編譯結(jié)果

四、打包framework

打開IJKMediaPlayer這個(gè)工程


打開該工程

選擇IJKMediaFramework,推薦使用這個(gè),大部分基于ijkplayer的框架都是使用IJKMediaFramework,即使要支持HTTPS也推薦使用后者,按照上面步驟添加openssl支持就可以


選擇Release,點(diǎn)擊close

添加依賴庫(kù)

此時(shí)編譯是會(huì)報(bào)錯(cuò),因?yàn)橹安襟E刪除了compile-ffmpeg.sh中的armv7,把這句注釋即可

分別以模擬器和真機(jī)編譯


編譯完成后選擇


可以在目錄中看到模擬器和真機(jī)兩個(gè)版本的編譯結(jié)果:


進(jìn)入到Products目錄下

//合并

//lipo -create 真機(jī)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文件替換掉真機(jī)目錄下的IJKMediaFramework,這個(gè)替換過的文件就是最終的通用framework



提供集成好的庫(kù)鏈接: https://pan.baidu.com/s/1TK9xnCsAnFBZkfZFMGWLhA 密碼: mb58

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容