IJKPlayer播放器支持https流程
前言:
笔者最近一段时间在搞视频直播相关的东西,虽然很早以前,也做过基于腾讯云、Anychat、容联云等几个第三方的实时视频直播,但是当时的播放器完全采用了第三方的东西,本次则是使用的ijkplayer播放器,ijkplayer播放器是哔哩哔哩开源出来的支持 直播/点播 的视频播放器,主要是基于FFmpeg,但是由于ijkplayer默认是不支持https的,笔者在ijkplayer的git问题社区也没有找到相关的iOS版ijkplayer支持https,无奈之下通过比对ijkplayer的脚本,和相关build流程,重新整理了一份ijkplayer支持https的流程,那么,废话不多说,开始~
1. 确保你的机器上已经安装了git和yasm,如果没有请在终端执行以下命令:
sudo apt-get update
sudo apt-get install git
sudo apt-get install yasm
//由于笔者已经按照,可以执行version指令,查看当前的安装版本
git —-version
yasm —-viersion
2.确认了git和yasm的安装后,开始编译的具体步骤
//在本地桌面上创建一个IJKPlayer文件夹,并移动到该文件夹下
cd ./Desktop/IJKPlayer/
//直接拉取源代码到本地
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios
//拉去分支后,会看到本地路径下出现一个ijkplayer-ios的文件夹,将当前路径移动到该目录下
cd ijkplayer-ios
//检查更新代码 这一步是切换到0.6.7版本,这是一个本地分支的切换,具体的你可以看自己而定
git checkout -B latest k0.6.7
//初始化,会把ffmpeg的代码拉取到本地
./init-ios.sh
./init-ios-openssl.sh
//移动当前目录到ios文件夹下
cd ios
//预编译先,先vim一下module脚本
vim ../config/module.sh
//添加预编译脚本内容为一下内容,然后点击 esc 退出 vim编译模式,执行 :wq 保存
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-openssl"
// 先clean一下FFmpeg相关的数据,避免在执行all时出现新旧数据冲突
./compile-ffmpeg.sh clean
//编译ffmpeg软解码库,这个过程会生成各种架构的ffmpeg,编译ffmpeg前要先compile OpenSSL,对openssl进行编译,如果未执行可能会报错:openssl not found
./compile-openssl.sh all
./compile-ffmpeg.sh all
到这里,关于ijkplayer的整个编译过程算是告一段落了
3.打framework文件具体步骤
//由于ijkplayer本身默认不支持https,因此在预编译FFmpeg和openssl时,工程的 ijkplayer-ios/ios/build/universal/lib 路径下会生成如下的.a静态包:
但是IJKMediaPlayer这个framework工程中,默认是不导入libcrypto.a和libssl.a文件的,而这两个文件恰恰是ijkplayer编译支持https的关键
打开 IJKMediaPlayer工程
进入 Build Phases -> Link Binary With Libraries
点击 “+”号 -> Add Other
添加 ijkPlayer-ios/ios/build/universal/lib 路径下的 libcrypto.a 和 libssl.a文件到 IJKMediaPlayer这个framework工程中
把模式从 debug调整为 release模式
编译IJKMediaPlayer工程(真机和模拟器均要编译)
cd 到 IJKMediaPlayer工程中的 products文件夹下,
//合并真机和模拟器:
lipo -create Release-iphoneos/IJKMediaFramework.framework/IJKMediaFramework Release-iphonesimulator/IJKMediaFramework.framework/IJKMediaFramework -output IJKMediaFramework
//此时products目录下会多出一个合并文件,注意:上一个操作中的合并指令中,合并的对象是IJKMediaFramework.framework文件中的IJKMediaFramework文件
//将上一步中的合并文件替换掉iphoneos/IJKMediaFramework.framework中
cp IJKMediaFramework Release-iphoneos/IJKMediaFramework.framework/
4.导入framework文件到demo工程中
本地新建一个demo工程,命名为:IJKPlayerDemo,笔者使用的是Xcode7.3创建的,此处有一个小问题,Xcode8.0以上要支持要手动去设置相关的网络配置,这里不多说明。
然后导入ijkplayer需要的依赖库,具体如图:
这些库包括:
IJKMediaFramework.framework
AudioToolbox.framework
AVFoundation.framework
CoreGraphics.framework
CoreMedia.framework
CoreVideo.framework
libbz2.tbd
libz.tbd
MediaPlayer.framework
MobileCoreServices.framework
OpenGLES.framework
QuartzCore.framework
UIKit.framework
VideoToolbox.framework
最后,由于ijkplayer涉及到c++相关的东西,因此需要配置c++兼容,可以去builds setting中设置路径,也可以跟壁纸一样偷懒,设置AppDelegate文件的后缀为: .mm,这是告诉工程:我的OC文件允许/兼容c++相关方法。
到这一步就完全结束啦~demo我本来打算放到cocoaChina上的,结果cocoaChina上传的最大文件只允许在5MB以内,因此,如果有需要的童鞋,可以给我留言~
便说一声,用ijkplayer的framework文件所打包的ipa包大概增加了2MB的体积,相对而言,这个大小还是能接受的~
//由于ijkplayer本身默认不支持https,因此在预编译FFmpeg和openssl时,工程的 ijkplayer-ios/ios/build/universal/lib 路径下会生成如下的.a静态包:
IJKPlayer播放器支持https流程相关推荐
- 一步步实现windows版ijkplayer系列文章之二——Ijkplayer播放器源码分析之音视频输出——视频篇...
一步步实现windows版ijkplayer系列文章之一--Windows10平台编译ffmpeg 4.0.2,生成ffplay 一步步实现windows版ijkplayer系列文章之二--Ijkpl ...
- IjkPlayer播放器秒开优化以及常用Option设置
IjkPlayer播放器秒开优化以及常用Option设置 96 GexYY 关注 1.5 2018.04.19 13:28* 字数 592 阅读 10797评论 9喜欢 32 ijkplayer和ff ...
- 一步步实现windows版ijkplayer系列文章之三——Ijkplayer播放器源码分析之音视频输出——音频篇
https://www.cnblogs.com/harlanc/p/9693983.html 目录 OpenSL ES & AudioTrack 源码分析 创建播放器音频输出对象 配置并创建音 ...
- Android音视频学习系列(七) — 从0~1开发一款Android端播放器(支持多协议网络拉流本地文件)
系列文章 Android音视频学习系列(一) - JNI从入门到精通 Android音视频学习系列(二) - 交叉编译动态库.静态库的入门 Android音视频学习系列(三) - Shell脚本入门 ...
- 视频编解码(十二):播放器编解码流程source、demux、decoder、output
一.播放器编解码流程source.demux.decoder.output 说白了播放器大致分为4大部分:source.demux.decoder.output. 1.source: 数据源,数据的来 ...
- ijkplayer播放器剖析(一)让ijkplayer播起来
一.引言: ijkplayer是一款对FFmpeg封装非常好的第三方开源播放器,遗憾的是,ijkplayer2.0似乎不开源,并且1.0版本更新也基本停止了,很多公司都会采用ijkplayer作为其播 ...
- 【音视频】ijkplayer播放器参数说明文档
[音视频]ijkplayer播放器参数说明文档 pragma mark - IJKMediaPlayback #pragma mark 通知IJKMPMediaPlaybackIsPreparedTo ...
- ijkplayer播放器剖析(四)音频解码与音频输出机制分析
ijkplayer播放器剖析系列文章: ijkplayer播放器剖析(一)从应用层分析至Jni层的流程分析 ijkplayer播放器剖析(二)消息机制分析 ijkplayer播放器剖析(三)音频解码与 ...
- java 视频边下边播,VideoViewDemo android 播放器,支持边下边播 238万源代码下载- www.pudn.com...
文件名称: VideoViewDemo下载 收藏√ [ 5 4 3 2 1 ] 开发工具: Java 文件大小: 194 KB 上传时间: 2014-09-19 下载次数: 5 详细说明:a ...
最新文章
- oracle的dual表
- 【转】你必须了解的Session的本质
- android组件通讯 Intent- 系统标准的Activity Action应用
- LabelImg 批量生成标注图片文件夹序号(起始值+终值)
- python发红包实现
- 喝下硅谷创业毒药后的 13 年
- 应用FileInputStream类,编写应用程序,从磁盘上读取一个Java程序,并将源程序代码显示在屏幕上
- http抓包实践--(四)-http压缩和url encode
- Windows应用替代方案接龙
- keil编译出现多重定义的问题
- 深入解析SQL Server 2008
- 关于微信公众号生成二维码如何保存到相册
- Android 电池系统节点信息简述
- GaussDB(for MySQL)近数据处理(NDP)解锁查询新姿势
- DH-UAP(大华统一应用开发平台)简介
- 使用Sentinel LDK(Linux)对程序(*.so文件)加壳
- 以太坊开发中ethers库的使用
- 微服务系列:Nacos的搭建演武版(单机+集群+监控)
- ONLYOFFICE历史版本开发技术之四
- 史玉柱亲笔写的脑白金策划方案