Ubuntu 16.04 LTS 系统下编译 ijkplayer Android 源码。
前面介绍过 ijkplayer 的使用,要想支持更多的特性,还是需要编译下源码的。
本文编译源码的主要目的是支持更多的格式,以及支持 HTTPS 链接。
NDK 版本:android-ndk-r10e
ijkplayer 仓库地址 https://github.com/Bilibili/ijkplayer
环境准备
0、最好还是在 Ubuntu 环境下编译,在 Windows 下编译可以参考
https://blog.csdn.net/u010072711/article/details/51354834
并不推荐此方法。
1、然后需要有 Java 及 Android 环境,可参考
https://www.wshunli.com/posts/80d94eb7.html
2、编译之前,还要准备一些工具
sudo apt-get update
sudo apt-get install git
sudo apt-get install yasm
源码编译
1、从 GitHub 拉取源码,并打开源码目录
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
cd ijkplayer-android
2、切换到指定版本,可在源码仓库查看
git checkout -B latest k0.8.8
3、配置参数(可选操作,为了支持更多格式)
参数配置一共有三种方式,选择一种即可。
(1) 为支持更多的格式,我们选这种
cd config
rm module.sh
ln -s module-default.sh module.sh
cd ..
(2) 支持 hevc 功能,而且精简后的库
cd config
rm module.sh
ln -s module-lite-hevc.sh module.sh
cd ..
(3) 精简后的库,默认是这种配置
cd config
rm module.sh
ln -s module-lite.sh module.sh
cd ..
4、初始化,主要是拉取 ijkplayer 的依赖等,输入命令
./init-android.sh
初始化 openssl (可选操作,为了支持 HTTPS )
./init-android-openssl.sh
5、打开 ijkplayer-android/android/contrib/
目录,Android 下编译脚本就放在该目录下
cd android/contrib
6、清理并编译 openssl 依赖(可选操作,为了支持 HTTPS )
./compile-openssl.sh clean
./compile-openssl.sh all
7、清理并编译 ffmpeg 软解码库依赖
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
如果遇到问题 fatal error: linux/perf_event.h: No such file or directory
可参考:https://github.com/Bilibili/ijkplayer/issues/4125
在 module-default.sh、module-lite-hevc.sh 中添加如下一行配置即可。
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-linux-perf"
8、然后返回上级到 ijkplayer-android/android/
目录,编译源码
cd ..
./compile-ijk.sh all
等待编译完成即可。
导入使用
打开 Android Studio 并导入 ijkplayer-android/android/ijkplayer/
即可。
在这个项目中 module 比较多,大多数是针对不同 CPU 架构的包。
参考资料
1、Android 超好用的播放器——ijkplayer - 简书
https://www.jianshu.com/p/c5d972ab0309
2、IJKPlayer初识-编译与使用 - 简书
https://www.jianshu.com/p/a425ee1c2aec
3、在ubuntu下编译ijkplayer-android - CSDN博客
https://blog.csdn.net/u010072711/article/details/51438871
4、Android集成IjkPlayer - 简书
https://www.jianshu.com/p/79b434b2d5c8
5、Ubuntu编译ijkplayer支持https和更多视频格式 - CSDN博客
https://blog.csdn.net/DyncKathline/article/details/78223972
6、Android,ijkplayer增加https协议支持,编译运行ijkplayer - CSDN博客
https://blog.csdn.net/linchaolong/article/details/52805666
评论 (0)