为提升视频直播在弱网环境下的推流效果,直播推流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好。
视频画质
几种不同网络环境下的视频画质对比如下,下图中值越大代表画质评分越高,画质越好,从图中可以看出,RTS在弱网环境下的视频画质比RTMP好。
使用直播推流SDK进行RTS推流
前提条件
已开通视频直播服务,完成域名添加和推拉流域名关联。具体操作,请参见快速开始视频直播。
推流域名开启RTS推流。自2022年09月01日起,新添加的推流域名默认开启RTS推流,您无需额外配置。若您的域名是在2022年09月01日之前添加的,需要手动开通。
登录视频直播控制台。
在左侧导航栏选择推/播流域名管理,进入域名管理页面。
单击指定推流域名操作列的域名配置,进入域名管理页面。
选择
。打开RTS推流开关。
生成推流地址,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协议流进行超低延时直播播放。关于超低延时直播播放,请参见超低延时直播快速入门。