前言:

笔者最近一段时间在搞视频直播相关的东西,虽然很早以前,也做过基于腾讯云、Anychat、容联云等几个第三方的实时视频直播,但是当时的播放器完全采用了第三方的东西,本次则是使用的ijkplayer播放器,ijkplayer播放器是哔哩哔哩开源出来的支持 直播/点播 的视频播放器,主要是基于FFmpeg,但是由于ijkplayer默认是不支持https的,笔者在ijkplayer的git问题社区也没有找到相关的iOS版ijkplayer支持https,无奈之下通过比对ijkplayer的脚本,和相关build流程,重新整理了一份ijkplayer支持https的流程,那么,废话不多说,开始~

1. 确保你的机器上已经安装了gityasm,如果没有请在终端执行以下命令:

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流程相关推荐

  1. 一步步实现windows版ijkplayer系列文章之二——Ijkplayer播放器源码分析之音视频输出——视频篇...

    一步步实现windows版ijkplayer系列文章之一--Windows10平台编译ffmpeg 4.0.2,生成ffplay 一步步实现windows版ijkplayer系列文章之二--Ijkpl ...

  2. IjkPlayer播放器秒开优化以及常用Option设置

    IjkPlayer播放器秒开优化以及常用Option设置 96 GexYY 关注 1.5 2018.04.19 13:28* 字数 592 阅读 10797评论 9喜欢 32 ijkplayer和ff ...

  3. 一步步实现windows版ijkplayer系列文章之三——Ijkplayer播放器源码分析之音视频输出——音频篇

    https://www.cnblogs.com/harlanc/p/9693983.html 目录 OpenSL ES & AudioTrack 源码分析 创建播放器音频输出对象 配置并创建音 ...

  4. Android音视频学习系列(七) — 从0~1开发一款Android端播放器(支持多协议网络拉流本地文件)

    系列文章 Android音视频学习系列(一) - JNI从入门到精通 Android音视频学习系列(二) - 交叉编译动态库.静态库的入门 Android音视频学习系列(三) - Shell脚本入门 ...

  5. 视频编解码(十二):播放器编解码流程source、demux、decoder、output

    一.播放器编解码流程source.demux.decoder.output 说白了播放器大致分为4大部分:source.demux.decoder.output. 1.source: 数据源,数据的来 ...

  6. ijkplayer播放器剖析(一)让ijkplayer播起来

    一.引言: ijkplayer是一款对FFmpeg封装非常好的第三方开源播放器,遗憾的是,ijkplayer2.0似乎不开源,并且1.0版本更新也基本停止了,很多公司都会采用ijkplayer作为其播 ...

  7. 【音视频】ijkplayer播放器参数说明文档

    [音视频]ijkplayer播放器参数说明文档 pragma mark - IJKMediaPlayback #pragma mark 通知IJKMPMediaPlaybackIsPreparedTo ...

  8. ijkplayer播放器剖析(四)音频解码与音频输出机制分析

    ijkplayer播放器剖析系列文章: ijkplayer播放器剖析(一)从应用层分析至Jni层的流程分析 ijkplayer播放器剖析(二)消息机制分析 ijkplayer播放器剖析(三)音频解码与 ...

  9. java 视频边下边播,VideoViewDemo android 播放器,支持边下边播 238万源代码下载- www.pudn.com...

    文件名称: VideoViewDemo下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 194 KB 上传时间: 2014-09-19 下载次数: 5 详细说明:a ...

最新文章

  1. oracle的dual表
  2. 【转】你必须了解的Session的本质
  3. android组件通讯 Intent- 系统标准的Activity Action应用
  4. LabelImg 批量生成标注图片文件夹序号(起始值+终值)
  5. python发红包实现
  6. 喝下硅谷创业毒药后的 13 年
  7. 应用FileInputStream类,编写应用程序,从磁盘上读取一个Java程序,并将源程序代码显示在屏幕上
  8. http抓包实践--(四)-http压缩和url encode
  9. Windows应用替代方案接龙
  10. keil编译出现多重定义的问题
  11. 深入解析SQL Server 2008
  12. 关于微信公众号生成二维码如何保存到相册
  13. Android 电池系统节点信息简述
  14. GaussDB(for MySQL)近数据处理(NDP)解锁查询新姿势
  15. DH-UAP(大华统一应用开发平台)简介
  16. 使用Sentinel LDK(Linux)对程序(*.so文件)加壳
  17. 以太坊开发中ethers库的使用
  18. 微服务系列:Nacos的搭建演武版(单机+集群+监控)
  19. ONLYOFFICE历史版本开发技术之四
  20. 史玉柱亲笔写的脑白金策划方案

热门文章

  1. IntelliJ IDEA的简介
  2. 《Adobe Flash CS6中文版经典教程》——1.7 使用“工具”面板
  3. xbox 0x_Xbox Series X之路
  4. SAP ABAP 工单增强
  5. AD域PowerShell常用命令——Get-ADuser
  6. win10下怎样设置的输入栏M图标和中英文输入提示
  7. [思维模式-19]:《复盘》-7- “积”篇 - 操作复盘- 如何做好复盘
  8. HashMap的存储
  9. 工业机器视觉系统开发过程
  10. 浅谈民机软件适航宝典-DO-178