一、描述
ijkplayer 一个基于ffmpeg开发的player,适用于android,并且开源,框架做的相当好,所以我们把ijkplayer 做了一个本地播放。
二、安装编译环境:
1、下载工具:
sudo apt-get update
sudo apt-get install git
sudo apt-get install yasm
sudo apt-get install make
2、下载jdk:
sudo apt-get install openjdk-8-jre-headless
3、下载ndk 和sdk:
ijkplayer官方推荐是android-ndk-r10e: 对应链接 android NDK下载链接
sdk : android-sdk_r24.4.1-linux : 对应链接 android SDK下载链接
注意 我看网上人说,这个确实需要注意, r14e~r10e
的版本是可以编译过的,太新或者太久的版本都不行
初始化一下工具
sh /xxx/xxx/android-sdk-linux/tools/android
4、设置编译的环境变量:
sudo gedit /etc/profile
加入:
export PATH=/xxx/xxx/android-sdk-linux/platform-tools:$PATH
export PATH=/xxx/xxx/android-sdk-linux/tools:$PATH
export ANDROID_NDK=/xxx/xxx/android-ndk-r10e
export PATH=/xxx/xxx/android-ndk-r10e:$PATH
使能:
source /etc/profile
验证是否生效:
//测试ndk是否生效,如果有打印相关版本信息等,即是生效
ndk-build -v
//测试sdk是否生效,如果有打印相关版本信息等,即是生效
adb --version
三、下载代码:
ijkplayer的GitHub
地址如下:
https://github.com/bilibili/ijkplayer
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
四、完成编译ijkplayer源码
// 进入如下目录
cd ijkplayer-android
//初始化
./init-android.sh
//编译http协议
./init-android-openssl.sh
// 编译openssl, 先回到源码根目录
cd android/contrib
./compile-openssl.sh clean
./compile-openssl.sh all
//编译ffmpeg ,打开config/module.sh,里面是各个编解码的格式, 先回到源码根目录
cd android/contrib/
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all // (默认是只编译armv7) armv5 armv7a arm64 x86 x86_64
//编译 ijkplayer, 先回到源码根目录
cd android
./compile-ijk.sh all
五、把工程拷贝到android studio上
编译成功之后会在android/ijkplayer/下生成对应的android工程
编译出来的代码在: ijkplayer/ijkplayer-android/androidijkplayer
目录是java工程的所在,ijkplayer-example
就是在这个目录下。
可以看到最后会生成很多so库。