IJKPlayer3.4编译

323 阅读1分钟

前言

我这里已经处理了怕麻烦的话直接用我编译好的包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

接下来按照文档执行编译就行了,版本统一后就比较方便修改