目标版本:ffmpeg 4.0 不支持https,支持最多的解码格式,不支持armv7,多路码流时默认先播放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"关键字修改)
8. 如果希望兼容armv7和armv7s,下载xcode9.1或以下版本,执行命令:
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硬解码失败