本文为您介绍如何通过超低延时直播RTS将直播延时降低至400ms以下,以便为用户提供流畅且实时的观看体验。
方案简介
实时直播方案依托阿里云GRTN(全球实时传输网络),采用全链路WebRTC协议实现直播端到端200~400ms的延时,同时可以无缝扩展标准直播,实现业务的前向兼容。
基于超低延时直播实现直播端到端200~400ms延时:
-
主播通过采集设备采集直播内容后,通过推流SDK,将直播流通过RTS(WebRTC)协议推流至阿里云边缘节点;
-
直播流在GRTN全球3200+节点中通过智能选路、QoS技术实时传输;
-
观众侧通过RTS(WebRTC)协议在最近的阿里云边缘节点进行拉流并在设备上进行播放,端到端延时200~400ms。
(可选)开启内部转推,实现媒体处理、超低延时直播和标准直播能力:
-
开启旁路转推后,主播推流后阿里云视频直播将自动转封装生成一路RTMP流;
-
您可以针对该流配置转码、录制、截图等媒体服务;
-
若您希望保持低延时拉流,可以使用低延时直播,在观众侧仍可使用RTS(WebRTC)拉流,获得端到端400~800ms的延时;
-
若您希望使用标准直播,则可以采用RTMP、FLV、HLS等协议进行拉流播放。
方案实施
前提条件
推流、播流域名配置HTTPS证书
本文将使用浏览器的推拉流Demo进行演示,为推流、播流域名配置HTTPS证书是浏览器WebRTC的安全要求,配置HTTPS证书请参见配置HTTPS安全加速。
若您使用Native SDK进行推流和播放则无需配置HTTPS证书。
开通超低延时直播配置
-
登录视频直播控制台。
-
在左侧导航栏单击选择直播+> 超低延时直播。
-
选择播放域名。
-
打开超低延时直播开关,选择半秒延时(端到端延迟 200ms-400ms)。
选择半秒延时后,仅支持ARTC协议推流和播放,无法兼容标准直播,不支持RTMP推流协议,且当前播放域名无法使用转码、录制等云端功能。
生成直播推流和播放地址
方法一:控制台生成
开通超低延时直播后,可直接在推播流体验器中点击快速生成直播地址,输入AppName和StreamName生成ARTC协议的超低延时直播推播放地址。
在配置页面选择播放域名及关联的推流域名,并在延时目标中选择亚秒延时(端到端延迟400ms~800ms)或半秒延时(端到端延迟200ms~400ms)。如需HTTPS播放,请确保已配置SSL证书和Access-Control-Allow-Origin响应头。生成的推流地址和播放地址均以artc://协议开头。
方法二:自定义拼接
自定义拼接推流地址和播流地址时,需判断直播流是否经过转码,是否进行鉴权,并准备好相关推流域名、播流域名、AppName、StreamName、转码模板ID(如有)和鉴权串(如有)。拼接规则如下:
|
地址类 |
地址格式 |
拼接规则 |
|
推流地址 |
支持RTMP、RTS、SRT格式,推荐使用RTMP格式地址推流。示例: RTMP: 说明
超低延时直播支持使用RTS格式地址拉流。 |
推流域名+AppName(应用)+StreamName(直播流)+鉴权串 |
|
播流地址 |
支持RTMP、FLV、M3U8、RTS格式,推荐使用RTS格式地址播放。示例: RTS: |
播流域名+AppName(应用)+StreamName(直播流)+鉴权串 |
|
转码流地址 说明
若进行转码模板配置操作,才会生成转码流地址,且播流地址拼接规则需使用转码流地址。 |
支持RTMP、FLV、M3U8、RTS格式,推荐使用RTS格式地址播放。示例: RTS: |
播流域名+AppName(应用)+StreamName(直播流)_转码模板ID+鉴权串 |
主播侧进行RTS推流
您可以选择以下推流SDK其中之一进行集成:
|
RTS推流SDK |
相关文档 |
|
Web推流SDK |
|
|
iOS推流SDK |
说明
iOS推流SDK默认支持WebRTC推流。 |
|
Android推流SDK |
说明
Android推流SDK默认支持WebRTC推流。 |
|
使用OBS基于WHIP协议推流 |
本文中使用Web RTS推流Demo为您演示:
-
进入RTS推流网页Demo。
-
在Demo中选择推流模式。
-
展开none下拉框,根据您的实际需求,选择camera(摄像头)或者screen(屏幕共享)。
如果您选择camera,需要分别单击下方的麦克风和摄像头按钮进行授权,授权成功后,再展开选择麦克风和选择摄像头下拉框,选择对应的设备。
-
输入生成直播推流和播放地址中已生成的RTS格式推流地址,并单击创建本地流。
-
单击开始推流,即可完成推流。
观众侧进行RTS播放
您可以选择以下播放SDK其中之一进行集成:
|
RTS播放SDK |
相关文档 |
|
Web播放SDK |
|
|
iOS播放SDK |
|
|
Android播放SDK |
|
|
HarmonyOS播放SDK |
|
|
Flutter播放SDK |
|
|
WIndows播放SDK |
说明
Windows播放器SDK的获取,请联系阿里云商务申请下载。 |
本文中使用Web RTS播放Demo为您演示:
-
进入RTS播放网页Demo。
-
在Demo中选择拉流模式。
-
输入生成直播推流和播放地址中已生成的RTS格式播放地址。
-
单击开始拉流。
(可选)配置内部转推
-
在超低延时直播设置页,选择半秒延时(端到端延迟200ms-400ms)。
-
单击转推配置,开启转推开关,并选择另一个推流域名用于接收转推后的RTMP流。
例如:转推接收域名为push.example.com,其关联的播放域名为pull.example.com。
-
转推接收域名和其关联的播放域名均不能开启超低延时直播半秒延时模式。
-
内部转推将不会收取转推费用。
(可选)基于转推后的流配置媒体处理服务
完成转推配置后,可基于转推接收域名关联的播放域名,即基于pull.example.com进行媒体处理模板配置。
在视频直播控制台左侧导航栏的功能管理中,选择您需要的能力进行配置。
功能管理下包含直播录制、直播转码、直播水印、直播截图、直播时移、直播审核、直播封装、实时字幕(公测)、边缘转码、DRM管理、事件回调、拉流转推等能力配置项。
(可选)基于转推后的流进行标准直播播放
完成转推后,可基于转推接收域名关联的播放域名,即基于pull.example.com可以进行标准直播(RTMP/FLV/HLS)播放原始流,或云上转码后的流。 播放标准直播(RTMP/FLV/HLS),具体操作请参见播放标准直播。