jancd/qiniu-developer_ShareGPT huggingface dataset:
human: 如何处理七牛云的直播云直播云ICP和公安备案

gpt: [直播云](https://developer.qiniu.com/pili) > 产品简介 > 直播云ICP和公安备案

#  直播云ICP和公安备案

最近更新时间: 2021-09-14 11:50:29

# 一、七牛云直播域名ICP和公安备案逻辑

根据相关要求，在七牛直播云使用直播服务时，需要对应的直播域名同时进行ICP备案和公安备案

由于一部分用户接入时我们暂时没有公安备案，因此我们给了30天的缓冲期。

使用直播服务时，双备案的逻辑如下：

1、创建hub时，绑定域名时检测是否有ICP备案，如果没有ICP备案，则无法创建hub或者绑定域名

2、域名有ICP备案，但是没有公安备案

2.1、如果是沪备的ICP备案域名，没有公安备案无法接入  
2.2、如果是非沪备的ICP备案域名，没有公安备案，允许接入测试，但是在30天内必须完成公安备案，逾期将会对直播域名进行封禁处理

为了您的业务不受影响，请尽快对域名进行公安备案。

# 二、注意事项

1、此逻辑仅在新版portal控制台生效，旧版的portal控制台依旧是需要ICP和公安双备案才能接入

2、未公安备案的域名，进行缓冲期，是以主域名的方式进行的，主域名到期未进行公安备案，则对应所有的子域名会封禁处理  
即用户以子域名创建了一个hub，此时公安备案倒计时对主域名进行倒计时，如果之后，用户又以另外一个子域名创建另外一个hub，则另外一个hub的域名倒计时时间以主域名为准。  
举例：7月1日创建hub1的域名是test1.qiniu.com，7月15日创建hub2的域名是test2.qiniu.com，此时系统只会以第一次创建hub1时的qiniu.com这个主域名进行倒计时，即hub2中的test2.qiniu.com域名可使用倒计时时间到7月30日为止，31日hub1和hub2对应的域名均会进行封停处理

3、域名进入缓冲期，30天后还未进行公安备案的，之后这个域名的子域名也不再支持绑定或者创建hub

4、域名进入缓冲期后，则不会受hub的删除或新建所影响。  
举例：用户7月1日以test1.qiniu.com创建了hub1，15天后将hub1删除，7月15日后再以test2.qiniu.com创建了hub2，则hub2的域名同样使用时长仅有15天，7月30日后会对域名进行封禁处理，绑定域名同理。

5、用户30天内未完成公安备案，已经封禁的域名，在30天之后再完成公安备案，将于完成公安备案后的第二天解除封禁

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云欠费说明

gpt: [直播云](https://developer.qiniu.com/pili) > 购买指南 > 欠费说明

#  欠费说明

最近更新时间: 2021-09-18 14:05:26

根据七牛云[新版欠费流程 __](https://developer.qiniu.com/af/kb/5996/new-owe-the-process-
description)规定，七牛云账号欠费在直播云这边会有两个阶段：欠费保护期和欠费冻结

# 欠费保护期

在欠费保护期内，无法创建新的直播空间HUB，但存量的业务可以正常使用。

## 欠费保护期功能限制列表

功能 | 限制说明  
---|---  
创建HUB | 禁止  
修改HUB配置 | 允许  
域名管理 | 允许修改和绑定域名  
直播流管理 | 允许创建流和修改直播流配置  
直播推拉流 | 允许在已创建的hub内使用推拉流服务  
云导播台 | 允许创建，开启和编辑云导播台  
PUB转推 | 允许创建，开启和编辑PUB转推任务  
  
# 欠费冻结

进入欠费冻结状态，则直播云内将停止改账号的所有服务，包括已创建的HUB也无法再进行推拉流

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云低延时直播Geek快速入门

gpt: [直播云](https://developer.qiniu.com/pili) > 快速入门 > 低延时直播Geek快速入门

#  低延时直播Geek快速入门

最近更新时间: 2021-11-02 15:27:35

本教程将指引您快速了解并且使用七牛云低延时直播GEEK产品，在使用低延时直播之前，您可以先访问[低延时直播功能介绍](https://developer.qiniu.com/pili/product_introduction/9903/low-
latency-live-function-is-introduced)文档来了解什么是低延时直播服务。

# 准备工作

在使用低延时直播之前，需要先注册七牛云账号，并且认证通过。  
然后再创建直播空间。详细介绍请参考：[直播云快速入门](https://developer.qiniu.com/pili/1221/the-console-
quick-start)  
在创建完直播空间，并且域名解析等也完成后，进入下面步骤

# 步骤一：获取推流地址

进入创建的hub，选择直播直播流管理，点击添加流，创建直播流  
![image.png](https://dn-odum9helk.qbox.me/FpbkxBUVnkHyCRMdxZqfnOa2RSrJ)  
添加完成之后，进入流-实时直播页面，找到推流地址栏目，获取当前流的推流地址  
![image.png](https://dn-odum9helk.qbox.me/Fjw59thYo2eU0fkZyKgCf7nmqkTx)  
**备注**  
若hub开启了直播鉴权，该页面的推流地址有效期默认为1小时，如果需要自定义推流地址的有效时长，则点击更新按钮更新推流地址的有效时间。

# 步骤二：直播推流

您可根据业务场景将生成好的推流地址输入到对应的推流软件中。  
如PC端，一般使用OBS进行推流。  
因为低延时直播在播放带B帧的直播流会出现画面撕裂等现象，因此推流时需要注意去掉B帧。  
如使用OBS推流，可以通过配置去掉B帧，如下图。[OBS推不带B帧直播流详细介绍](https://developer.qiniu.com/pili/9886/obs-
push-flow-excluding-b-frame-guidelines)  
![image.png](https://dn-odum9helk.qbox.me/FhW7PA_yBvY6ARNIQxGFOp-f4Ihg)  
如使用命令行推流，命令行推流示例：./ffmpeg -re -i ‘demo.mp4’ -c copy -c:v libx264 -bf 0 -f flv
‘rtmp://pili-publish.xxxx.com/lb-test/streamid’  
若推流侧无法自行适配，可以使用我们的服务端转码功能，在播放 URL 流名称后面添加
`@zerolatency`（样例：https://xxxx.com/hub/stream.m3u8@zerolatency)，即可顺利支持低延时直播（转码将产生一定费用，将按照原始流转码规格进行收费，并增加
200-400ms 延时，对播放延时有极高要求的客户，请适配低延时推流规格)。

# 步骤三：获取播放地址

推流成功后，进入流详情页面，获取播放地址：  
![image.png](https://dn-odum9helk.qbox.me/Ftgf1RJrqJDDh6TkC32HQQv5QNls)  
**备注**  
若域名开启了时间戳防盗链，该页面的播放地址有效期默认为1小时，如果需要自定义播放地址的有效时长，则点击更新按钮更新播放地址的有效时间。

# 步骤四：低延时直播播放

七牛云低延时播放器提供[低延时Web SDK __](https://developer.qiniu.com/pili/7730/geek-web-
sdk)、[低延时Android SDK __](https://developer.qiniu.com/pili/7731/geek-android-
sdk)和[低延时iOS SDK __](https://developer.qiniu.com/pili/7732/geek-ios-
sdk)三种SDK接入播放方式。  
将步骤三的任意一个播放地址放入七牛云低延时播放器中进行播放，即实现了低延时播放。  
我们提供了Web端的播放器Demo，您可以使用[Pili-player-demo __](https://pili-player-
demo.qiniu.com/)，体验七牛云的低延时直播。  
![image.png](https://dn-odum9helk.qbox.me/FvVqYGW_7p1-w7Bpn95tujr7I8OU)

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云直播云IAM使用帮助手册

gpt: [直播云](https://developer.qiniu.com/pili) > 快速入门 > 直播云IAM使用帮助手册

#  直播云IAM使用帮助手册

最近更新时间: 2021-09-24 14:55:13

  1. 什么是IAM
  2. 什么是IAM用户
  3. IAM功能特点
  4. 如何创建和使用直播云IAM

# 什么是IAM

IAM是七牛云提供的管理用户身份与资源访问权限的服务。  
IAM允许七牛云账号下创建并管理多个用户，并允许给单个用户或一组用户分配不同的权限策略，从而实现不同用户拥有不同资源访问权限的目的。

# 什么是IAM用户

IAM用户是IAM的一种实体身份类型，有确定的身份ID和身份凭证，它通常与某个确定的人或应用程序一一对应。  
一个七牛云账号下可以创建多个IAM用户，对应企业内的员工、系统或应用程序。  
IAM用户不拥有资源，不能独立计量计费，由所属七牛云账号统一控制和付费。  
IAM用户归属于七牛云账号，只能在所属七牛云账号的空间下可见，而不是独立的七牛云账号。  
IAM用户必须在获得七牛云账号的授权后才能登录控制台或使用API操作七牛云账号下的资源。

# IAM功能特点

IAM拥有以下几个功能特点：

  1. 管理控制所有IAM用户及其密钥
  2. 管理控制每个IAM用户能够访问的资源权限
  3. 管理控制直播云/对象存储/cdn的权限策略
  4. 管理控制IAM用户组及其权限

# 如何创建和使用直播云IAM账号

### 操作步骤

##### 1\. 进入IAM管理页面

使用七牛云账号登录portal控制台，进入[访问管理 __](https://portal.qiniu.com/iam/overview)页面，如下图  
![image.png](https://dn-odum9helk.qbox.me/Fi0moMeB6de29enV7NVklGQ-icVC)

##### 2\. 创建直播云策略

点击策略管理-创建策略按钮，进入创建策略页面  
![image.png](https://dn-odum9helk.qbox.me/FoUFDcAu7UeSreX_i4ugAgip_1Ti)  
输入策略名，备注信息，选择服务选择直播云，如下图  
![image.png](https://dn-odum9helk.qbox.me/FoUFDcAu7UeSreX_i4ugAgip_1Ti)  
点击下一步进入选择操作页面，这配置栏中将开关打开  
如果要只读功能的权限，则将查询直播空间信息/查询域名信息/查询直播流信息和查询直播数据统计信息的功能配置开启，其他功能关闭即可。  
如果需要全部的读写权限，则将功能的配置全部开启。可以根据实际需要进行配置。  
![141628065217_.pic_hd_副本.png](https://dn-
odum9helk.qbox.me/FjPnGmhOiKyyW3GX4JbolDQ-VBy-)  
点击下一步进入关联资源页面，点击关联按钮，可以关联所有直播空间或者关联某几个特定的直播空间。  
所有直播空间：指改用户下所有的直播空间这个策略均可以查看或者管控  
指定直播空间：指可以指定某几个直播空间中这个策略中允许查看或者管控  
前缀匹配直播空间：当直播空间太多时，可以匹配前缀的直播空间给这个策略进行查看或管控  
![image.png](https://dn-odum9helk.qbox.me/FiQfI9mkaA49wu1CyuENYer1ZNZH)  
点击保存，完成后，即是绑定这个策略的IAM用户，登录控制台后，可以对这些空间进行管理操作。

##### 3\. 创建IAM用户

点击用户管理-创建用户，进入创建用户页面  
![image.png](https://dn-odum9helk.qbox.me/FnBO3AaOzKlm2lQtqa13Ek66-Hb5)  
填入用户名和密码后，点击创建即可完成IAM用户的创建.  
创建完成后，在用户管理页面，找到对应的用户名，点击授权，进入策略授权页面  
![image.png](https://dn-odum9helk.qbox.me/FjZz8joob6UoKPEQJdaiwfXj7M01)  
将之前创建的策略名称选中有移入已选择策略，点击保存，即给这个用户授权了此策略

##### 4\. IAM用户登录

在访问管理的概览页面下，复制用户登录链接.  
![image.png](https://dn-odum9helk.qbox.me/FqAGr0QJCOF12nIM5S8NATxlWfLZ)  
浏览器打开这个链接，填写创建好的IAM用户名和密码，即可登录控制台，进入直播空间进行管理操作  
![image.png](https://dn-odum9helk.qbox.me/FmXTbWQACB5ZzAPeDJ0_sZjll-fS)

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云SRT推流方法

gpt: [直播云](https://developer.qiniu.com/pili) > 快速入门 > SRT推流方法

#  SRT推流方法

最近更新时间: 2021-07-30 11:58:55

SRT（Secure Reliable
Transport）是一个开源的视频传输协议和技术栈，主要优化在不可靠网络（非拥塞导致的丢包）环境下实时视频的传输性能。在弱网环境下，推荐使用SRT协议推流。

目前如七牛推流SDK、OBS等工具已支持SRT协议，下面以OBS为例，说明如何进行SRT协议推流：

  1. 获取SRT推流地址，在配置好推流域名后，可以从管理控制台—>直播空间—>直播流管理—>流属性中查找相应的SRT推流地址：  
![](https://dn-odum9helk.qbox.me/Fju2dZWAVE_vAF8QrzF7Qjk6B9Ac)  
或者可以按照 [推流地址生成规则 __](https://developer.qiniu.com/pili/8170/srt-push-flow-
address)自主拼接SRT推流地址。

  2. 确认所使用的OBS版本不低于25.0，[OBS官方下载地址 __](https://obsproject.com/download)
  3. 打开 OBS 推流软件，在设置—>推流中进行配置  
![](https://dn-odum9helk.qbox.me/ln3GS9aoJbZf7W1GcLaDHcPyk7M8)

  4. 服务选择自定义，在服务器中填写上面获取到的完整推流地址，同时串流密钥留空，如图：  
![](https://dn-odum9helk.qbox.me/ljMdD2UMxGpDo0AqJSWj68Hh8GlY)

  5. 点击确定完成设置后，在主界面点击开始推流即可  
![](https://dn-odum9helk.qbox.me/lsQZSnp4wBiKQU6f3rL-cR3XH5rm)

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云直播鉴黄接入文档

gpt: [直播云](https://developer.qiniu.com/pili) > 快速入门 > 直播鉴黄接入文档

#  直播鉴黄接入文档

最近更新时间: 2021-01-28 15:07:48

# 概述

当前Hub级别或者单流级别都可以开启/关闭鉴黄功能。开启后，系统会根据用户设置的时间间隔对直播流进行截帧鉴黄，并根据用户设定的阈值进行回调通知。

## Hub级别鉴黄功能

开启后，Hub下的所有流都会开始鉴黄。

## 单流级别鉴黄功能

开启后，用户可以针对某些主播的流开启鉴黄功能。  
关闭后，即使Hub的鉴黄功能是开启状态，该流也不会鉴黄。

# 如何开启

## Hub开启

前往 `https://portal.qiniu.com/hub/<客户的Hub>/configuration` 配置(如下图)  
![hubnrop](https://dn-odum9helk.qbox.me/hubnrop.png)

  * 全局开启/关闭：开启/关闭Hub级别的功能
  * 截帧间隔： 每个流隔多久(秒)进行截帧并鉴黄
  * 通知阈值： 鉴黄结果的rate大于等于该值时，会把这次鉴定结果发送给客户
  * 回调通知URL：用户接受回调通知的业务服务器URL
  * 疑似帧通知：开启后，小于通知阈值的疑似帧也会发起回调通知

## 单流开启

启用单流鉴黄首先需要确保上面的Hub配置除了鉴黄开关（应当是关闭状态），其余值都配置正确。 单流级别开启/关闭需要通过API接口。

### a.创建流时开启/关闭

创建流时带上布尔类型的”nropEnable”字段：

  * true，开启
  * false，关闭
  * 没有该字段，沿用Hub的状态

    
    
    POST /v2/hubs/<Hub>/streams
    Host: pili.qiniuapi.com
    Authorization: <QiniuToken>
    Content-Type: application/json
    
    {
        "key": "<StreamKey>",
        "nropEnable": "<NropEnable>" //选填
    }
    

### b.现有流开启/关闭

    
    
    POST /v2/hubs/<Hub>/streams/<EncodedStreamKey>/nrop
    Host: pili.qiniuapi.com
    Authorization: <QiniuToken>
    Content-Type: application/json
    
    {
        "nropEnable": <NropEnable> //布尔类型
    }
    

# 回调通知内容

根据用户设定的阈值，发现黄色内容后通知给客户的协议

    
    
    POST <NotifyURL>
    Content-type: application/json
    {
        "hub": "<Hub>",
        "streamId": "<Stream ID>",// 流ID，形如z1.test.stream1
        "stream": "<Stream>",// 流名
        "rate": <Rate>,// 介于0-1间的浮点数，表示该图像被识别为色情的概率值，概率越高、机器越肯定
        "time": <Timestamp>,
        "ts": "<TS>",// 对应的ts文件名
        "label": "<porn|sexy|normal>",  标签分别 <涉黄|性感|正常>
        "review": <Bool> // true表示需要人工审核，false为不需要
    }
    

# 服务价格

总调用量P(单位：万张) | 调用单价(单位：元/百张)  
---|---  
P < = 300 | 0.18  
300 < P <=1500 | 0.16  
1500 < P <= 3000 | 0.15  
P > 3000 | 0.13  
  
# 使用量预估

## 方法一

根据主播时长预估：  
使用量=直播总时间(秒)/截帧间隔(秒)

例如，某月平均每日直播时长为2000小时，截帧间隔20秒，那么

平均每日使用量=2000x60x60/20=360000张；月度使用量=360000x30=1080万张

产生费用=0.18元/百张x300万张+0.16元/百张x780万张=17880元

## 方法二

根据上行流量预估(按每个流1M码率)：  
使用量=上行流量(GB) x 8000/截帧间隔(秒)

例如，某月上行流量为20000GB，截帧间隔20秒，那么

使用量=20000x8000/20=800万张

产生费用=0.18元/百张x300万张+0.16元/百张x500万张=13400元

**七牛云直播客户可在开发者中心查看上行流量数据，计算结果为经验值。**

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云小程序直播接入文档

gpt: [直播云](https://developer.qiniu.com/pili) > 快速入门 > 小程序直播接入文档

#  小程序直播接入文档

最近更新时间: 2018-12-25 15:30:29

# 快速开始运行小程序流程

## 1.建立小程序项目

在微信公众平台注册小程序，在 开发设置 上获取 AppID，打开微信开发者工具，为小程序目录打开编辑页面，填写 AppID。

![](https://dn-odum9helk.qbox.me/FkTCGhX2NdamE6DbM218aIjYvJIr)

## 2.获取七牛直播小程序代码

七牛小程序直播的前后端代码都已经开放在 github：<https://github.com/pili-engineering/wxapp-live-
demo> 上面，客户可以自行下载配置。

## 3.更改后端参数

  1. 编辑 pili.js：<https://github.com/pili-engineering/wxapp-live-demo/blob/master/server/pili.js>
  2. 配置七牛的 access key/secret key
  3. 配置七牛的推流和推流播放的地址
  4. 换成自己在七牛直播云上的空间名称
  5. 编辑 utils/wechat.js 改为自己的微信小程序 APPID 和 密钥
  6. 按照server文件夹下的Readme文件开启后端服务 <https://github.com/pili-engineering/wxapp-live-demo/blob/master/server/README.md>

![](https://sdk-release.qnsdk.com/1545722811576.jpg)

## 4.配置微信小程序端；

编辑 app.js 里的 host 参数，修改为上一步后端开启后的服务地址

![](https://dn-odum9helk.qbox.me/FjCo0YSfQPrGpZSFJ6VEDga7kqzM)

注意：调试的时候，打开不校验 https 设置。

![](https://dn-odum9helk.qbox.me/FpOHTv634PsGd1Qft9xZFjudmnTv)

## 5.编译运行

注意 live-player 和 live-pusher 组件都无法在开发者工具上预览，所以请自行用手机扫码使用开发版来测试

![](https://dn-odum9helk.qbox.me/Fl3qXB1D4U9BgSMU7g7LCyCcUmpe)

# 关于七牛参数配置可参考以下流程

## 1.如何获得 AK，SK

登录七牛帐号，点击 个人面板 > 密锁管理 ，获得 Access key 和 Secret Key。

![](https://dn-odum9helk.qbox.me/FkkVDt1c4aRAEu4KcX0vV3HEmtPk)

## 2.如何配置七牛的推流和推流播放的地址

### 2.1 创建直播空间

  1. 在[七牛开发者平台首页](https://portal.qiniu.com/create)定位到 **七牛官方资源 > 直播空间** 资源卡片；  
![](https://dn-odum9helk.qbox.me/FgLQh05oxpn4cm4j7u9g0Y-DDUio)

  2. 点击立即添加，进入[创建直播空间](https://portal.qiniu.com/hub/create)页面，并填写直播空间基本信息，分别输入直播空间名称和直播域名，系统会自动为您生成直播服务使用的推流域名及播放域名；  
![](https://dn-odum9helk.qbox.me/FrlofXy_KdOM6sYfeNx7nyMihgFr)

  3. 点击下一步，进入存储空间配置页，进行存储空间及存储过期时间配置；若没有存储空间，点击“新建存储空间”进行存储空间的设置；  
![](https://dn-odum9helk.qbox.me/FvsCaqrkNM0LjnDR93_NWXJBHUra)

  4. 点击下一步，进入高级设置，配置直播封面、直播状态通知、直播鉴权等，完成后即可创建直播空间  
![](https://dn-odum9helk.qbox.me/FpTutjJHKVVGJJhBSt73TAb72c65)

## 2.2 CNAME 直播域名

  1. 进入直播空间首页，查看直播域名信息及状态。
  2. 鼠标定位至各域名 “不可用” 状态，查看域名 CNAME 信息。
  3. 根据直播域名及 CNAME 信息，到域名所归属的 DNS 管理平台配置 CNAME。
  4. CNAME 配置成功后，域名状态自动更改为 “可用” 状态。
  5. 当域名未备案时，不可用状态提示 “域名未备案，请对xxxx.com进行备案”，CNAME 信息将在域名备案审核成功后生成。

## 2.3 创建直播流

  1. 在直播空间首页，点击 直播流管理，进入直播流管理界面。

![](https://dn-odum9helk.qbox.me/Ft6aOnUHz0KrX07U7kJeaUkTuOSD)

  2. 点击 添加流，进入创建直播流界面。

![](https://dn-odum9helk.qbox.me/FtYyH-oBFASW8uUbAUHL4hiXzGHn)

  3. 填写直播流名称，点击确定创建，进行直播流的创建。

![](https://dn-odum9helk.qbox.me/Fp5A4vkB9OjVRTqOkEYG6LBvztfo)

## 2.4 获取推流播放地址

  1. 在直播流管理 > 所有流 中，点击刚才创建的流，查看当前直播流的详细信息。

![](https://dn-odum9helk.qbox.me/FinrtFySwry_SuhRWMl8SeXEn0dE)

  2. 定位到 推流地址 和 播放地址，获取推流地址和播放地址。

![](https://dn-odum9helk.qbox.me/FukBRHGP8x-w6wum-fbLoKU0ru18)

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云请求鉴权

gpt: [直播云](https://developer.qiniu.com/pili) > API 文档 > 请求鉴权

#  请求鉴权

最近更新时间: 2021-10-29 15:50:39

七牛云会对每一个API请求进行身份验证，用户需要使用 [密钥（AK／SK）
__](https://portal.qiniu.com/user/key)经过特定方法生成[管理凭证 QiniuToken
__](https://developer.qiniu.com/kodo/1201/access-token)并在 HTTP
请求头部使用Authorization 字段传入该管理凭证，形式如下：

    
    
    Authorization: <QiniuToken>
    

七牛支持对各语言服务端 SDK 都已经封装管理凭证，不需要再手动生成，各 SDK 详细信息可见[软件开发工具包
__](https://developer.qiniu.com/sdk#official-sdk)。

# 生成QiniuToken

## 准备工作.获取密钥（AK／SK）

生成七牛管理凭证，需要用到密钥，密钥包含AccessKey/SecretKey。第一次使用七牛API之前，您需要在七牛开发者平台的 [密钥管理
__](https://portal.qiniu.com/user/key)中取得密钥。

**注意：** 密钥（AccessKey/SecretKey）是非常重要且隐私的信息，泄露可能会造成严重的后果，请不要直接放在客户端。

具体步骤如下：

  1. 登录 [七牛开发者平台 __](https://portal.qiniu.com/)。
  2. 进入七牛 [个人中心/密钥管理 __](https://portal.qiniu.com/user/key)页面。
  3. 在 密钥管理 页面，获取一对AccessKey/SecretKey。

## Step1. 构造待签名的 Data

待签名的data字符串由以下几个参数构成，拼接规则为:

    
    
    data = <Method> + " " + <Path> + "?<RawQuery>" + "\nHost: " + <Host> + "\nContent-Type: " + <contentType> + "\n\n" + <bodyStr>
    

注：<>里面的内容需替换成相应的变量。

参数 | 必填 | 说明  
---|---|---  
Method | 是 | 支持 GET、POST、PUT 和 DELETE 方式, 注意方法为全大写  
Path | 是 | 请求路径，实际的请求路径详见各接口说明的请求包  
RawQuery | 否 | 如不存在则不用添加 ?<RawQuery>  
Host | 是 | 请求域名，例如：pili.qiniuapi.com  
contentType | 否 | 请求内容类型，如果参数为空，则不用加 "\nContent-Type: " + <ontentType >  
bodyStr | 否 | 请求Body <bodyStr>: 如果 <Content-Length> 存在且 Body 不为空，同时 <Content-Type> 存在且不为空也不等于 "application/octet-stream"时，才需要加上  
  
注意：无论`<Content-Type>`和 `<bodyStr>` 是否为空，中间的 “\n\n” 都一定要加。

代码为：

    
    
    // 1. 添加 Path
    data = "<Method> <Path>"
    // 2. 添加 Query，前提: Query 存在且不为空
    if "<RawQuery>" != "" {
    data += "?<RawQuery>"
    }
    // 3. 添加 Host
    data += "\nHost: <Host>"
    // 4. 添加 Content-Type，前提: Content-Type 存在且不为空
    if "<Content-Type>" != "" {
    data += "\nContent-Type: <Content-Type>"
    }
    // 5. 添加回车
    data += "\n\n"
    // 6. 添加 Body，前提: Content-Length 存在且 Body 不为空，同时 Content-Type 存在且不为空或 "application/octet-stream"
    bodyOK := "<Content-Length>" != "" && "<Body>" != ""
    contentTypeOK := "<Content-Type>" != "" && "<Content-Type>" != "application/octet-stream"
    if bodyOK && contentTypeOK {
    data += "<Body>"
    }
    

## Step2.计算 HMAC-SHA1 签名，并对签名结果做[URL 安全的 Base64 编码
__](https://developer.qiniu.com/kodo/1231/appendix)

    
    
    sign = hmac_sha1(data, "Your_Secret_Key")
    encodedSign = urlsafe_base64_encode(sign)
    

## Step3.将 Qiniu 标识与 AccessKey、encodedSign 拼接得到管理凭证

    
    
    <QiniuToken> = "Qiniu " + "Your_Access_Key" + ":" + encodedSign
    

# QiniuToken示例

    
    
    GET /v2/hubs/PiliSDKTest/streams/Y2FydGVyMjAwMA== HTTP/1.1
    Host: pili.qiniuapi.com
    User-Agent: pili-sdk-go/v2 go1.6 darwin/amd64
    Authorization: Qiniu 7O7hf7Ld1RrC_fpZdFvU8aCgOPuhw2K4eapYOdII:PGTUV-oRxWAIl6mdneJPSJieyyQ=
    Content-Type: application/x-www-form-urlencoded
    Accept-Encoding: gzip
    

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云请求结构

gpt: [直播云](https://developer.qiniu.com/pili) > API 文档 > 请求结构

#  请求结构

最近更新时间: 2023-06-05 11:06:28

# 服务地址

七牛云直播使用不同的域名接入不同的功能实现，具体信息见下表及每个API的定义。

功能类别 | 域名  
---|---  
直播空间管理 | pili.qiniuapi.com  
域名管理 | pili.qiniuapi.com  
直播流管理 | pili.qiniuapi.com  
数据统计 | pili.qiniuapi.com/statd  
IAM账号访问 | pili-iam.qiniuapi.com  
导播台服务 | pili-caster.qiniuapi.com  
Pub转推服务 | 国内：pili-pub.qiniuapi.com 海外：pili-hw-pub.qiniuapi.com  
  
注意：使用IAM账号调用直播空间管理、域名管理、直播流管理和数据统计相关接口时，需要使用IAM域名。

# 通信协议

支持通过 HTTP 或 HTTPS 进行通信，为了更高的安全性，建议使用 HTTPS 发送API请求。

# 请求方法

查询类请求需要使用 `GET` 方法，新增、更新类操作请求需要使用 `POST` 方法 ，删除类操作请求需要使用 `DELETE`
方法，具体格式参考每个API定义。

在使用 `POST` 方法请求接口时，需要带请求头 `Content-Type:application/json`。

# 字符编码

请求及返回结果都使用 UTF-8 字符集进行编码。

# 时间戳格式

七牛云直播相关API的请求参数和返回数据中，如无特殊声明，均为Unix时间戳，长度为10位，单位为秒。

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云直播地址

gpt: [直播云](https://developer.qiniu.com/pili) > API 文档 > 直播地址

#  直播地址

最近更新时间: 2022-04-18 14:55:39

以下文档介绍了推流和播放地址的生成方式，以及推流鉴权和播放时间戳防盗链生成方式。

**推流地址生成方式：**

  * [RTMP 推流地址 __](https://developer.qiniu.com/pili/api/2767/the-rtmp-push-flow-address)
  * [SRT 推流地址 __](https://developer.qiniu.com/pili/api/8170/srt-push-flow-address)

**推流鉴权：**

  * [推流鉴权方式 __](https://developer.qiniu.com/pili/api/6678/push-the-current-authentication)

**播放地址生成方式：**

  * [RTMP 播放地址 __](https://developer.qiniu.com/pili/api/2768/rtmp-broadcast-address)
  * [HLS 播放地址 __](https://developer.qiniu.com/pili/api/2769/hls-broadcast-address)
  * [HDL (HTTP-FLV) 播放地址 __](https://developer.qiniu.com/pili/api/2770/hdl-http-flv-broadcast-address)

**播放地址时间戳防盗链：**

  * [播放地址时间戳防盗链 __](https://developer.qiniu.com/pili/api/9868/play-security)

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云播放地址时间戳防盗链

gpt: [直播云](https://developer.qiniu.com/pili) > API 文档 >
[直播地址](https://developer.qiniu.com/pili/api/3691/live-address) > 播放地址时间戳防盗链

#  播放地址时间戳防盗链

最近更新时间: 2021-10-29 15:53:20

播放防盗链可以有效避免直播资源被非法盗用的问题。使用播放防盗链前需要在域名配置中开启时间戳防盗链功能并设置防盗链 key。

在开启时间戳防盗链并使用防盗链地址访问七牛直播节点时，七牛直播节点会用同样的算法来计算访问链接是否合法，只有在合法时才返回所要访问的资源，否则返回403
Forbidden。

# 防盗链地址生成方法

生成防盗链地址的方法是在播放域名上设置`时间戳防盗链 key`，并将经过计算得到的`加密字符串 sign` 和`访问过期时间 t`
拼接在相应域名的播放地址之后，生成完整的时间戳防盗链地址。

以HLS播放地址为例，开启了时间戳防盗链的播放地址格式如下：

    
    
    http://<HLSPlayDomain>/<Hub>/<streamTitle>.m3u8?sign=<md5(key+path+t).to_lower()>&t=<hex(time).to_lower()>
    

各协议防盗链播放地址格式可见：

[RTMP播放地址](https://developer.qiniu.com/pili/api/2768/rtmp-broadcast-address)

[HLS播放地址](https://developer.qiniu.com/pili/api/2769/hls-broadcast-address)

[HDL(HTTP-FLV)播放地址](https://developer.qiniu.com/pili/api/2770/hdl-http-flv-
broadcast-address)

**具体生成方法如下：**

## 开启时间戳防盗链并获取防盗链key

  * 登录控制台，进入目标直播空间的域名管理页面
  * 点击相应播放域名的管理按钮，进入域名配置页面，开启时间戳防盗链配置开关，并设置主密钥和副秘钥。

## 确定过期时间

生成的时间戳防盗链播放地址在过期时间前有效，可以正常访问，在过期时间后失效。防盗链地址中的 t
即为过期时间的unix时间戳经过16进制转换后得到的值，其中字母需要小写。

例如，若选择2021/10/25 20:00:00为过期时间，则其unix时间戳为1635163200，经过16进制转换后，得到 `t=61769c40`。

## 计算加密字符串 sign

计算 sign 需要前面设置的防盗链key、访问地址中的path部分和过期时间t，计算方法为：

    
    
    sign=md5(key+path+t).to_lower()
    

与 `t` 相同，`sign` 中的字母也需要小写。

# 示例

若一个未开启时间戳防盗链的HLS播放地址为

    
    
    http://pili-hls.pilitest.com/testHub/testStream.m3u8
    

在开启时间戳防盗链后，设置的防盗链key为test。

若需要生成过期时间为2021/10/25 20:00:00（UNIX时间戳为1635163200）的防盗链地址，则

    
    
    key=test
    path=/testHub/testStream.m3u8
    t=hex(1635163200).to_lower()=61769c40
    

所以

    
    
    sign=md5(key+path+t).to_lower()=md5(test/testHub/testStream.m3u861769c40).to_lower()=86ccb64b114f599e14eb660de7a813a5
    

将 `sign` 和 `t` 拼接在未开启时间戳防盗链的HLS播放地址之后，得到最终的防盗链播放地址：

    
    
    http://pili-hls.pilitest.com/testHub/testStream.m3u8?sign=86ccb64b114f599e14eb660de7a813a5&t=61769c40
    

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云RTMP 推流地址

gpt: [直播云](https://developer.qiniu.com/pili) > API 文档 >
[直播地址](https://developer.qiniu.com/pili/api/3691/live-address) > RTMP 推流地址

#  RTMP 推流地址

最近更新时间: 2021-11-19 15:48:32

简介：

使用 RTMP 发起推流的地址。  
**注意：** 以下是针对限时鉴权方式生成的推流地址，有关 expiry 和 dynamic 鉴权方式生成推流地址的方法请参考[这里
__](https://developer.qiniu.com/pili/api/6678/push-the-current-
authentication)。

格式：

    
    
    rtmp://<RTMPPublishDomain>/<Hub>/<streamTitle>?e=<ExpireAt>&token=<Token>
    

说明：

参数名称 | 说明  
---|---  
RTMPPublishDomain | 直播空间绑定的 RTMP 推流域名  
Hub | 直播空间名称  
streamTitle | 直播流名称  
ExpireAt | [Unix 时间戳](https://developer.qiniu.com/kodo/glossary/u)，表示推流地址的过期时间。  
Token | 推流凭证 注:鉴权参数一定是放置在最后  
  
生成推流凭证：

    
    
    // 构造RTMP推流Path
    path = "/<Hub>/<streamTitle>"
    
    // 为推流Path加上过期时间
    path = "/<Hub>/<streamTitle>?e=<ExpireAt>"
    
    // 计算HMAC-SHA1签名，并对签名结果做URL安全的Base64编码
    sign = hmac_sha1(path, "Your_Secret_Key")
    encodedSign = urlsafe_base64_encode(sign)
    
    // 将AccessKey与sign拼接得到推流凭证
    token = "Your_Access_Key" + ":" + encodedSign
    

  * [URL 安全的 Base64 编码](https://developer.qiniu.com/kodo/manual/appendix)

示例：

    
    
    rtmp://publish-rtmp.test.com/PiliSDKTest/streamTitle?e=1463023142&token=7O7hf7Ld1RrC_fpZdFvU8aCgOPuhw2K4eapYOdII:-5IVlpFNNGJHwv-2qKwVIakC0ME=
    

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云SRT 推流地址

gpt: [直播云](https://developer.qiniu.com/pili) > API 文档 >
[直播地址](https://developer.qiniu.com/pili/api/3691/live-address) > SRT 推流地址

#  SRT 推流地址

最近更新时间: 2021-11-02 15:21:36

使用 SRT 发起推流的地址，可以通过RTMP推流地址转换得到，签算后的RTMP推流URL，我们可以分成几个部分

    
    
    rtmp://<RTMPPublishDomain>/<Hub>/<streamTitle>?<query>
    

转换为SRT推流URL的步骤，就是对这几个部分的重新拼接

    
    
    srt://<RTMPPublishDomain>:1935?streamid=#!::h=<Hub>/<streamTitle>,m=publish,domain=<RTMPPublishDomain>,<query>
    

需要注意的是

  1. “:1935?streamid=#!::h=” 为固定规格，推流指定端口1935。
  2. “m=publish,domain=<RTMPPublishDomain>” 同样为固定规格，这两个参数的含义是告知服务端这是一个SRT推流请求。
  3. “<query>“部分有些特殊，根据鉴权方式的不同会有不同的参数，不过共同点是我们需要将每个参数之间的”&“替换为”,”。

* * *

以下是几种鉴权方式对应的SRT推流地址格式：

**无校验鉴权**

    
    
    srt://<RTMPPublishDomain>:1935?streamid=#!::h=<Hub>/<streamTitle>,m=publish,domain=<RTMPPublishDomain>
    

**静态鉴权(static)**

    
    
    srt://<RTMPPublishDomain>:1935?streamid=#!::h=<Hub>/<streamTitle>,m=publish,domain=<RTMPPublishDomain>,key=<PublishKey>
    

**限时鉴权(expiry)**

    
    
    srt://<RTMPPublishDomain>:1935?streamid=#!::h=<Hub>/<streamTitle>,m=publish,domain=<RTMPPublishDomain>,expire=<ExpireAt>,token=<Token>
    

**限时鉴权sk(expiry_sk)**

    
    
    srt://<RTMPPublishDomain>:1935?streamid=#!::h=<Hub>/<streamTitle>,m=publish,domain=<RTMPPublishDomain>,e=<ExpireAt>,token=<Token>
    

**动态鉴权(dynamic)**

    
    
    srt://<RTMPPublishDomain>:1935?streamid=#!::h=<Hub>/<streamTitle>,m=publish,domain=<RTMPPublishDomain>,nonce=<Nonce>,token=<Token>
    

其中非鉴权相关参数说明如下：

参数名称 | 说明  
---|---  
RTMPPublishDomain | 直播空间绑定的 RTMP 推流域名  
Hub | 直播空间名称  
streamTitle | 直播流名称  
  
鉴权相关参数，可以参照[推流鉴权方式 __](https://developer.qiniu.com/pili/6678/push-the-current-
authentication)，按照RTMP推流进行签算，签算完成后，再拼入SRT推流地址。

* * *

以限时鉴权sk(expiry_sk)方式的SRT推流为例，  
若使用该鉴权方式的RTMP推流地址为

    
    
    rtmp://publish.domain.com/testhub/teststreamtitle?e=1584522520&token=7O7hf7Ld1RrC_fpZdFvU8aCgOPuhw2K4eapYOdII:NfI2OWGCMdFDTLOfeUd-zSPVrFY=
    

则对应的  
推流域名为publish.domain.com；  
直播空间名称为testhub；  
直播流名称为teststreamtitle；  
鉴权相关参数为e=1584522520&token=7O7hf7Ld1RrC_fpZdFvU8aCgOPuhw2K4eapYOdII:NfI2OWGCMdFDTLOfeUd-
zSPVrFY=；  
所以对应的SRT推流地址可以写成：

    
    
    srt://publish.domain.com:1935?streamid=#!::h=testhub/teststreamtitle,m=publish,domain=publish.domain.com,e=1584522520,token=7O7hf7Ld1RrC_fpZdFvU8aCgOPuhw2K4eapYOdII:NfI2OWGCMdFDTLOfeUd-zSPVrFY=
    

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云RTMP 播放地址

gpt: [直播云](https://developer.qiniu.com/pili) > API 文档 >
[直播地址](https://developer.qiniu.com/pili/api/3691/live-address) > RTMP 播放地址

#  RTMP 播放地址

最近更新时间: 2021-10-29 15:53:34

使用 RTMP 观看直播的地址

# 格式

未开启时间戳防盗链：

    
    
    rtmp://<RTMPPlayDomain>/<Hub>/<streamTitle>
    

开启时间戳防盗链：

    
    
    rtmp://<RTMPPlayDomain>/<Hub>/<streamTitle>?sign=<md5(key+path+t).to_lower()>&t=<hex(time).to_lower()>
    

# 参数说明

参数名称 | 说明  
---|---  
RTMPPlayDomain | 直播空间绑定的 RTMP 直播域名  
Hub | 直播空间名称  
streamTitle | 直播流名称  
sign | 开启时间戳防盗链时的加密字符串，生成方法见[播放地址时间戳防盗链](https://developer.qiniu.com/pili/api/9868/play-security)  
t | 开启时间戳防盗链时的播放地址过期时间，格式为经过16进制转换的UNIX时间戳，具体见[播放地址时间戳防盗链](https://developer.qiniu.com/pili/api/9868/play-security)  
  
# 示例

未开启时间戳防盗链：

    
    
    rtmp://pili-rtmp.pilitest.com/testHub/testStream
    

开启时间戳防盗链：

    
    
    rtmp://pili-rtmp.pilitest.com/testHub/testStream?sign=279d57cfdd4ad03fdace3072d0065ef5&t=61769c40
    

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云HLS 播放地址

gpt: [直播云](https://developer.qiniu.com/pili) > API 文档 >
[直播地址](https://developer.qiniu.com/pili/api/3691/live-address) > HLS 播放地址

#  HLS 播放地址

最近更新时间: 2021-10-29 15:53:47

使用 HLS 观看直播的地址

# 格式

未开启时间戳防盗链：

    
    
    https://<HLSPlayDomain>/<Hub>/<streamTitle>.m3u8
    

开启时间戳防盗链：

    
    
    https://<HLSPlayDomain>/<Hub>/<streamTitle>.m3u8?sign=<md5(key+path+t).to_lower()>&t=<hex(time).to_lower()>
    

# 参数说明

参数名称 | 说明  
---|---  
HLSPlayDomain | 直播空间绑定的 HLS 直播域名  
Hub | 直播空间名称  
streamTitle | 直播流名称  
sign | 开启时间戳防盗链时的加密字符串，生成方法见[播放地址时间戳防盗链](https://developer.qiniu.com/pili/api/9868/play-security)  
t | 开启时间戳防盗链时的播放地址过期时间，格式为经过16进制转换的UNIX时间戳，具体见[播放地址时间戳防盗链](https://developer.qiniu.com/pili/api/9868/play-security)  
  
# 示例

未开启时间戳防盗链：

    
    
    https://pili-hls.pilitest.com/testHub/testStream.m3u8
    

开启时间戳防盗链：

    
    
    https://pili-hls.pilitest.com/testHub/testStream.m3u8?sign=86ccb64b114f599e14eb660de7a813a5&t=61769c40
    

以上内容是否对您有帮助？