ijkplayer轻松编译 By Win10子系统

引言

很早以前写过一篇关于FFMPEG的编译,然后把玩了下FFMPEG,发现挺不容易的,后来对视频这块就没再动过过。

最近项目涉及视频类,需重新拾起视频模块,找了很多开源项目,最终还是定位ijkplayer:B站开源的基于FFmpeg的轻量级Android/iOS视频播放器,网上资料较多,官方也有维护,封装了和mediaplayer差不多的接口,评价挺高,所以加进来试试水!

一、如何使用ijkplayer

Github地址 : https://github.com/Bilibili/ijkplayer 

# required

allprojects {

    repositories {

        jcenter()

    }

}

dependencies {

    # required, enough for most devices.

    compile ‘tv.danmaku.ijk.media:ijkplayer-java:0.8.8’

    compile ‘tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.8’

    # Other ABIs: optional

    compile ‘tv.danmaku.ijk.media:ijkplayer-armv5:0.8.8’

    compile ‘tv.danmaku.ijk.media:ijkplayer-arm64:0.8.8’

    compile ‘tv.danmaku.ijk.media:ijkplayer-x86:0.8.8’

    compile ‘tv.danmaku.ijk.media:ijkplayer-x86_64:0.8.8’

    # ExoPlayer as IMediaPlayer: optional, experimental

    compile ‘tv.danmaku.ijk.media:ijkplayer-exo:0.8.8’

}

只需将以上Gradle配置引入模块中即可。

但是这样引入会导致项目过于庞大,所以自行编译的优势就出来了,易于裁剪大小,还有一点ijkplayer默认不支持HTTPS

二、如何编译ijkplayer并支持Https

①环境选择:Ubuntu、Linux、Mac

这里我们选择Win10子系统,相信还有人没用过吧,其实是Windows内置了Linux子系统了,无需开虚拟机、无需重启切系统。

好了,至于Win10子系统如何配置,请看:https://www.jianshu.com/p/13122abcec50 –Win10子系统下FFMPEG编译

有什么配置问题可以提问或者自行Google。

①编译ijkplayer

Step 1安装Git与yasm

sudo apt-get install git

sudo apt-get install yasm

Step 2:下载,配置Android SDK与NDK

注意:NDK的最小配置需要>=r10e,而且需要的是Linux 64 位 (x86) 别忘了~

地址:https://developer.android.google.cn/ndk/downloads/

设置修改下:.bashrc文件,把SDK和NDK配置上:

命令:vim ~/.bashrc,打开并在最后加入以下配置(这个是我配置,大家可以把【】内容改为自己的)

#========AndroidHome========#

export ANDROID_SDK=/mnt/【 d/androidSDK/AndroidSDK/AndroidSDK(这个就是你电脑上SDK的路径)】

export PATH=$ANDROID_SDK/platform-tools:$PATH

export PATH=$ANDROID_SDK/tools:$PATH

export ANDROID_NDK=/mnt/【d/androidNDK/android-ndk-r10e(这个就是你电脑上NDK的路径) 】

export PATH=$ANDROID_NDK:$PATH

然后source .bashrc,键入ndk-build -v 看有没有东西输出 

验证配置是否生效。这里不贴图了,啦啦啦~~~

Step 3:拉取ijkplayer源码

git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android

cd ijkplayer-android

git checkout -B latest k0.8.8

拉取完默认的路径是:/mnt/【c/Users/zlq(User)】/ijkplayer-android/android/ijkplayer

Step 4:初始化android

./init-android.sh

Step 5:编译脚本配置

rm module.sh

ln -s module-lite.shmodule.sh

source module.sh

这个官方给的最小定制,就是自动化编译时的一些配置选项,比如支持什么协议啊,支持什么音视频类型等, 大家可以看github地址中的Before Build这一项,这里不多说了。

Step 6:初始化android支持Https

cd ..

./init-android-openssl.sh

Step 7:清除一波

cd android/contrib

./compile-openssl.sh clean  

./compile-ffmpeg.sh clean

Step 8:编译openssl

./compile-openssl.sh all

这一波够慢~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Step 9:编译ffmpeg

./compile-ffmpeg.sh all

这里的话看你需要,如果想编译所有版本的so库,就跟all,如果是特定 

CPU架构就跟cpu架构,比如:./compile-ffmpeg.sh armv7a 

编译特定需要的肯定是比全部耗时短~

Step 10:编译ijkplayer

./compile-ijk.sh all

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

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

root@DESKTOP-9P4FC7N:/mnt/c/Users/zlq/ijkplayer-android/android/ijkplayer# ls

build.gradle      gradlew          ijkplayer-armv5    ijkplayer-exo  ijkplayer-x86_64

gradle            gradlew.bat      ijkplayer-armv7a  ijkplayer-java  settings.gradle

gradle.properties  ijkplayer-arm64  ijkplayer-example  ijkplayer-x86  tools

    原文作者:Kndroid
    原文地址: https://www.jianshu.com/p/2d2234313076
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