腾讯云直播接入方式有两种:
一种是频道模式,主要针对中小客户,用户可以在管理台或通过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)即可播放。
频道模式
通过管理平台或api进行频道操作、水印管理
提供多码率(原始码率、普清、高清),多协议(rtmp、flv、hls)
提供web播放器代码
通过api创建录制或截图任务,并通过api获取结果
支持推流和播放cname,需要线下配置
直播码模式
用户自己生成频道id(也即直播码id、流id),并自己生成推流地址和播放地址
提供推流和播放防盗链
提供多码率(原始码率、普清、高清),多协议(rtmp、flv、hls)
支持录制和截图
支持主备流,需要线下配置
支持推流和播放cname
注:
高清:分辨率 1280x720 码率 900
标清:分辨率 960x540 码率 550
1.腾讯云自定义直播码接入方式为有开发能力的客户提供推流和cdn播放的管道,用户自定义直播码并进行管理
2.URL防盗链是一种保护用户视频内容安全的功能。通过使用防盗链功能,用户可实时自行生成可用于播放器环境或URL访问的播放链接,该链接在用户指定时间内可用,从而有效保护视频内容。由于防盗链采用动态生成方式,该功能开启后,原有播放器代码和文件URL将不可用。
uin
appid
下行协议、码率
推流路径
播放路径
推流鉴权key
播放鉴权key
cname
是否开通录制(需要开通点播)
是否开通截图(提供cos_bucketname和cos_appid)
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协议:
flv协议:
多码率
各协议支持普清(分辨率 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.开始推流时,即启动录制任务,直至直播结束
2.录播按时间进行分片,最大大小为0.5小时;
3.录播时,发生断流,则停止录播生成一个分片
4.断流恢复后启动新的录播分片任务,重复1)2)3)的过程,直至整个任务结束
5.录制分片请求url格式:http://(点播bizid).vod.myqcloud.com/(vid).f0.flv
6.通过cgi或者回调的方式获取一个stream_id对应的录制分片列表
7.通过拼接的播放url下载录制分片
接入流程
在申请开通直播的基础上,需要申请截图需要的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。
接口定义
其中key为用户密钥,目前需要人工手动开启。
1. 获取截图消息
接口名:
Live_Queue_Get
输入说明
完整的访问地址示例:
2.获取录播分片
接口名:
Live_Tape_GetFilelist
3.获取频道状态
接口名:
Live_Channel_GetStatus
4.暂停/恢复频道 接口名:
Live_Channel_SetStatus
5. 查询在线
接口名:
Live_Statistic_QueryOnline
6.查询频道列表
接口名:
Live_Channel_GetChannelList
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)进行联调
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。