編譯iOS版 IJKplayer

? 目標(biāo)版本:ffmpeg 4.0 不支持https,支持最多的解碼格式,不支持armv7,多路碼流時默認(rèn)先播放h265(官方先播h264)

? framwork下載地址:鏈接:https://pan.baidu.com/s/15Y_imq5aIdyiQ7b62sOG-Q 密碼:16gy

?編譯步驟

1.克隆倉庫到指定位置并重命名為比如桌面上的 ijkplayer-ios 文件夾

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

2. 然后進入文件夾ijkplayer-ios

? ? cd ijkplayer-ios

3.新建分支latest并切換到新建的分支上

? ? git checkout -B latest k0.8.8

(可查看ijkplayer最新的release版本

4.打開ijkplayer-ios/init-ios.sh文件,將最新ffmpeg版本更新到文件中

IJK_FFMPEG_UPSTREAM=https://github.com/Bilibili/FFmpeg.git

IJK_FFMPEG_FORK=https://github.com/Bilibili/FFmpeg.git

// 這一句已修改到ffmpeg4.0最新realease

IJK_FFMPEG_COMMIT=ff4.0--ijk0.8.8--20201130--001

5.配置編解碼器格式支持

? ? cd config

? ? rm module.sh

? ?ln -s module-lite-hevc.sh module.sh

6. 如果你選擇了ff4.0xxx版本,在module.sh鏈接的對象中,需要將--disable-ffserver取消,因為ffserver在ffmpeg3.4版本被移除

...exportCOMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-programs"

exportCOMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-ffmpeg"

exportCOMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-ffplay"

exportCOMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-ffprobe"

#exportCOMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-ffserver"...

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-bsf=eac3_core"

exportCOMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-dxva2"

exportCOMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-vaapi"

#exportCOMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-vda"

exportCOMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-vdpau"...

7.?videotoolbox是ios8.0引入的模塊,如果編譯時最低支持到ios7,編譯腳本ijkplayer-ios/ios/tools/do-compile-ffmpeg.sh,將ios最低版本限制在9.0 (搜索"version"關(guān)鍵字修改)

8. 如果希望兼容armv7和armv7s,下載xcode9.1或以下版本,執(zhí)行命令:

? ? sudo xcode-select -s /Applications/Xcode9.1.app/Contents/Developer

9. ?去掉./init-ios.sh 和ijkplayer-ios/iOS/compile-ffmpeg.sh 中的armv7,armv7s

10.下載ffmpeg

? ? ?./init-ios.sh

11.編譯

?cd iOS

./compile-ffmpeg.sh clean

./compile-ffmpeg.sh all

12.打包IJKMediaFramework

13 參考連接:?解決ijkplayer在iOS H265硬解碼失敗

? ? ? ? ? ? ? ? ? ? ? ?解決ijkplayer多路碼流時默認(rèn)播放大碼流h265

? ? ? ? ? ? ? ? ? ? ? ?https://github.com/bilibili/ijkplayer/issues/2874

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容