专栏首页云加头条腾讯云直播接入说明
原创

腾讯云直播接入说明

.有哪些接入方式?

腾讯云直播接入方式有两种:

一种是频道模式,主要针对中小客户,用户可以在管理台或通过api来对频道进行管理,如创建频道,删除频道,查询频道信息等。典型的接入流程:用户创建频道,拿到推流进行推流,并用获取到的下行播放地址进行播放。频道模式的客户,如果仅使用管理台,可参考https://www.qcloud.com/doc/api/258/4741。 如果使用api,可以参考https://www.qcloud.com/doc/api/258/4703里对各接口的描述。

另一种是直播码模式,主要针对有一定开发能力的客户。腾讯云提供一个通道能力。典型的接入流程:用户通过人工审核并下发配置后,拿到一个上行路径(如push.domain.com/path/),和一个下行路径(如play.domain.com/path/)。然后用户自行生成并管理频道id,后台接收到一个合法的上行地址(上行路径+频道id)后,用户用相同的下行地址(下行路径+频道id)即可播放。

2.两种分别可以提供什么功能?用户根据需求如何选择?

频道模式

通过管理平台或api进行频道操作、水印管理

提供多码率(原始码率、普清、高清),多协议(rtmp、flv、hls)

提供web播放器代码

通过api创建录制或截图任务,并通过api获取结果

支持推流和播放cname,需要线下配置

直播码模式

用户自己生成频道id(也即直播码id、流id),并自己生成推流地址和播放地址

提供推流和播放防盗链

提供多码率(原始码率、普清、高清),多协议(rtmp、flv、hls)

支持录制和截图

支持主备流,需要线下配置

支持推流和播放cname

注:

高清:分辨率 1280x720 码率 900

标清:分辨率 960x540 码率 550

3.直播码接入流程有哪些?

1.腾讯云自定义直播码接入方式为有开发能力的客户提供推流和cdn播放的管道,用户自定义直播码并进行管理

2.URL防盗链是一种保护用户视频内容安全的功能。通过使用防盗链功能,用户可实时自行生成可用于播放器环境或URL访问的播放链接,该链接在用户指定时间内可用,从而有效保护视频内容。由于防盗链采用动态生成方式,该功能开启后,原有播放器代码和文件URL将不可用。

4.开通直播码需要哪些信息?

uin

appid

下行协议、码率

推流路径

播放路径

推流鉴权key

播放鉴权key

cname

是否开通录制(需要开通点播)

是否开通截图(提供cos_bucketname和cos_appid)

5.什么是防盗链?直播中防盗链规则有哪些?

URL防盗链是一种保护用户视频内容安全的功能。直播防盗链分为上行防盗链和下行防盗链。

上行防盗链。用户可保护自己的推流地址不被其他非法客户使用。

下行防盗链。用户可实时自行生成可用于播放器环境或URL访问的播放链接,该链接在用户指定时间内可用,从而有效保护视频内容。

防盗链的基本逻辑如下

图:防盗链基本逻辑

4.如何开通和使用防盗链?

准备工作:开启服务和获取密钥

该功能目前需要人工手动开启。开启后,用户可获取密钥KEY,该信息为32bit系统随机生成字符。用户需妥善保管该该密钥。

第一步:生成推流地址并推流

推流地址格式示例如下:

rtmp://5000.livepush.myqcloud.com/live/test2016011415?txSecret=9661a47f85a4e7a56bcc0924bd0c6e24&txTime=56698ba6

5000为用户的bizid

live是推流路径

test2016011415为直播码,为保持唯一性,需要加上bizid作为前缀

参数字段生成方法如下:

txSecret=9661a47f85a4e7a56bcc0924bd0c6e24(示例):为校验串,算法为:MD5(KEY+ stream_id + txTime),字母小写。

其中,

KEY:为用户的密钥;

stream_id:直播码

txTime:该链接有效的截止时间戳。通过(1970-1-1 0:0:0 到有效截止时间)秒数表示,CDN服务器会根据该时间判断该链接是否有效,并转换为16进制。例如希望该链接有效期至2015.8.1. 00:00:00,则t的计算方式为: (1970-1-1. 00:00:00 至2015-8-1. 00:00:00的秒数),即1438358400,转换为16进制表示55bb9b80;该计算有标准函数可使用。

