RTS推流

为提升视频直播在弱网环境下的推流效果,直播推流SDK在传统的RTMP推流协议基础上新增了基于RTC的RTS推流。本文介绍不同网络环境下两种推流协议的数据对比,可以发现RTS推流相对于RTMP推流稳定性和抗弱网有显著提升,建议用户优先使用RTS推流。直播推流SDK内部已做了自动降级处理,当RTS推流出现问题时,会自动降级到RTMP推流。

正常网络和弱网环境下推流效果对比

测试场景

主播使用直播推流SDK,观众通过CDN拉流观看。在主播端设置各种弱网限制,观察观众端的播放效果。主播侧的弱网限制只限制主播上行网络,不限制下行网络。

推流参数

RTMP推流和RTS推流使用相同的推流参数:

类型

参数信息

分辨率

720 X 1280

帧率

20

码率

2 Mbps

网络限制

类型

参数说明

上行丢包20%

上行发送10个数据包丢失2个。

上行带宽500k

每秒钟最多发送500 kb的数据。

上行延时500ms

数据包需要经过500 ms后才被网络发送出去。

视频卡顿率

几种不同网络环境下的视频卡顿率对比如下,下图中值越大代表视频越卡顿,从图中可以看出,RTS在弱网环境下的视频卡顿比RTMP好。

视频卡顿率.png

视频画质

几种不同网络环境下的视频画质对比如下,下图中值越大代表画质评分越高,画质越好,从图中可以看出,RTS在弱网环境下的视频画质比RTMP好。

视频画质.png

使用直播推流SDK进行RTS推流

前提条件

  • 已开通视频直播服务,完成域名添加和推拉流域名关联。具体操作,请参见快速开始视频直播

  • 推流域名开启RTS推流。自2022年09月01日起,新添加的推流域名默认开启RTS推流,您无需额外配置。若您的域名是在2022年09月01日之前添加的,需要手动开通。

    1. 登录视频直播控制台

    2. 在左侧导航栏选择推/播流域名管理,进入域名管理页面。

    3. 单击指定推流域名操作列的域名配置,进入域名管理页面。

    4. 选择直播管理 > 超低延时推流RTS

    5. 打开RTS推流开关。

    RTS推流.png

  • 生成推流地址,RTS推流地址和RTMP推流地址除开始的协议头不同之外,其他生成规则相同。使用RTS推流需要使用artc://开头的协议地址。具体请参见生成推流地址和播放地址

    说明
    • 阿里云视频直播不允许同一时间向同一个推流URL进行多路推流(第二路推流会被拒绝)。

    • Demo体验推RTS流,请参见方法三:使用Web端推RTS流

使用限制

相较于RTMP推流,RTS推流限制如下所示:

  • 仅支持单声道。

  • 不支持弱网自动推图片功能。

  • 音频编码格式仅支持LC。

  • 音频采样率仅支持48 kHz。

RTS推流

使用直播推流SDK进行RTS推流时,和使用直播推流SDK进行RTMP推流的方法相同,只需要在调用startPush接口的时候将RTS格式的推流地址传递给直播推流SDK即可,其他的不需要做改动。具体操作,请参见Android直播推流SDK功能使用iOS直播推流SDK功能使用

重要

RTS推流仅支持音视频推流,即流中必须包含音频和视频。如果您的使用场景为纯音频或纯视频推流,则需要同步输入对应的视频或音频数据。

直播播放

使用RTS推流的直播,在播放端可以使用RTMP、FLV、HLS协议流进行标准直播播放,也可以使用ARTC协议流进行超低延时直播播放。关于超低延时直播播放,请参见超低延时直播快速入门