腾讯云直播接入说明

.有哪些接入方式?

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

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

相关文章

来自专栏我的博客

Zend FrameWork 配置文件(初级版)

[production] ;命名空间配置以及自动命名空间注册 autoloadernamespaces[] = “Zend_” autoloadernam...

2555
来自专栏有趣的django

python爬虫入门(九)Scrapy框架之数据库保存

豆瓣电影TOP 250爬取-->>>数据保存到MongoDB 豆瓣电影TOP 250网址 ? 要求: 1.爬取豆瓣top 250电影名字、演员列表、评分和简介 ...

3446
来自专栏jeremy的技术点滴

重搭docker集群

3215
来自专栏从零学习云计算

openshift/origin工作记录(1)——S2I镜像定制(基于SVN)

上周的工作内容是迁移微服务管控平台到openshift集群上。定制了基于git的S2I,走通了从gitlab拉取代码、打包、部署等一系列流程,成功迁移并向部门...

4341
来自专栏Netkiller

电子邮件服务器DKIM配置

本文节选自《Netkiller Mail 手札》 4.3. dkim DKIM(DomainKeys Identified Mail) 是一种电子邮件的验证技术...

4214
来自专栏容器云生态

如何优雅的编写Dockerfile

在生产环境中一般我们会对基本的环境进行自构建,从而利用images的分层特性去层层构建上层的业务镜像。 1.默认情况下我们会首先构建一个基本的base镜像,这...

3698
来自专栏三杯水

DNS主从服务器搭建

http://blog.51cto.com/yichenyang/1911098 http://blog.51cto.com/wubinary/1379595

522
来自专栏杨建荣的学习笔记

从业务角度分析奇怪的数据库高负载问题 (r4笔记第35天)

今天到公司以后,照例查看了数据库的负载情况,发现有一些异常。11点开始到12点的时候,数据库的负载格外的高。按照平时的经验,这个时间段内不会有太多的高峰业务在运...

2595
来自专栏杨建荣的学习笔记

Greenplum集群主机名问题及修复

昨天写了一篇Greenplum数据仓库迁移小记,看起来一起都在计划中,一切都在掌握中,今天早上的时候,统计组的同学反馈说写入GP的时候报了下面的错误。

872
来自专栏大魏分享(微信公众号:david-share)

Openshift上应用构建与部署方式大全

一、部署1000中应用的六种武器 从开发者角度,在Openshift上部署大量的应用时,最难的事情,不是如何部署这些应用,而是如何找到最好的方法来部署这些应用。...

5066

扫码关注云+社区