【音视频】Android/iOS 视频播放器ijkplayer

1.ijkplayer简介

ijkplayer 是一个基于 FFplay 的轻量级 Android/iOS 视频播放器。实现了跨平台功能,API易于集成;编译配置可裁剪,方便控制安装包大小;支持硬件加速解码,更加省电;提供Android平台下应用弹幕集成的解决方案,此方案不仅已用于美拍和斗鱼APP,而且被越来越多的公司所采用。是Github上很好的开源项目。

2.搭建NDK和SDK环境

推荐下载地址AndroidDevTool
添加用于编译的环境变量

export ANDROID_SDK=~/sdk  
export ANDROID_NDK=~/android-ndk-r10e  
export PATH=$PATH:$ANDROID_SDK:$ANDROID_NDK:$ANDROID_SDK/platform-tools/
3.编译源码
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
cd ijkplayer-android
git checkout -B latest k0.6.2

./init-android.sh

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

cd ..
./compile-ijk.sh all

编译完成会生成如下库文件
* libijkffmpeg.so
* libijkplayer.so
* libijksdl.so

4.编译过程分析

./init-android.sh
执行后会自动下载 ffmpeg 和 android-libyuv 依赖包,其中由于 ffmpeg 仓库在国外,故需要等待较长时间,建议使用Host或挂VPN下载。

对于特定的开发平台,./compile-ffmpeg.sh all、./compile-ijk.sh all两条命令的附加参数可以对应修改。

5.Android Studio工程

Open an existing Android Studio project
Select android/ijkplayer/ and import
define ext block in your root build.gradle

ext {
       compileSdkVersion = 23       // depending on your sdk version
       buildToolsVersion = "23.0.0" // depending on your build tools version

       targetSdkVersion = 23        // depending on your sdk version
     }
6.遇到过的问题
  • 最后一个shell命令执行后,x86-64编译提示找不libijkffmpeg.so,原因是ffmpeg编译x86-64平台出错
  • ./compile-ffmpeg.sh all编译需要很久,提示NDK路径错误需要ndk-build检查下环境变量。
  • 如果不编译想直接使用so库,可以提取bilibili客户端编译好的so库手动导入,还可以直接百度下载其他开发者编译好的库文件。
  • 解决 ffmpeg yasm not found, use –disable-yasm for a crippled build,终端输入sudo apt-get install yasm,重新编译。
7.参考教程

ijkplayer阅读笔记
小试ijkplayer编译
Ubuntu 14.04 下编译 ijkplayer Android
深入了解 Ijkplayer
ijkplayer学习系列之环境搭建
Eclipse编译ijkplayer
简书搜索ijkplayer
ijkplayer初始化流程
简书android ijkplayer教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值