ijkplayer在Github上的地址为https://github.com/bilibili/ijkplayer.git
一、将ijkplayer下载到本地,并检索最新的分支
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios
cd ijkplayer-ios
git checkout -B latest k0.8.8
二、初始化配置
./init-ios.sh
正常情况,会在ijkplayer-ios/ios 目录下更新 ffmpeg-armv7、ffmpeg-arm64、ffmpeg-i386、ffmpeg-x86_64文件夹。
可能遇到的错误
fatal: 无法访问 'https://github.com/Bilibili/FFmpeg.git/':LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443
原因:git代理服务器出现问题
解决办法
1、查看代理
git config --global --list
2、复位代理
git config --global --unset http.https://github.com.proxy
git config --global --unset https.https://github.com.proxy
三、编译ffmpeg
cd ios
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
正常情况,会在ijkplayer-ios/ios 生成 build目录,并在build目录生成ffmpeg-armv7、ffmpeg-arm64、ffmpeg-i386、ffmpeg-x86_64、universal,这个对于的是.a 文件。
可能出现的错误
./libavutil/arm/asm.S:50:9: error: unknown directive
.arch armv7-a
原因:苹果弱化了32位的支持
解决办法 禁用汇编
在ios/tools/do.compile-ffmpeg.sh中,armv7中加上
--enable-pic --disable-asm
elif [ "$FF_ARCH" = "armv7" ]; then FF_BUILD_NAME="ffmpeg-armv7" FF_BUILD_NAME_OPENSSL=openssl-armv7 FF_XCRUN_OSVERSION="-miphoneos-version-min=9.0" FF_XCODE_BITCODE="-fembed-bitcode" FFMPEG_CFG_FLAGS_ARM="$FFMPEG_CFG_FLAGS_ARM --disable-asm" FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS $FFMPEG_CFG_FLAGS_ARM --enable-pic --disable-asm"
四、IJKMediaFramework
打开ios/IJKMediaDemo/IJKMediaDemo.xcodeproj 工程
正常情况下,就可以编译IJKMediaFramework,生成IJKMediaFramework.framework.