美文网首页
编译ijkplayer源码以支持https

编译ijkplayer源码以支持https

作者: Doikki | 来源:发表于2018-01-24 17:28 被阅读1230次

众所周知,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
git checkout -B latest k0.8.8

  • 初始化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

  • 编译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

相关文章

网友评论

      本文标题:编译ijkplayer源码以支持https

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