Win10子系统Ubuntu 编译 ijkplayer

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/yin13753884368/article/details/89788589

###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

猜你喜欢

转载自blog.csdn.net/yin13753884368/article/details/89788589