ijkplayer轻松编译 By Win10子系统

作者: Kndroid | 来源:发表于2018-11-16 09:52 被阅读7次

    引言

    很早以前写过一篇关于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

    相关文章

      网友评论

        本文标题:ijkplayer轻松编译 By Win10子系统

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