七牛直播鉴权方式
来源:互联网 发布:淘宝自动上下架软件 编辑:程序博客网 时间:2024/05/16 14:15
本篇以PHP的代码为例
新版的鉴权方式(v2版本)
新Portal expiry 动态推流地址
描述:新版的主要使用的是Access_Key,Secret_Key来做鉴权方式
格式
rtmp://<RTMPPublishDomain>/<Hub>/<StreamKey>?e=<ExpireAt>&token=<Token>
生成推流凭证:
// 构造 RTMP 推流 Pathpath = "/<Hub>/<StreamKey>"// 为推流 Path 加上过期时间path = "/<Hub>/<StreamKey>?e=<ExpireAt>"// 计算 HMAC-SHA1 签名,并对签名结果做 URL 安全的 Base64 编码sign = hmac_sha1(path, "Secret_Key")encodedSign = urlsafe_base64_encode(sign)// 将 AccessKey 与 sign 拼接得到推流凭证token = "Access_Key" + ":" + encodedSign
PHP案例
require_once 'autoload.php';require_once"config.php";use Qiniu\Auth;$accessKey=Config::ACCESS_KEY;$secretKey=Config::SECRET_KEY;// 推流域名$dynamic="rtmp://pili-publish.pili.echohu.top";$time = time()+3600;//这里是/直播应用名/流名?e=当前的时间戳$path = "/1314xicong/huxicongp?e=".$time;// 计算 HMAC-SHA1 签名,并对签名结果做 URL 安全的 Base64 编码$sign=hash_hmac('sha1',$path,$secretKey,ture);$data=Qiniu\base64_urlSafeEncode($sign);// /直播的流名?e=<当前时间>$token = $accessKey.":".$data;$token=$dynamic.$path."&token=".$token;var_dump($token);
旧版的鉴权方式(v1版本)
描述:旧版的主要使用的是 publish来生成直播鉴权方式
1.static 静态推流地址
使用场景:无需要生成鉴权直接使用
直接使用PublishKey作为推流鉴权, publishUrl是: rtmp://<HubDomain>/<HubName>/<StreamTitle>?key=<PublishKey>
2.expiry 限时推流地址
使用场景:首先客户估计一个推流持续有效的时间(推荐为当前时间+30s),然后使用该时间签算token。 publishUrl是 rtmp://<HubDomain>/<HubName>/<StreamTitle>?expire=<ExpireAt>&token=<PublishToken>
ExpireAt为unixstamp,单位为秒。服务器会以服务器时间为准,在此时刻之前,允许推流。超过这个时刻,拒绝推流。token计算方法为:
sign = hmac_sha1("/<HubName>/<StreamTitle>expire=<ExpireAt>&<OtherKey>=<OtherValue>","<PublishKey>")publishToken= url_base64(sign)
PHP案例
<?php// 推流域名/hub$expiry="rtmp://pili-publish.pili.echohu.top/1314xicong/";//设定在一个小时后过期$time = time()+60*60;//这里是/直播应用名/流名?expire=过期时的时间戳$path = "/1314xicong/huxicongp?expire=".$time;//流的公钥$PublishKey="b321c6c6-9004-4cad-b29a-7d5dec42659b";// 计算 HMAC-SHA1 签名,并对签名结果做 URL 安全的 Base64 编码$sign=hash_hmac('sha1',$path,$PublishKey,ture);$data=base64urlSafeEncode($sign);$token = "huxicongp?expire=".$time."&token=".$data;echo($expiry.$token);function base64urlSafeEncode($data) { $find = array('+', '/'); $replace = array('-', ''); return str_replace($find, $replace, base64_encode($data)); }
dynamic 动态推流地址
使用场景:需要秘钥来获取直播推流
需要签算nonce和token。 publishUrl是 rtmp://<HubDomain>/<HubName>/<StreamTitle>?nonce=<Nonce>&token=<PublishToken>
token计算方法为:
sig = hmac_sha1("/<HubName>/<StreamTitle>?nonce=<Nonce>&<OtherKey>=<OtherValue>", "<PublishKey>")publishToken = url_base64(sign)```PHP案例
0 0
- 七牛直播鉴权方式
- 七牛直播demo链接
- 七牛直播服务sdk
- 七牛直播demo加载页
- 七牛 直播的延迟与优化
- python 七牛的直播实时截图
- 基于七牛播放器的直播
- 【直播】七牛直播RTMP 实现 一般可以用于直播等应用等 更新中
- 七牛---借助第三方平台实现移动直播
- 七牛---Pili直播推流SDK问题总结
- 何李石:七牛直播云技术详解
- 七牛、阿里云、金山云、腾讯云直播调研
- java七牛视频直播的那些事
- 使用七牛直播平台SDK和环信IM低仿映客直播APP的应用
- 直播APP的应用(使用七牛直播平台SDK和环信IM低仿映客)
- 阿里云直播鉴权和直播地址算法
- 七种寻址方式
- 七种寻址方式
- [ 错误 ] - app没有显示在admin中
- UVA 10766 Organising the Organisation(生成树计数)
- 置顶 一位近60岁的美国程序员令我狼狈不堪的回复
- 数据类型转换
- 有关文件的操作 fopen/fwriite/fseek/ftell/fread/fclose等函数的使用方法
- 七牛直播鉴权方式
- Java学习一(JDK环境搭建)
- 写给自己的北漂生涯
- HTML5中表单元素常用的属性设置
- 安卓学习笔记--- dp与Px之间的换算
- HDU 1215 七夕节
- CSS cursor 属性
- 【9502】子集问题
- eclipse安装之后出现的问题