找回密码
 立即注册
Qt开源社区 门户 查看内容

Linux环境下 编译 ijkplayer

2019-9-20 15:37| 发布者: admin| 查看: 943| 评论: 0

摘要: hello 小伙伴们,这次给大家分享的是Linux 环境下ijkplayer 的编译,开发环境:win10 自带的Ubuntu 系统1.开启win10开发者模式2.开启win10子系统Windows10 子系统Linux重启(不重启Win10)UsingCMD(Administrator)nets ...
hello 小伙伴们,这次给大家分享的是Linux 环境下 ijkplayer 的编译,开发环境:win10 自带的Ubuntu 系统

1.开启win10开发者模式



2.开启win10子系统





    Windows10 子系统Linux重启(不重启Win10)Using CMD (Administrator)net stop LxssManagernet start LxssManager

    3.在应用商店下载Ubuntu 软件

    4.在编译ijkpalyer之前先熟悉一些linux指令
      4.1pwd 查看当前路径 4.2sudovimsources.list 编辑文本4.3 cd (进入某文件夹)4.4 cd .. (后退)4.5source /etc/profile (使用source命令使修改立刻生效)4.6suroot 切换到root用户4.7passwd (root权限下修改密码)4.8 sudo cp ijkplayer-android /mnt/h/Software/Android ijkplayer-android (文件复制格式: 文件 路径 文件名)4.9 tar zxvf jdk-8u121-linux-x64.tar.gz(解压文件)4.10linux下用冒号":"来分隔路径 4.11ndk-build-v (ndk版本查看)
        如果是vi,则:Esc 退出编辑模式,输入以下命令::wq 保存后退出vi,若为 :wq! 则为强制储存后退出(常用)  :w  保存但不退出(常用):w! 若文件属性为『只读』时,强制写入该档案:q 离开 vi (常用):q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。:e! 将档案还原到最原始的状态!

        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 multiversedeb 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 multiversedeb 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 multiversedeb 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.gz3、进入解压目录,配置ruby安装参数, 命令:./config --prefix=/data/soft/openssl-1.1.0 命令:./config -t4、编译,命令:make5、安装,命令:make install6、添加到系统配置 创建文件,命令:vim /etc/ld.so.conf.d/openssl.conf 填入内容(为zlib的安装路径):/home/yin13753884368/openssl-1.0.2r7、加载配置,执行命令: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    sudoapt install makesudo apt install make-guile

              7.设置环境变量进入home/user (user为电脑用户名)

                  7.1 vim ~/.bashrc  编辑文本
                #=======JavaHome======#export JAVA_HOME=/home/user/jdk1.8.0_211export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$JAVA_HOME/bin:$HOME/bin:$HOME/.local/bin:$PATH#========AndroidHome========#export ANDROID_SDK=/mnt/e/SoftwareDownload/AndroidSdk/sdk-linuxexport PATH=$ANDROID_SDK/platform-tools:$PATHexport PATH=$ANDROID_SDK/tools:$PATHexport ANDROID_NDK=/mnt/e/SoftwareDownload/AndroidNDK/android-ndk-r10e-linux/android-ndk-r10eexport 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源码
                    gitclone https://github.com/Bilibili/ijkplayer.git ijkplayer-androidcdijkplayer-androidgitcheckout -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 configrm module.shln -s module-lite.shmodule.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.GitHub:

                                    https://github.com/taxiao213/ijkplayer

                                10.CSDN下载传送门:   
                                    https://download.csdn.net/download/yin13753884368/11157605


                                ----------------------------------------------------------------------------------------------------------------------
                                我们尊重原创,也注重分享,文章来源于微信公众号:他晓,建议关注公众号查看原文。如若侵权请联系qter@qter.org。
                                ----------------------------------------------------------------------------------------------------------------------

                                鲜花

                                握手

                                雷人

                                路过

                                鸡蛋
                                
                                公告
                                可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了