linux下编译ijkplayer

参考官网:ijkplayer

在window下装了一个Ubuntu系统,使用ndk版本是10e,ijk是0.8.8

由于要支持https,所以编译如下:

整个过程网要流畅,可以翻墙

1,首先要下载和配置sdk和ndk:

用命令打开配置文件:

vi .bash_profile

把下面的配置写到配置里,xxx是具体路径

export ANDROID_SDK=/home/xxx/Android/sdk 

 export PATH=$ANDROID_SDK/platformtools:$PATH 

export PATH=$ANDROID_SDK/tools:$PATH 

export ANDROID_NDK=/xxx/Android/android-ndk-r10e 

export PATH=$ANDROID_NDK:$PATH

写完以后保存退出后在执行下面命令

source .bash_profile 注意如果在下面编译的过程中说You must define ANDROID_NDK before starting,要是路径不对,要不就是没有执行这个命令

2,安装homebrew, git, yasm

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew install git

brew install yasm

3,拉取源码,网络一定要好

git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android

cd ijkplayer-android

git checkout -B latest k0.8.8

4,进入config文件夹,选择自动化编译时的一些配置文件,选择module-lite.sh,命令如下:

cd config

rm module.sh

ln -s module-lite.sh module.sh

5,开始编译,网一定要好

从config文件夹出来,在ijkplayer-android文件夹中,进行一系列编译初始化:

cd ..

./init-android.sh

执行完以后在执行

./init-android-openssl.sh

编译openssl和FFmpeg

先清理

cd android/contrib 

./compile-openssl.sh clean 

./compile-ffmpeg.sh clean

在编译

编译-openssl,现在全版本编译

./compile-openssl.sh all

编译ffmpeg,也是全版本编译

./compile-ffmpeg.sh all

注意,也可以选择版本编译,如果编译armv7a,把all换成armv7a就行了

最后,从contrib 出来到android目录下,编译ijk

cd ..

./compile-ijk.sh all

如此整个流程算是完了 so文件在 ijkplayer-android_build\ijkplayer-android\android\ijkplayer\下各个版本工程libs下

中间遇到的问题:

1,在刚刚开始编译的时候,是ndk15,但是ijk好像还没支持,看网络上说10的版本可以,就换成了10

2,如果ndk路径没问题,还老是出现ndk不能找到,就在系统跟目录执行source .bash_profile

3,只编译出来libijkffmpeg.so,没有libijkplayer.so、libijksdl.so这个两个文件,在 ijkplayer-android_build\ijkplayer-android\android\ijkplayer\各个版本项目下jni目录下的Android.mk文件最后加入一行:include /home/xxx/ijkplayer_/ijkplayer-android/ijkmedia/*.mk 再编译  xxx是具体目录

你可能感兴趣的:(linux下编译ijkplayer)