ubuntu编译最新版ijkplayer

1.编译环境

  1. ubuntu-16.04.4-desktop-amd64
  2. android-ndk-r14b-linux-x86_64
  3. ijkplayer-android版本 k0.8.8

2.编译环境搭建(android-sdk、ndk)

  1. 切换到超级用户sudo su

    sudo su

  2. 安装相关的工具

apt-get update
apt-get install git
apt-get install yasm
  1. 修改系统环境变量
vim /etc/profile

添加

export ANDROID_SDK=
export ANDROID_NDK=

下图是我当前的路径,可以参考下

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
图片.png

测试环境变量是否已经设置好
执行如下命令

ndk-build -v

出现下图信息,说明ndk配置好了


图片.png

执行如下命令

adb version

出现下图类似信息,说明sdk配置成功


图片.png

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

编译成功后,目录如下所示


图片.png

参考:

  1. 在Ubuntu下编译IjkPlayer-android
  2. ubuntu编译最新版ijkplayer
  3. ijkplayer从编译到使用来播放rtsp过程小结
  4. 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

解决办法:

  1. 下载低版本ndk,NDK下载
  2. 下载版本号14的android-ndk-r14b-linux-x86_64.zip
  3. 重新设置ANDROID_NDK为新下载的NDK路径

你可能感兴趣的:(ubuntu编译最新版ijkplayer)