Bilibli 编译
準備:
需要安裝yasm比較新版本,比如 1.2.0 。否者編譯ffmpeg會報錯
需要设置sdk 目录,ndk 目录, java home
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home
export ANDROID_NDK=/Users/kaka/Library/android/sdk/ndk/android-ndk-r10b
export PATH=$ANDROID_NDK:$PATH
export ANDROID_SDK_ROOT=/Users/kaka/Library/android/sdk
export ANDROID_SDK=/Users/kaka/Library/android/sdk
export PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/cmdline-tools/tools/bin:$ANDROID_SDK_ROOT/platform-tools
注意,坑來了。ndk一定要用10版本的,否者会报错,就算修改android/contrib/tools/do-detect-env.sh允许更高版本也不行
第一步,跑到根目录执行./init-android.sh, 拉取 ijkpalyer JNI 和 ffmpeg 代码
./init-android.sh
第二步,官网文档少了这一步。后续有问题。需要拉取 拉取 openssl 代码
./init-android-openssl.sh
第三步, 执行编译openssl代码,
cd android/contrib
./compile-openssl.sh clean
./compile-openssl.sh all
第三步, 选配ffmpeg格式,执行 module-lite.sh播放常见格式,全面的视频执行这个module-default.sh
cd ../../
cd config
rm module.sh
ln -s module-lite.sh module.sh
编译 ffmpeg 代码
cd ../
cd android/contrib
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
相关的libijkffmpeg.so在android/contrib的build的每个手机架构目录里面
如果編譯失敗,可能是选配ffmpeg格式問題。用這個下面這個,撇
https://github.com/CarGuo/GSYVideoPlayer/blob/master/module-lite-more.sh
注意,坑來了。需要修改compile-ffmpeg.sh,去掉armv5架構。替換掉這3個就行。 armv5空格, armv5, armv5|。並且刪除openssl-armv5
编译 ijkplayer jni 代码(依赖ffmpeg库),修改c相关代码,在执行这之前写。
cd ..
./compile-ijk.sh all
OK 搞定