? 目標(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
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