版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
###Win10子系统Ubuntu 编译 ijkplayer
欢迎入群讨论提问 QQ群号:686809487
最近在看音视频方面的资料,选取了开源的 ijkplayer https://github.com/Bilibili/ijkplayer
- 1.开启win10开发者模式
- 2.开启win10子系统
Windows 10 子系统Linux重启(不重启Win10)
Using CMD (Administrator)
net stop LxssManager
net start LxssManager
-
3.在应用商店下载Ubuntu 软件
-
4.在编译ijkpalyer之前先熟悉一些linux指令,特此记录(小白)
- 4.1 pwd 查看当前路径
- 4.2 sudo vim sources.list 编辑文本
如果是vi,则:Esc 退出编辑模式,输入以下命令:
>
:wq 保存后退出vi,若为 :wq! 则为强制储存后退出(常用)
>
:w 保存但不退出(常用)
>:w! 若文件属性为『只读』时,强制写入该档案
>:q 离开 vi (常用)
>:q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
>:e! 将档案还原到最原始的状态!
* 4.3 cd (进入某文件夹)
* 4.4 cd .. (后退)
* 4.5 source /etc/profile (使用source命令使修改立刻生效)
* 4.6 su root 切换到root用户
* 4.7 passwd (root权限下修改密码)
* 4.8 sudo cp ijkplayer-android /mnt/h/Software/Android ijkplayer-android (文件复制格式: 文件 路径 文件名)
* 4.9 tar zxvf jdk-8u121-linux-x64.tar.gz(解压文件)
* 4.10 linux下用冒号":"来分隔路径
* 4.11 ndk-build -v (ndk版本查看)
-
5.修改linux 镜像文件路径,下载快
- 进入/etc/apt/sources.list 目录
- sudo cp sources.list sources.list.bak(备份)
- sudo vim sources.list(编辑文件将以下复制进去)
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb https://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse # deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial main main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse # deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse # deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse # deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse # 预发布软件源,不建议启用 # deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse # deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
-
6.ijkplayer编译需要的环境
-
java
-
gcc
-
OpenSSL
-
yasm
-
Android SDK
-
Android NDK (linux r10e版本)
- 6.1 OpenSSL 安装
1.下载,官网:https://www.openssl.org/,本例使用版本:openssl-1.1.0i.tar.gz 2、解压:tar -zxvf openssl-1.1.0i.tar.gz 3、进入解压目录,配置ruby安装参数, 命令:./config --prefix=/data/soft/openssl-1.1.0 命令:./config -t 4、编译,命令:make 5、安装,命令:make install 6、添加到系统配置 创建文件,命令:vim /etc/ld.so.conf.d/openssl.conf 填入内容(为zlib的安装路径):/home/yin13753884368/openssl-1.0.2r 7、加载配置,执行命令:ldconfig 经过上述步骤,就完成了OpenSSL安装!
- 6.2 yasm 安装
1.http://www.tortall.net/projects/yasm/releases 从该目录下可以找到合适平台的合适版本 命令安装: # wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz # tar zxvf yasm-1.3.0.tar.gz # cd yasm-1.3.0 # ./configure # make && make install
sudo apt install make sudo apt install make-guile
-
-
7.设置环境变量进入home/user (user为电脑用户名)
-
7.1 vim ~/.bashrc 编辑文本
#=======JavaHome======# export JAVA_HOME=/home/user/jdk1.8.0_211 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$HOME/bin:$HOME/.local/bin:$PATH
#========AndroidHome========# export ANDROID_SDK=/mnt/e/SoftwareDownload/AndroidSdk/sdk-linux export PATH=$ANDROID_SDK/platform-tools:$PATH export PATH=$ANDROID_SDK/tools:$PATH export ANDROID_NDK=/mnt/e/SoftwareDownload/AndroidNDK/android-ndk-r10e-linux/android-ndk-r10e export PATH=$ANDROID_NDK:$PATH
-
7.2 source .bashrc 刷新文件
-
-
8.开始编译ijkplayer,用root权限安装(重要)
cd config 先打开module-default.sh,在尾部添加下面代码,要不然会编译失败,这里是一个大坑 export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-linux-perf" export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-bzlib"
- 8.1. 拉取ijkplayer源码
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android cd ijkplayer-android git checkout -B latest k0.8.8
- 8.2. 初始化android
./init-android.sh
- 8.3 配置编解码器格式支持
module-default.sh 更多的编解码器/格式 module-lite-hevc.sh 较少的编解码器/格式(包括hevc) module-lite.sh 较少的编解码器/格式(默认情况) cd config rm module.sh ln -s module-lite.sh module.sh
- 8.4 初始化android支持Https
cd .. ./init-android-openssl.sh
- 8.5 编译openssl(耗时特别长)
cd android/contrib ./compile-openssl.sh clean ./compile-openssl.sh all
- 8.6 编译ffmpeg(耗时特别长)
cd android/contrib ./compile-ffmpeg.sh clean ./compile-ffmpeg.sh all
- 8.7 编译ijkplayer
./compile-ijk.sh all 加all默认编译所有架构的so库,不加默认只编译armv7a架构!
- 8.8 在android/ijkplaye 目录下生成相应的so文件
-
9.相应的Android 代码已经上传至git,欢迎star
-
10.CSDN下载传送门