txTime为有效的截止时间戳,如上所述

推流软件首选第三方软件obs

第二步:生成加密播放地址

播放url格式类似为:

rtmp协议:

rtmp://5000.liveplay.myqcloud.com/live/test2016011415?txSecret=058e94199dd71f065af85c5a6ec7ac6f&txTime=56698ba6

hls协议:

http://5000.liveplay.myqcloud.com/live/test2016011415.m3u8?txSecret=65b3be792b3692199a11872e8fc18321&txTime=56698ba6

flv协议:

http://5000.liveplay.myqcloud.com/live/test2016011415.flv?txSecret=058e94199dd71f065af85c5a6ec7ac6f&txTime=56698ba6

多码率

各协议支持普清(分辨率 960x540,码率 550)、高清(分辨率 1280x720,码率 900)、原始码率 三种码率。

以rtmp为例,示例如下

普清:rtmp://5000.liveplay.myqcloud.com/live/test2016011415_550?txSecret=058e94199dd71f065af85c5a6ec7ac6f&txTime=56698ba6

高清:rtmp://5000.liveplay.myqcloud.com/live/test2016011415_900?txSecret=058e94199dd71f065af85c5a6ec7ac6f&txTime=56698ba6

flv、hls同上

字段生成方法如下:

txSecret为校验串,算法为:txSecret = MD5(KEY+ path + txTime),字母小写。

其中,

KEY:为用户的密钥;

path:直播中有三种出流协议,在计算path时rtmp和hls分别都取的是文件名,flv取的是去掉后缀的文件名。如:

rtmp://5000.liveplay.myqcloud.com/live/test2016011415

http://5000.liveplay.myqcloud.com/live/test2016011415_550.m3u8

http://5000.liveplay.myqcloud.com/live/test2016011415_900.flv

txTime:该链接有效的截止时间戳

第三步:根据加密播放地址发起请求

视频请求方根据以上计算结果,组成链接,发起请求至腾讯云以及其CDN

第四步:腾讯云进行验证并判断是否播放。

  1. 腾讯云首先会根据明文中有效的截止时间戳判断当前时间是否过去,如果未过期则根据vodfile.m3u8(链接中明文可见),用户密钥KEY(用户在管理控制台生成时,腾讯云在后台维护的相同副本),以及t=55bb9b80(链接中明文可见),在CDN或腾讯云侧生成txSecret’ = MD5(KEY+ path + t),;如果txSecret = txSecret’,则允许播放;否则禁止播放。如果系统判断防盗链链接不正确,默认将返回403页面。

6.如何使用录制功能?

接入流程 申请开通直播的基础上,开通点播。

录制规则

1.开始推流时,即启动录制任务,直至直播结束

2.录播按时间进行分片,最大大小为0.5小时;

3.录播时,发生断流,则停止录播生成一个分片

4.断流恢复后启动新的录播分片任务,重复1)2)3)的过程,直至整个任务结束

5.录制分片请求url格式:http://(点播bizid).vod.myqcloud.com/(vid).f0.flv

6.通过cgi或者回调的方式获取一个stream_id对应的录制分片列表

7.通过拼接的播放url下载录制分片

7.如何使用截图功能?

接入流程

在申请开通直播的基础上,需要申请截图需要的cos平台权限,并获取cos账号信息。

截图规则

1.开始推流时,即启动 截图任务,直至直播结束

2.频率周期为10s,按照系统绝对时间;

3.截图大小:分辨率300(宽)*自适应(高);

4.截图对象:实时直播流;

5.截图生成文件:文件名为(bizid)(直播码id)(推流绝对时间戳)(任务启动时间戳)(截图相对时间)(长)(宽).jpg

6.COS存放部分: 截图后,对应文件上载至COS系统;时间在15S内; 即15S内,用户可通过COS查询下载,COS账号、容量购买、下载部分由客户独立完成;

7.图片url格式:http://(cos_bucketname)-(cos_appid).file.myqcloud.com/文件名

8.通过cgi或者回调的方式获取截图消息

