Win10子系統Ubuntu 編譯 ijkplayer

###Win10子系統Ubuntu 編譯 ijkplayer

歡迎入羣討論提問 QQ羣號:686809487

CSDN

Github

最近在看音視頻方面的資料,選取了開源的 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

    https://github.com/yin13753884368/ijkplayer

  • 10.CSDN下載傳送門

    https://download.csdn.net/download/yin13753884368/11157605

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章