ubuntu编译最新版ijkplayer
2018-04-19 本文已影响1390人
chenzhenlindx
1.编译环境
2.编译环境搭建(android-sdk、ndk)
-
切换到超级用户
sudo su
sudo su
-
安装相关的工具
apt-get update
apt-get install git
apt-get install yasm
- 修改系统环境变量
vim /etc/profile
添加
export ANDROID_SDK=<your sdk path>
export ANDROID_NDK=<your ndk path>
下图是我当前的路径,可以参考下
export ANDROID_NDK=/home/czl/Android/android-ndk-r14b
export PATH=$ANDROID_NDK:$PATH
export ANDROID_SDK=/home/czl/Android/Sdk
export PATH=${PATH}:$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools
添加完成后执行如下命令,让设置的环境变量生效
source /etc/profile

测试环境变量是否已经设置好
执行如下命令
ndk-build -v
出现下图信息,说明ndk配置好了

执行如下命令
adb version
出现下图类似信息,说明sdk配置成功

3.下载ijkplayer-android源码
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
4.开始编译ijkplayer-android
代码拉完之后进入到ijkplayer-android目录
cd ijkplayer-android
git checkout -B latest k0.8.8
初始化,会从网上自动拉代码,时间比较长
./init-android.sh
如果视频播放需要支持Https协议,需要执行如下命令
./init-android-openssl.sh
编译各个平台的编译openssl
cd android/contrib
./compile-openssl.sh clean
./compile-openssl.sh all
编译各个平台的ffmpeg,如果需要更多的编解码格式,需要先执行下面的命令
cd ../..
cd config
rm module.sh
ln -s module-lite.sh module.sh
cd ..
cd android/contrib
./compile-ffmpeg.sh clean
注:此时,最新版本上如果执行的是(ln -s module-lite.sh module.sh),会出现如下错误:

编译各个cpu架构的ffmpeg
./compile-ffmpeg.sh all
接下来,编译ijkplayer
cd ..
./compile-ijk.sh all
编译成功后,目录如下所示

参考:
- 在Ubuntu下编译IjkPlayer-android
- ubuntu编译最新版ijkplayer
- ijkplayer从编译到使用来播放rtsp过程小结
- Ubuntu下编译Bilibili/ijkplayer
踩坑实录
1. You need the NDKr10e or later
build on Linux x86_64
ANDROID_NDK=/home/czl/Android/android-ndk-r16b
IJK_NDK_REL=16.1.4479499
You need the NDKr10e or later
解决办法:
- 下载低版本ndk,NDK下载
- 下载版本号14的android-ndk-r14b-linux-x86_64.zip
- 重新设置ANDROID_NDK为新下载的NDK路径