9.通过拼接的播放url下载截图

注:并发高的用户需要将cos属性设置为nugc。

8.直播码用户可以使用哪些接口?

接口定义

其中key为用户密钥,目前需要人工手动开启。

1. 获取截图消息

接口名:

Live_Queue_Get

输入说明

完整的访问地址示例:

curl "http://fcgi.video.qcloud.com/common_access?cmd=N&interface=Live_Queue_Get&Param.n.bid=100&Param.n.count=10&t=1453279831&sign=XXXXXX"

2.获取录播分片

接口名:

Live_Tape_GetFilelist

3.获取频道状态

接口名:

Live_Channel_GetStatus

4.暂停/恢复频道 接口名:

Live_Channel_SetStatus

5. 查询在线

接口名:

Live_Statistic_QueryOnline

6.查询频道列表

接口名:

Live_Channel_GetChannelList

9.可以提供哪些通知回调功能?

1)推流上下线

2)录制分片

3)截图地址

接口定义

公共参数

其中key为用户密钥,目前需要人工手动开启。鉴权Key为32字节字符串,可通过联系客服人员进行开启和分配。

事件类型(event_type)

目前支持的类型

0 断流

1 有输入流

100 录制分片回调

200 截图图片地址回调

其它参数

数据格式采用http post

data部分

{“t”:23123123,”sign”:”dasdas”,”event_type”:1,“stream_id”:”asdasd”,”channel_id”:”sdadas”}

接入流程

1)提供回调接口地址及接口方式

2)进行联调

相关推荐 Now直播应用的后台服务器性能测试实践 WebRTC 点对点直播

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何购买腾讯云服务器

    从实践案例出发,描述如何购买腾讯云的服务器。云服务器(Cloud Virtual Machine)是一种专业的高性能高稳定的弹性伸缩的计算服务,您可以在几分钟内...

    云加社区
  • 钱栩磊:腾讯视频云为电商提供一体化直播解决方案

    直播行业近几年发展迅速,并且正朝着互动性和专业性更强的方向发展。

    云加社区
  • 2019可信云大会在京召开 发布云计算系列研究成果

    7月2日,由中国信息通信研究院主办的“2019可信云大会”在北京国际会议中心召开。工业和信息化部党组成员、总工程师张峰,中国通信标准化协会理事长奚国华出席会议并...

    云加社区
  • 你的软件按什么卖?套数、CPU数、核数还是CPU的计算能力? 博客分类: 心困网中央 IBMOracleLotusExcelASP

    Oracle实行的则是按照所谓的“processor factor”(处理器因子)来收费的。Oracle根据每个处理有几个核把核数乘以对应的一个数值,然后决定需...

    阿敏总司令
  • Leetcode 101. 对称二叉树

    以 t1、t2 表示二叉树的左子树和右子树,若 t1 与 t2 对称,则二叉树对称;若 t1 的根节点值与 t2 的根节点值相等,且 t1 的左子树与 t2 的...

    zhipingChen
  • ROPEMAKER:利用简单CSS属性就可以篡改已发送的邮件内容

    邮件与云安全公司 Mimecast 的安全研究人员 Francisco Ribeiro 最近发现一种名为 ROPEMAKER 的攻击手法。ROPEMAKER 全...

    FB客服
  • AiLPHA邮件安全审计:钓鱼邮件攻击防范成本比较

    2018年6月5日,CNCERT(国家互联网应急中心)发布了钓鱼邮件攻击防范指南,文中对如何防范钓鱼邮件攻击进行了全面的安全教育,本文作者通过思维导图整理如下:

    安恒信息
  • 局部放电的特征选择

    局部放电是电力设备监测中的一种很重要的方法。本文将以局部放电为例,具体阐述feature selection。具体包括L1-regularization、seq...

    用户1147754
  • Linux进程间通信(三) - 信号

    什么是信号 软中断信号(signal,又简称为信号)用来通知进程发生了异步事件。在软件层次上是对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一...

    三丰SanFeng
  • Java中Collections.sort()方法的演变结果分析源码分析关于Java8中Collections.sort方法的修改

    JavaEdge

扫码关注云+社区

领取腾讯云代金券