前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IJKPlayer编译so支持HTTPS的踩坑历程

IJKPlayer编译so支持HTTPS的踩坑历程

作者头像
GSYTech
发布2018-08-22 11:31:38
1.6K0
发布2018-08-22 11:31:38
举报
文章被收录于专栏:移动开发之家
hello,大家好,我是那个太监许久的郭同学,这段时间发生了一些不愉悦的事情,进入了不务正业的状态,但是···┑( ̄Д  ̄)┍ who care呢?我也知道没人会想念我的,所以就没怎么更新了,绝对不是因为懒哟。︿( ̄︶ ̄)︿

同志,github来过没?右转不屑 ----> https://github.com/CarGuo

1、前言

为什么要编译?因为默认IJK居然不带HTTPS?Why?因为爱情,不会轻易悲伤···这就是爱吧((/- -)/。

编译IJK的动态链接库,绝对是对于win党最大的打击,经常是裤子脱了一半,发现拉链卡住,而且还很痛,上也不是,不上也不是的蛋碎感(ノಠ益ಠ)ノ彡┻━┻,官方都说了:on Cygwin (unmaintained),Linux和Mac的胜利。如果你坚持,也许你就会遇上它们:

  • 安装Cygwin的时候,记得把make选上。
  • $'\r': 未找到命令 : dos2unix xxx,把所有你会编译到的.sh都轮一遍,你以为完了?不,编译生成出来的version.sh和configure也需要。
  • mingw32-gcc.exe: error: CreateProcess: No such file or directory,据说是文件路径太深了,然而IJK的路径,本来就好深,所以你要把IJK的环境在整一遍,反正到这里我就放弃了治疗啦(ˉ ̄~) 。
2、VMware + Ubuntu编译环境

作为一个win党,头顶青天,个人马上把电脑里尘封已久的虚拟机搬出来了,个人装的是Ubuntu,加上VMtools,妥妥的,环境搭建我就不唠叨了,这里走起《VMware安装Ubuntu教程,Linux下搭建Android开发环境》。家中常备,总有一天你会用得上。注意NDK r10e以上,虚拟机硬盘尽量选大一点,不然后面扩展容量又是一番功夫。

3、编译带HTTPS的so

到了这里你就简单多了,因为是亲生的啊,这时候就是机械化流程啦(✿‿)。

  • 打开终端命令,安装需要程序。
代码语言:javascript
复制
sudo apt-get install git
sudo apt-get install yasm
  • 下载IJKPlayer源码,在命令终端里cd到ijk的根目录
  • 切换到release版本的tag下,当然,你也可以直接在master
代码语言:javascript
复制
git checkout -B k0.7.5  //这个版本参考ijk的依赖库版本
  • 流程化脚本编译 1、编译前选择你的配置 If you prefer more codec/format
代码语言:javascript
复制
cd config
rm module.sh
ln -s module-default.sh module.sh

If you prefer less codec/format for smaller binary size (include hevc function)

代码语言:javascript
复制
cd config
rm module.sh
ln -s module-lite-hevc.sh module.sh

If you prefer less codec/format for smaller binary size (by default)

代码语言:javascript
复制
cd config
rm module.sh
ln -s module-lite.sh module.sh

2、初始化openSSL和FFMPEG

这里会同步下载对应的代码,所以可能会比较耗时哟,

代码语言:javascript
复制
./init-android-openssl.sh
./init-android.sh

3、编译

cd到android/contrib下,执行清除命令,然后编译需要的so,这里的all是生成所有版本的,如果只需要对应版本的,可以把all替换成armv7a等你需要的版本。编译需要一段时间,这时候你可以找个妹子先吹吹水。︿( ̄︶ ̄)︿

代码语言:javascript
复制
./compile-openssl.sh clean//清除
./compile-ffmpeg.sh clean//清除
./compile-openssl.sh all//编译
./compile-ffmpeg.sh all//编译

4、生成对应so

切换到android目录下,执行脚本就可以生成so啦,感觉一路顺畅,一泻千里有木有。

代码语言:javascript
复制
./compile-ijk.sh all

生成的so每种类型有三个,传说,ffmepg的so大于3M就是https成功的标志啦!

最后注意

1、最后不要忘记,在你的gradle里面加入下方的配置哟,不然app会找不到你的so的。

2、如果你觉得你的包so太大了,可以使用下图的ndk过滤,随时控制你想支持的so,具体可参看Android蹲坑的疑难杂症集锦(兼Gradle) 二

3、如果需要编译其他播放类型支持,可以修改module.sh下的配置来使能。

4、IJKplayer 编译rtsp、rmvb支持

相关的so已经集成到播放器里面,需要的可以直接拿出来用,下方链接走起<( ̄︶ ̄)>,点我点我。

https://github.com/CarGuo/GSYVideoPlayer

多日♂不见

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016.12.20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • hello,大家好,我是那个太监许久的郭同学,这段时间发生了一些不愉悦的事情,进入了不务正业的状态,但是···┑( ̄Д  ̄)┍ who care呢?我也知道没人会想念我的,所以就没怎么更新了,绝对不是因为懒哟。︿( ̄︶ ̄)︿
  • 1、前言
  • 2、VMware + Ubuntu编译环境
  • 3、编译带HTTPS的so
  • 最后注意
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档