有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

前提条件

已注册腾讯云账号,并开通 腾讯云直播服务
已在 域名注册 申请域名,并备案成功。
已在云直播控制台 > 域名管理中添加推流/播放域名,具体操作请参见 添加自有域名

RTMP 协议推流(不支持连麦)

直播 SDK 支持 RTMP(不支持连麦) 和 RTC(支持连麦) 两种推流协议,本章节介绍 RTMP 推拉流 URL 的生成。

控制台生成推流 URL

1. 登录云直播控制台。
2. 选择进入直播工具箱 > 地址生成器,进入如下配置:
按需选择生成类型。
选择您已添加到域名管理里对应的域名。
按需编辑 AppName。AppName 为区分同一个域名下多个 App 的地址路径,默认为 live。
填写自定义的流名称 StreamName。
选择地址过期时间。
3. 单击生成地址即可生成您需要的推流/播放地址。


说明
AppName 可自定义,仅支持英文字母、数字和符号。
除上述方法,您还可以在云直播控制台的域名管理中,选择推流域名单击管理,选择推流配置,输入推流地址的过期时间和自定义的流名称 StreamName,单击生成推流地址**即可生成推流地址。

推流 URL 拼接规则

实际产品中,当直播间较多时,您不可能为每一个主播手工创建推流和播放 URL,您可通过服务器自行拼装推流和播放地址,只要符合腾讯云标准规范的 URL 就可以用来推流,如下是一条标准的推流 URL,它由四个部分组成:


Domain 推流域名,可使用腾讯云直播提供的默认推流域名,也可以用自有已备案且 CNAME 配置成功的推流域名。
AppName 直播的应用名称,默认为 live,可自定义。
StreamName(流 ID) 自定义的流名称,每路直播流的唯一标识符,推荐用随机数字或数字与字母组合。
鉴权 Key(非必需) 包含 txSecret 和 txTime 两部分:txSecret=Md5(key+StreamName+hex(time))&txTime=hex(time)。 开启推流鉴权后需使用包含鉴权 Key 的 URL 进行推流。若未开启推流鉴权,则推流地址中无需 “?” 及其后内容。
txTime(地址有效期) 表示何时该 URL 会过期,格式支持十六进制的 UNIX 时间戳。
说明
例如5867D600代表2017年1月1日0时0点0分过期,我们的客户一般会将 txTime 设置为当前时间24小时以后过期,过期时间不要太短也不要太长,当主播在直播过程中遭遇网络闪断时会重新恢复推流,如果过期时间太短,主播会因为推流 URL 过期而无法恢复推流。
txSecret(防盗链签名) 用以防止攻击者伪造您的后台生成推流 URL,计算方法参见 最佳实践-防盗链计算

查看推流地址示例代码

进入云直播控制台 > 域名管理,选中事先配置的推流域名,管理 > 推流配置页面下半部分有推流地址示例代码(PHP 和 Java 两个版本)演示如何生成防盗链地址。更多详情操作请参见 推流配置

播放 URL 拼接规则

