直播开发
文章目录
腾讯云直播
使用腾讯 云直播·标准直播 产品进行直播需求开发
基本概念
推流
主播将本地视频源和音频源推送到腾讯视频云服务器,在有些场景中也被称为“RTMP 发布”。
拉流
即直播播放,指已实现直播推流之后,用指定地址将腾讯视频云服务器中的视频源和音频源拉取播放的过程。其视频源是实时生成的,有人推流直播才有意义,一旦主播停播,直播 URL 也就失效了。而且由于是实时直播,所以播放器在播直播视频的时候是没有进度条的。
推流域名
指用于推送直播流的域名,必选配置,该域名必须在使用直播服务前完成注册并备案。配置完推流域名后,直播服务会生成对应的推流地址,拼接规则请参见 自主拼装推流 URL。
播放域名
指用于播放直播流的域名,必选配置,该域名必须在使用直播服务前完成注册并备案。配置完播放域名后,直播服务会生成对应的播放地址,拼接规则请参见 自主拼装播放 URL。
域名 CNAME
CNAME 域名是在腾讯云直播控制台接入加速域名后,系统给对应的域名分配一个以 .liveplay.myqcloud.com 为后缀的域名。用户需要在域名服务商处,配置一条 CNAME 记录,记录生效后,域名解析的工作就正式转向腾讯云云直播,该域名所有的请求都将转向腾讯云直播的边缘节点。
StreamName
StreamName 是一路流的标识符,通常与某个域名一起唯一标识一路流。「可使用直播间id作为StreamName,因为每个直播间id是唯一的」
AppName
直播的应用名称,用于区分直播流媒体文件存放路径,默认为 live,可自定义。
事件消息通知
指推流过程中,直播触发事件通知,腾讯云按照配置模板信息主动发送请求到客户的服务器,客户的服务器负责应答验证请求,相关应答协议请参见 事件消息通知协议。验证通过后即可获取包含回调信息的 JSON 数据包,获取后请解析并记录相关信息。
防盗链
指推流和播放 URL 中的 txSecret 字段,可防止攻击者伪造您的后台生成推流 URL 或者非法盗取您的播放地址进行谋利。
直播录制
在推流过程中,将直播原始流经过转音视频封装(不修改音频、视频数据以及对应的时间戳等信息)得到的视频文件存储到云点播平台。使用该功能需提前开通 云点播服务。
直播推流
功能名称 | 功能简介 |
---|---|
推流协议 | 支持 RTMP 协议进行推流。 |
推流方式 | 支持集成腾讯云直播 iOS、Android、Web 等推流 SDK 的 App,以及常见的第三方推流软件,包括 OBS、XSplit、FMLE 等。 |
推流设备 | 支持常见的第三方 RTMP 推流硬件和编码器或盒子等设备。 |
直播播放
功能名称 | 功能简介 |
---|---|
播放协议 | 支持 RTMP、FLV、HLS 及 UDP(指WebRTC) 播放协议。 |
播放方式 | 支持腾讯云直播 iOS、Android、Web 等播放器 SDK,以及常见的第三方 FLV、RTMP、HLS 播放器。 |
播放控制 | 可播放与输入流规格一致的原始码流,或播放经过实时转码的码流。 |
RTMP
RTMP是Real Time Messaging Protocol(实时消息传输协议)的缩写,是Adobe公司为Flash/AIR平台和服务器之间音、视频及数据传输开发的实时消息传送协议。RTMP协议基于TCP,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。
RTMP协议中,视频必须是H264编码,音频必须是AAC或MP3编码,且多以flv格式封包。RTMP是目前最主流的流媒体传输协议,对CDN支持良好,实现难度较低,是大多数的直播平台的选择。
不过RTMP有着一个最大的不足——不支持浏览器,且Adobe已不再更新。因此直播服务要支持浏览器的话,需要另外的推送协议支持。
HLS
Http Live Streaming是由Apple公司定义的基于HTTP的流媒体实时传输协议。它的原理是将整个流分为多个小的文件来下载,每次只下载若干个。服务器端会将最新的直播数据生成新的小文件,客户端只要不停的按顺序播放从服务器获取到的文件,就实现了直播。
基本上,HLS是以点播的技术实现了直播的体验。因为每个小文件的时长很短,客户端可以很快地切换码率,以适应不同带宽条件下的播放。分段推送的技术特点,决定了HLS的延迟一般会高于普通的流媒体直播协议。
WebRTC(UDP)
WebRTC(Web Real-Time Communication),即“源自网页即时通信”。WebRTC是一个支持浏览器进行实时语音、视频对话的开源协议。WebRTC的支持者甚多,Google、Mozilla、Opera推动其成为W3C推荐标准。
WebRTC支持目前的主流浏览器,并且基于SRTP和UDP,即便在网络信号一般的情况下也具备较好的稳定性。
此外,WebRTC可以实现点对点通信,通信双方延时低,此外,WebRTC可以实现点对点通信,通信双方延时低,是实现“连麦”功能比较好的选择。
产品概念
直播频道 > 直播间
- 直播APP包含多个直播频道,一个直播频道包含多个直播间
- 直播计划:每个直播间可以设定多个直播计划,用于预告下次直播时间