前言
我这里已经处理了怕麻烦的话直接用我编译好的包ijkplayer_encode
我们本身有使用ffmpeg,但是后面又用了flutter_ijkplayer导致ffmpeg版本冲突
在init-ios.sh可以看到他的脚本使用的是3.4的库
IJK_FFMPEG_COMMIT=ff3.4--ijk0.8.7--20180103--001
命令
根目录下执行
./init-config.sh
./init-ios.sh
编译
cd ios
./compile-ffmpeg.sh arm64
修改
init-ios.sh修改为只编译arm64这样速度比较快
FF_ALL_ARCHS_IOS8_SDK="arm64"
修改config文件夹中的module.sh允许avdevice
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-avdevice"
允许编码模块
# export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-encoders"
# export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-filters"
注释ios/tools文件夹下do-compile-ffmpeg.sh禁用openssl
FFMPEG_DEP_OPENSSL_INC=$FF_BUILD_ROOT/build/$FF_BUILD_NAME_OPENSSL/output/include
FFMPEG_DEP_OPENSSL_LIB=$FF_BUILD_ROOT/build/$FF_BUILD_NAME_OPENSSL/output/lib
#--------------------
# with openssl
if [ -f "${FFMPEG_DEP_OPENSSL_LIB}/libssl.a" ]; then
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-openssl"
FFMPEG_CFLAGS="$FFMPEG_CFLAGS -I${FFMPEG_DEP_OPENSSL_INC}"
FFMPEG_DEP_LIBS="$FFMPEG_CFLAGS -L${FFMPEG_DEP_OPENSSL_LIB} -lssl -lcrypto"
fi
接下来按照文档执行编译就行了,版本统一后就比较方便修改