美文网首页
ijkplayer编译篇(Ubuntu)

ijkplayer编译篇(Ubuntu)

作者: 代码很玄学 | 来源:发表于2018-05-07 11:00 被阅读0次
    • 懒人so库

      如果有童鞋不想编译,在这里提供一个已经编译好了的so库,可自行去下载使用,https://github.com/tbxyxs/ijkplayer-so

    • 环境准备

       系统:ubuntu 17.10
       sudo apt install linuxbrew-wrapper:安装brew
       brew install git
       brew install yasm 
      
    • 配置ndk、sdk路径

      • 配置android sdk与ndk:(添加以下内容到当前用户home目录中的.bash_profile文件或.profile文件中。
        +内容:
      //add sdk:改成对应的路径即可
        export ANDROID_SDK=D:/Develop/android_sdk_install
      //add ndk:改成对应的路径即可
        export ANDROID_NDK=D:/Develop/android_sdk_install/android-ndk-r14b
        source ~/.profile  //立即生效
        
       
      
    • 同步ijkplayer源码

      git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
      cd ijkplayer-android
      git checkout -B latest k0.8.8 //k0.8.8:切换到源码版本分支上,根据版本号填写对应的版本号
      
    • 设置bash

      sudo dpkg-reconfigure dash  //弹出框后选择否(no),即使用bash。
      
    • 初始化

      sudo ./init-android.sh  //此时,它会拉取ffmpeg等对应cpu架构的代码。
      
      
    • 编译ijkplayer支持参数配置:

      • 它的主要作用就是配置一些打出来的so库包支持的功能有哪些,如:支持什么协议、支持什么音视频类型,把要支持的参数改为enable启用或disable禁用即可开启/关闭某项功能了。
      注:官方默认给了3个已经配置好的脚本,分别是:(也可自行修改里面的配置开关参数)
          module-default.sh:默认,如果你喜欢更多类型可以用这个;
          module-lite.sh:如果您更喜欢较小的二进制大小的编解码器/格式(默认情况下).
          module-lite.hevc.sh:如果您更喜欢较小的二进制大小的编解码器/格式(包括hevc功能).
          修改module.sh中的内容
          
          默认可以使用命令进行修改,如举例:修改module.sh的内容与module-default.sh一样,可以直接copy或者命令行处理:
          $:cd config //进入config目录
          $:rm module.sh//删除module.sh脚本文件
          $:ln -s module-default.sh module.sh //这里将会copy module-default.sh文件保存为module.sh文件,这就生成了一个新的module.sh脚本文件。
      
      
    • 添加https的支持:

      cd .. //返回源码根目录
      ./init-android-openssl.sh //执行该脚本文件,即可增加对https的支持
      
      
    • 清理缓存

      cd android/contrib
      ./compile-openssl.sh clean //清理openssl,如果不用支持https,则可不用清理
      ./compile-ffmpeg.sh clean//清理ffmpeg
      
      
    • 编译模块openssl

      cd android/contrib
      ./compile-openssl.sh all
      注:这有个问题(此问题在ubuntu中不会出现):
      1.编译文件文件时,在windows系统下会报:“./compile-openssl.sh:行17: $'\r': 未找到命令”等错误,这是因为windows在执行默认脚本时,当要创建xxx.sh文件脚本时,默认创建出来的文件编码格式为windows格式,需要手动去转一下这些报错的.sh脚本文件,转成unix格式,方可解决,直接用notepad++转下码就行了。
      
      
      
    • 编译模块ffmpeg

       ./compile-ffmpeg.sh all //如果想编译所有版本的so库,就跟all,如果是特定CPU架构就跟cpu架构,比如:./compile-ffmpeg.sh armv7a 
      
    • 编译最终的so包:

      cd .. //切换到源码根目录 
      ./compile-ijk.sh all //执行编译so库的脚本;all:支持所有平台,如果只想编译某一cpu架构平台,可替换成对应的平台名称即可:如:./compile-ijk.sh armv7a 
      注:不加all,默认编译只生成armv7a架构平台;
      

    相关文章

      网友评论

          本文标题:ijkplayer编译篇(Ubuntu)

          本文链接:https://www.haomeiwen.com/subject/oismrftx.html