播放地址主要由播放前缀、播放域名(domain)、应用名称(AppName)、流名称(StreamName)、播放协议后缀、鉴权参数以及其他自定义参数组成。例如:
webrtc://domain/AppName/StreamName?txSecret=Md5(key+StreamName+hex(time))&txTime=hex(time)
http://domain/AppName/StreamName.flv?txSecret=Md5(key+StreamName+hex(time))&txTime=hex(time)
rtmp://domain/AppName/StreamName?txSecret=Md5(key+StreamName+hex(time))&txTime=hex(time)
http://domain/AppName/StreamName.m3u8?txSecret=Md5(key+StreamName+hex(time))&txTime=hex(time)
播放前缀
播放协议
播放前缀
备注
WebRTC
webrtc://
强烈推荐,秒开效果最好,支持超高并发。
HTTP-FLV
http://https://
推荐,秒开效果好,支持超高并发。
RTMP
rtmp://
不推荐,秒开效果差,不支持高并发
HLS(m3u8)
http://https://
手机端和 Mac safari 浏览器推荐的播放协议。
Domain播放域名,自有已备案且 CNAME 配置成功的播放域名。
AppName 直播的应用名称,用于区分直播流媒体文件存放路径,默认为 live,可自定义。
StreamName(流名称) 自定义的流名称,每路直播流的唯一标识符,推荐用随机数字或数字与字母组合。
鉴权参数(非必需) 包含 txSecret 和 txTime 两部分:txSecret=Md5(key+StreamName+hex(time))&txTime=hex(time)。 开启播放鉴权后需使用包含鉴权 Key 的 URL 进行播放。若未开启播放鉴权,则播放地址中无需 “?” 及其后内容。
txTime(地址有效期): 表示何时该 URL 会过期,格式支持十六进制的 UNIX 时间戳。
txSecret(防盗链签名):用以防止攻击者伪造您的后台生成播放 URL,计算方法参见 最佳实践-防盗链计算

RTC 协议推流(支持连麦)

直播 SDK 支持 RTMP(不支持连麦) 和 RTC(支持连麦) 两种推流协议,本章节介绍 RTC 推拉流 URL 的生成。 如果您有 观众连麦 或者 直播 PK 的需求,需要使用支持更低延迟、更好弱网抗性的 RTC 协议进行推拉流。

控制台生成推流 URL

1. 登录云直播控制台。
2. 选择进入连麦管理>地址生成器,进入如下配置:
按需选择连麦应用。如果您当前没有连麦应用,可以在 连麦应用 > 新建连麦应用新建一个。
填写主播 Stream Id主播 User Id,这一步骤是为了生成主播的推流和播放地址。
按需填写连麦观众 Stream Id连麦观众 User Id,这一步骤是为了生成连麦观众的推流和播放地址,如果您当前没有连麦观众,暂时可以随意填写。
选择域名,这一步骤是为了生成 CDN 观看地址。
按需编辑 AppName。AppName 为区分同一个域名下多个 App 的地址路径,默认为 live。
选择地址过期时间。
3. 单击生成地址即可生成您需要的推流/播放地址。
说明
更多使用手动生成 URL 的介绍请参见 控制台指南

推流 URL 拼接规则

实际产品中,当直播间较多时,您不可能为每一个主播手工创建推流和播放 URL,您可以按照如下规范在工程代码中自动拼接 URL,如下是一条标准的推流 URL,示例如下:
trtc://cloud.tencent.com/push/streamid?sdkappid=1400188888&userId=A&usersig=xxxxx
在上述的 URL 中,存在一些关键字段,关于其中关键字段的含义信息,详见下表:
字段名称
字段含义
trtc://
互动直播推流 URL 的前缀字段
cloud.tencent.com
互动直播特定域名,请勿修改
push
标识位,表示推流
streamid
流 ID,需要由开发者自定义
sdkappid
对应 服务开通 一节中生成的 SDKAppID
userId
用户 ID,需要由开发者自定义
usersig
服务开通 一节中获取的密钥计算得出

播放 URL 拼接规则

在连麦过程中,主播与连麦者相互之间的观看都要用 RTC来播放,播放的 URL 字符串与推流 URL 只有一个字段的差别,把push换成play即可,示例如下:
trtc://cloud.tencent.com/play/streamid?sdkappid=1400188888&userId=A&usersig=xxxxx
在上述的 URL 中,存在一些关键字段,关于其中关键字段的含义信息,详见下表:
字段名称
字段含义
trtc://
互动直播拉流 URL 的前缀字段
cloud.tencent.com
互动直播特定域名,请勿修改
play
标识位,表示拉流
streamid
流 ID,需要由开发者自定义
sdkappid
对应 服务开通 一节中生成的 SDKAppID
userId
用户 ID,需要由开发者自定义
usersig
服务开通 一节中获取的密钥计算得出
CDN 的观看地址与前文中的 播放 URL 规则一致。