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

本文介绍了ijkplayer这款轻量级视频播放器的特点及其在Android和iOS上的应用。提供了搭建NDK和SDK环境的方法,详细步骤包括配置环境变量、克隆源码、编译源码等,并分享了在编译过程中可能遇到的问题及解决办法。

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教程

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值