IJKPlayer播放器支持https流程
来源:互联网 发布:数据采集流程图 编辑:程序博客网 时间:2024/06/13 03:19
前言:
笔者最近一段时间在搞视频直播相关的东西,虽然很早以前,也做过基于腾讯云、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"
./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流程
- IJKPlayer如何支持https
- ijkplayer支持分段播放设置
- ijkplayer简单实现播放 ijkplayer是Bilibili基于ffmpeg开发并开源的轻量级视频播放器,支持播放本地网络视频,也支持流媒体播放。支持
- Android,ijkplayer增加https协议支持,编译运行ijkplayer
- ijkplayer播放器
- ijkplayer的支持https的设置
- Android ijkPlayer视频播放器
- 基于ijkplayer封装支持简单界面UI定制的视频播放器
- IJKplayer播放
- Ubuntu编译ijkplayer支持https和更多视频格式
- 开源播放器ijkplayer-android编译
- 基于IJKPlayer的简易视频播放器
- IJKplayer ,B站开源的播放器
- android视频播放器(基于ijkplayer)
- 基于IjkPlayer的视频播放器
- iOS ijkplayer 播放器 消息循环 详解
- ijkplayer视频播放器源码分析(android)
- 30速轻量山地车——2017全新X7
- java socket通信-传输文件图片
- 一次完整的HTTP请求与响应涉及了哪些知识?
- 分享几种Linux软件的安装方法
- 鸟哥的linux私房菜学习笔记《三十六》程序与进程管理
- IJKPlayer播放器支持https流程
- BUG记录--Iconfont图标在IE8浏览器的兼容问题
- Collections.sort的两种用法
- Android 最全面的Android Studio配置大全
- rabbitMQ安装监控
- 策略模式
- My SQL
- SVN的使用
- Hybrid 开发:JsBridge