最近编译ijkplayer,碰到一些问题,这里记录一些注意点,具体使用需要百度查询.
环境准备
| 我的环境是 VMware + ubuntu(20.04.2.0),安装虚拟机,安装ubuntu。
-
修改linux软件源
打开命令行,依次输入下面的命令,并按提示操作。 1. 备份源文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list.back 2. 编辑源文件 sudo gedit /etc/apt/sources.list 在弹出的编辑器内,清空所有内容。复制下面的内容,粘贴进去。(阿里的源) deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse 3. 保存,然后关闭编辑器。 4. 设置立即生效 sudo apt-get update 5. 建议执行下更新命令 sudo apt-get update -
安装用到的软件
- 安装git
sudo apt-get install git - 安装yasm
sudo apt-get install yasm - 安装python
sudo apt-get install python
安装python是为了解决编译时会报ERROR:Failed to create toolchain - 安装file,libncures,依次执行下面的命令
解决在编译ffmpeg的时候,报sudo apt install apt-file sudo apt-file update sudo apt-file find libncurses.so.5 sudo apt install libncurses5BFD: libncurses.so.5: cannot open shared object file: No such file or directory的问题
- 安装git
-
开发环境
- Jdk 下载地址直接去Oracle官网即可。
```
1. 下载linux jdk8,解压
2. 修改环境变量
sudo gedit /etc/profile
3. 在打开的文件末尾,添加下面内容
#set oracle jdk environment
export JAVA_HOME=/usr/lib/jvm/jdk-14.0.1 ## 这里要注意目录要换成自己解压的jdk 目录
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
4. 使环境变量马上生效
source /etc/profile
5. 系统注册此jdk
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-14.0.1/bin/java 300
6. 测试是否安装成功
java -version
```
-
Android Sdk 下载地址
1. 解压sdk 2. 更新sdk,执行下面命令(全部升级) `sudo tools/android update sdk --no-ui` ,如果提示 y/n ,一律输入y,回车即可。 3. 设置环境变量 sudo gedit /etc/profile 4. 打开的文件末尾,添加下面内容 #android sdk(下面路径以自己的为准) export ANDROID_SDK=/home/bingjiazheng/Android_SDK/android-sdk-linux export PATH=${PATH}:$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools 5. 使环境变量生效 source /etc/profile 6. 测试是否成功(如果不生效,重启一次) adb version -
android ndk 下载地址
(r10e 或者 r14b都行,我这里是r10e)1. 解压ndk(目录以自己的为准) sudo ./android-ndk-r10e-linux-x86_64.bin 如果发现没有对目录操作的权限(被加了一把锁),输入 `sudo chown -R stg android-ndk-r10e` 2. 设置环境变量 sudo gedit /etc/profile 3. 打开的文件末尾,添加下面内容 #android ndk(下面路径以自己的为准) export ANDROID_NDK=安装ndk的路径/android-ndk-r10e/ export PATH=$PATH:$ANDROID_NDK 4. 使环境变量生效 source /etc/profile 5. 测试是否成功(如果不生效,重启一次) ndk-build -v
- 网络环境
- 建议网络环境配置代理,提高 clone ijkplayer-android和 下载ffmpeg的速度。
- 建议设置git网络代理,有ffmpeg,openssl等库有时候clone会报错
//设置http、https 代理 git config --global http.proxy http://127.0.0.1:1089 git config --global https.proxy http://127.0.0.1:1089 //设置socks5代理 git config --global http.proxy socks5://127.0.0.1:1080 git config --global https.proxy socks5://127.0.0.1:1080 //取消设置的代理 git config --global --unset http.proxy git config --global --unset https.proxy //查看git设置 git config --global -l 检查环境变量 env|grep -i proxy
开始准备编译
1.拉取ijkplayer
1. git拉取ijkplayer
`git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android`
2. 进入目录
`cd ijkplayer-android`
3. 切换分支
`git checkout -B latest k0.8.8`
3. 初始化android(这里建议设置git代理,否则容易拉取失败)
`sudo ./init-android.sh`
4. 执行下面的代码,支持https
`sudo ./init-android-openssl.sh`
5. 清除和编译ffmpeg
```
cd android/contrib
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
```
6. 编译ijkplayer,加all默认编译所有架构的so库,不加默认只编译armv7a架构
```
cd ..
./compile-ijk.sh all
```
参考:
1.Ubuntu系统下编译ijkplayer
2.参考二