腾讯云直播接入说明

.有哪些接入方式?

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

一种是频道模式,主要针对中小客户,用户可以在管理台或通过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 条评论
登录 后参与评论

相关文章

来自专栏娱乐心理测试

第一个微信小程序

2376
来自专栏noteless

8.web的发展 互联网发展 起源 历史 cgi web项目发展 企业应用web项目 框架 发展 互联网技术发展 互联网技术包括 web技术发展 web开发技术

计算机网络把分布于各地的单独的计算机连接起来,可以进行数据的共享与交互.这是web的根基

1302
来自专栏互联网杂技

Hybrid App开发者一定不要错过的框架和工具

最近开始给网站的移动版本做技术选型,发现了很多好玩的东西,写出来给大家分享下。 ionicFramework 我是hybrid app的忠实粉丝和大力倡导者,从...

2924
来自专栏web前端教室

[先行者计划]:《Vuex相关概念的讲解和介绍》-- 课堂笔记节选

vuex是什么东西? 官网对Vuex的定义,"Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。" 恩,从这句话可以看出,它应该是一种编写js的思...

1708
来自专栏数据之美

浅谈用户行为分析之用户身份识别:cookie 知多少?

对于数据统计分析或者数据挖掘而言,用户是个非常重要的维度,也是统计分析能落地的基础。一般而言,咱们追踪或者识别一个用户的首选方案是 userID,大多数公司的产...

9036
来自专栏web前端教室

[一对一课程] 之 设计并实现第一个JS模块?

这篇文章不太好写,谈目前网上的多数教程,谈到JS模块必贴代码,而我一向不喜欢在公众号文章里写代码,因为难以阅读。所以我尝试从“构思”的角度,来写一下本文。 在昨...

2228
来自专栏java一日一条

电商网站秒杀与抢购的系统架构

在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,在这个过程中,整个Web系统遇到了很多的问题和挑战。如果Web系统不做针对性的优化,会轻而易举地陷入到异常...

1302
来自专栏大数据文摘

一个可以把web表单变成会话形式的开源框架

4325
来自专栏Flutter入门到实战

开发工具总结(9)之开源项目的README文档的最全最规范写法

版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/813b70d5b0de

871
来自专栏Zchannel

Windows 10四月更新(1803)的各类问题及疑难杂症和解决办法

1453

扫码关注云+社区