###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下載傳送門