实时直播:将延时降低至400~600ms

本文为您介绍如何通过超低延时直播RTS将直播延时降低至600ms以下,以便为用户提供流畅且实时的观看体验。

方案简介

实时直播方案依托阿里云GRTN(全球实时传输网络),采用全链路WebRTC协议实现直播端到端400~600ms的延时,同时可以无缝扩展标准直播,实现业务的前向兼容。

image

基于超低延时直播实现直播端到端400~600ms延时:

  1. 主播通过采集设备采集直播内容后,通过推流SDK,将直播流通过RTS(WebRTC)协议推流至阿里云边缘节点;

  2. 直播流在GRTN全球3200+节点中通过智能选路、QoS技术实时传输;

  3. 观众侧通过RTS(WebRTC)协议在最近的阿里云边缘节点进行拉流并在设备上进行播放,端到端延时400~600ms。

(可选)开启内部转推,实现媒体处理、超低延时直播和标准直播能力:

  1. 开启旁路转推后,主播推流后阿里云视频直播将自动转封装生成一路RTMP流;

  2. 您可以针对该流配置转码、录制、截图等媒体服务;

  3. 若您希望保持低延时拉流,可以使用低延时直播,在观众侧仍可使用RTS(WebRTC)拉流,获得端到端700~900ms的延时;

  4. 若您希望使用标准直播,则可以采用RTMP、FLV、HLS等协议进行拉流播放。

方案实施

前提条件

  • 您已经开通视频直播服务。开通方法,请参见开通服务

  • 您已经配置直播推流、播流的域名,操作方法请参见快速开始视频直播添加推流域名和播流域名配置CNAME关联推流域名和播流域名步骤。

推流、播流域名配置HTTPS证书

本文将使用浏览器的推拉流Demo进行演示,为推流、播流域名配置HTTPS证书是浏览器WebRTC的安全要求,配置HTTPS证书请参见配置HTTPS安全加速

若您使用Native SDK进行推流和播放则无需配置HTTPS证书。

开通超低延时直播配置

  1. 登录视频直播控制台

  2. 在左侧导航栏单击选择直播+ > 超低延时直播

  3. 选择播放域名。

  4. 打开超低延时直播开关,选择半秒延时(端到端延迟 400ms-600ms)。

image

生成直播推流和播放地址

方法一:控制台生成

开通超低延时直播后,可直接在推播流体验器中点击快速生成推/播流地址输入AppNameStreamName生成ARTC协议的超低延时直播推播放地址。

image

方法二:自定义拼接

自定义拼接推流地址和播放地址时,需判断直播流是否经过转码,是否进行鉴权,并准备好相关推流域名、播流域名、AppName、StreamName、转码模板ID(如有)和鉴权串(如有)。拼接规则如下:

地址类

地址格式

拼接规则

推流地址

支持RTMP、RTS、SRT格式,推荐使用RTMP格式地址推流。示例:

RTMP:rtmp://demo.aliyundoc.com/app/stream?auth_key={鉴权串}

说明

超低延时直播支持使用RTS格式地址拉流。

推流域名+AppName(应用)+StreamName(直播流)+鉴权串

播放地址

支持RTMP、FLV、M3U8、RTS格式,推荐使用RTS格式地址播放。示例:

RTS:artc://example.aliyundoc.com/app/stream?auth_key={鉴权串}

播流域名+AppName(应用)+StreamName(直播流)+鉴权串

转码流地址

说明

若进行转码模板配置操作,才会生成转码流地址,且播放地址拼接规则需使用转码流地址。

支持RTMP、FLV、M3U8、RTS格式,推荐使用RTS格式地址播放。示例:

RTS:artc://example.aliyundoc.com/app/stream_{转码模板ID}?auth_key={鉴权串}

播流域名+AppName(应用)+StreamName(直播流)_转码模板ID+鉴权串

说明
  • 已经关联的推拉流域名,只要推流和拉流的AppName(应用)和StreamName(直播流)相同即可进行推拉流。

  • 转码流地址需设置转码模板才可以生成。您可在控制台查看转码模板的ID,请参见直播转码

  • 鉴权串(auth_key)是根据鉴权算法得出的一个加密字符串,需开启鉴权功能。您可以通过md5算法计算获取鉴权串,请参见鉴权URL组成

  • 自定义拼接地址时,直接用实际数据替换{转码模板ID}{鉴权串},实际数据外层不需要加{}符号。

主播侧进行RTS推流

您可以选择以下推流SDK其中之一进行集成:

RTS推流SDK

相关文档

Web推流SDK

Web推流SDK

iOS推流SDK

iOS推流SDK

说明

iOS推流SDK默认支持WebRTC推流。

Android推流SDK

Android推流SDK

说明

Android推流SDK默认支持WebRTC推流。

使用OBS基于WHIP协议推流

OBS RTS推流

本文中使用Web RTS推流Demo为您演示:

  1. 进入RTS推流网页Demo

  2. Demo中选择推流模式。

  3. 展开none下拉框,根据您的实际需求,选择camera(摄像头)或者screen(屏幕共享)。

    如果您选择camera,需要分别单击下方的麦克风摄像头按钮进行授权,授权成功后,再展开选择麦克风和选择摄像头下拉框,选择对应的设备。

  4. 输入生成直播推流和播放地址中已生成的RTS格式推流地址,并单击创建本地流

  5. 单击开始推流,即可完成推流。RTS推流

观众侧进行RTS播放

您可以选择以下播放SDK其中之一进行集成:

RTS播放SDK

相关文档

Web播放SDK

Web播放器

iOS播放SDK

iOS播放器

Android播放SDK

Android播放器

HarmonyOS播放SDK

HarmonyOS NEXT播放器

Flutter播放SDK

Flutter播放器

WIndows播放SDK

说明

Windows播放器SDK的获取,请联系阿里云商务申请下载。

本文中使用Web RTS播放Demo为您演示:

  1. 进入RTS播放网页Demo

  2. Demo中选择拉流模式。

  3. 输入生成直播推流和播放地址中已生成的RTS格式播放地址。

  4. 单击开始拉流rts 播放

(可选)配置内部转推

  1. 超低延时直播设置页,选择半秒延时(端到端延迟400ms-600ms)。

  2. 单击转推配置,开启转推开关,并选择另一个推流域名用于接收转推后的RTMP流。

说明

例如:转推接收域名为push.example.com,其关联的播放域名为pull.example.com

  • 转推接收域名和其关联的播放域名均不能开启超低延时直播半秒延时模式。

  • 内部转推将不会收取转推费用。

image

(可选)基于转推后的流配置媒体处理服务

完成转推配置后,可基于转推接收域名关联的播放域名,即基于pull.example.com进行媒体处理模板配置。

视频直播控制台左侧导航栏的功能管理中,选择您需要的能力进行配置。

image

(可选)基于转推后的流进行标准直播播放

完成转推后,可基于转推接收域名关联的播放域名,即基于pull.example.com可以进行标准直播(RTMP/FLV/HLS)播放原始流,或云上转码后的流。 播放标准直播(RTMP/FLV/HLS),具体操作请参见播放标准直播