编译ijkplayer源码以支持https

众所周知,Android中播放音视频一般使用系统提供的MediaPlayer,但用过MediaPlayer的人都知道,它有很多缺点,播放速度不够快,稳定性和兼容性很差,5.0以下系统性能很差,基本处于不可用的状态,说了半天缺点有没有什么可替代的方案呢,答案当然是有的,就是我大B站的ijkplayer,它是一款基于FFmpeg的轻量级 Android/iOS视频播放器,网上资料挺多的,而且官方也有维护,和MediaPlayer 差不多的接口,性能和稳定性要比MediaPlayer高一个档次,但是它官方提供的so不支持https, 接下来我就要教大家如何在Linux上编译ijkplayer的so库。
话不多说,立马开干。

安装环境

  • 安装 git, yasm
sudo apt-get install git
sudo apt-get install yasm

注:如安装出错,先执行sudo apt-get update进行更新,再执行以上指令


开始编译

  • 拉取ijkplayer源码
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
cd ijkplayer-android

  • 初始化android
./init-android.sh

  • 初始化openssl支持Https
./init-android-openssl.sh

注:如果出现NDK或者SDK找不到,可以执行一下source ~/.bash_profile


  • 清除一波
cd android/contrib
./compile-openssl.sh clean
./compile-ffmpeg.sh clean

  • 编译openssl
./compile-openssl.sh all

编译时出现Failed to create toolchain.错误,请安装python

sudo apt-get install python

编译时出现 FD: libncurses.so.5: cannot open shared object file: No such file or directory 错误,请安装libncurses5

sudo apt-get install libncurses5

  • 编译ffmpeg

这里的话看你需要,如果想编译所有版本的so库,就跟all,如果是特定 CPU架构就跟cpu架构,比如:./compile-ffmpeg.sh armv7a编译特定需要的肯定是比全部耗时短~

./compile-ffmpeg.sh all

  • 编译ijkplayer

加all默认编译所有架构的so库,不加默认只编译armv7a架构

cd ..
./compile-ijk.sh all


编译成功后,会生成如下三个文件:

将so文件复制到项目的libs目录,如下图,并在build.gradle中加入如下代码:

sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }

注意:不同架构要单独创建相应的文件夹。

到此,编译一个支持HTTPS的ijkplayer就完成了

最后附上我自己写的一个基于ijkplayer的播放器,https://github.com/dueeeke/dkplayer

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,049评论 25 709
  • 引言: 公司现在的电台项目是我第二个接触音频播放项目,Android音视频播放很多还是使用的MediaPlayer...
    coder_pig阅读 12,941评论 9 113
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,609评论 2 45
  • ――学以致用,尝试实践 虽所学甚少、所知粗浅,也总想把学到的丁点儿理论或技术用之于工作。不管是不是...
    箫音声声阅读 188评论 0 0
  • 文|糖小果 北京,这两天天特别蓝,让我有一种奋发向上的动力,我喜欢秋天的景色,温顺又美好。 01 学生时代的暑假,...
    杉杉杂谈阅读 316评论 4 2