//命令行执行如下命令即可 docker pull adajqd/ijkplayer-buildenv:1.0
cd config rm module.sh ln -s module-default.sh module.sh cd android/contrib # cd ios sh compile-ffmpeg.sh clean
cd config rm module.sh ln -s module-lite.sh module.sh cd android/contrib
//clone ijkplayer到本地 git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android //切换到源码目录 cd ijkplayer-android //检查版本 git checkout -B latest k0.8.4 //初始化 ./init-android.sh //下载OpenSSL ./init-android-openssl.sh //切换到android/contrib 目录下,编译脚本在这个目录下 cd android/contrib // 编译 OpenSSL ./compile-openssl.sh clean ./compile-openssl.sh all 或者把all替换成 armv7a,只编译这个架构 //编译FFmpeg ./compile-ffmpeg.sh clean ./compile-ffmpeg.sh all 或者把all替换成 armv7a,只编译这个架构 //返回ijkplayer/android 目录,编译ijkplayer的so库 cd .. ./compile-ijk.sh all
到此我们编译就完成了,so库已经生成,位置在src/main/libs下了,需要什么样的cpu架构去对应的文件夹下去找就可以了 编译完成后可以在 ijkplayer-android / android / ijkplayer 中查看生成的对应 so 文件。可以直接用AndroidStudio 打开。
source ~/.profile
// add these lines to your ~/.profile export ANDROID_SDK=/opt/android/sdk export PATH=$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools:$PATH export ANDROID_NDK=/opt/android/ndk/android-ndk-r10e export PATH=${PATH}:$ANDROID_NDK:$PATH
#进入容器命令 docker exec -it 9fbe362214a6(容器Id) /bin/bash apt-get update apt-get install vim
无法编译 找到do-compile-ffmpeg.sh 在下面指定位置 增加--system=linux-x86,即可
无法编译
编译module-default出错。 把配置文件 用这个module-default来编译, module.sh -> module-default.sh 提示出错。./libavutil/timer.h:38:31: fatal error: linux/perf_event.h: No such file or directory # include <linux/perf_event.h> 找不到这个库。 解决方法:(不需要编译这个配置perf参数) module-default.sh 加 export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-linux-perf"
ijkPlayer 编译全格式支持 .so库