在Mac下编译ijkplayer

来源:互联网 发布:实战java高并发程序设 编辑:程序博客网 时间:2024/05/23 12:04

        最近项目中需要集成播放器来播放拉下来的直播流,看了很多开源的播放器框架,最终选择了B站开源的ijkplayer。ijkplayer是一个基于FFmpeg的轻量级Android/iOS视频播放器。FFmpeg的是全球领先的多媒体框架,能够解码,编码, 转码,复用,解复用,流,过滤器和播放大部分的视频格式。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec。在编译ijkplayer的过程中,遇到了许多坑,在此总结下

        ijkplayer框架源码:https://github.com/Bilibili/ijkplayer 

        第一个坑就是ijkplayer没有文档说明,于是乎我在网上找相关资料,看了很多博客,最终成功编译了ijkplayer。


第一步,需要安装homebrewgityasm

        1 安装homebrew:

             打开Terminal入:        

                   ruby -e "$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install)"


             Homebrew安装成功后,会自动创建目录 /usr/local/Cellar 来存放Homebrew安装的程序。 这时你在命令行状态下面就可以使用 brew 命令了

       2 安装git yasm

              Terminal:        brew install git

                                           brew install yasm

 

第二步,安装好git和yasm后就要下载NDK来配置环境

       1 ndk下载链接:https://developer.android.google.cn/ndk/downloads/index.html

       2 配置ndk路径:

              打开Terminal输入: open -e .bash_profile

              打开bash_profile文件

             

              在文件里面添加:

                            export PATH=$PATH:你的ndk路径

                            ANDROID_NDK=你的ndk路径

                           export ANDROID_NDK

               然后 command+s 保存 ,Terminal输入source .bash_profie 更新下(一定不要忘了,我就是忘了这步导致编译失败,第二个坑)

        最后检测是否配置ndk路径成功,在Terminal输入:ndk-build

        出现如下内容表示配置成功。


 

第三步,将ijkplayer框架源码clone到本地并编译,依次在终端输入如下命令:

       1 下载源码: 

git clonehttps://github.com/Bilibili/ijkplayer.git ijkplayer-android

cd ijkplayer-android

git checkout -B latest k0.8.4

       2 初始化

./init-android.sh

       3 编译ffmpeg

cd android/contrib
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all

       若出现如下错误:

       Youmust define ANDROID_NDK, ANDROID_SDK before starting.They must point to yourNDK and SDK directories.

       则说明ndk配置路径有问题,重新参照上面的操作配置下ndk路径即可解决。


       4 编译ijkplayer

cd ..
./compile-ijk.sh all


到此为止,完成了对源码的编译,ijkplayer-android的目录结构如图

 

如果正确编译的话,会分别在ijkplayer-arm64、ijkplayer-armv5、ijkplayer-armv7a、ijkplayer-x86、ijkplayer-x86_64这些项目的src/main/libs/对应的名称 目录下分别生成libijkffmpeg.so、libijkplayer.so、libijksdl.so这三个so文件

现在,你可以将ijkplayer导入到Android Studio中。

经过我编译后的Android工程文件包含demo(由于限制上传资源大小,只上传了module,你可以自己新建工程导入module),点击下载

经过我编译后的iOS工程文件,点击下载

 


原创粉丝点击