为提升视频直播在弱网环境下的推流效果,推流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://
开头的协议地址。具体请参见生成推流地址和播放地址。
RTS推流
使用推流SDK进行RTS推流时,和使用推流SDK进行RTMP推流的方法相同,只需要在调用startPush接口的时候将RTS格式的推流地址传递给推流SDK即可,其他的不需要做改动。具体操作,请参见Android推流SDK功能使用或iOS推流SDK功能使用。
RTS推流仅支持音视频推流,即流中必须包含音频和视频。如果您的使用场景为纯音频或纯视频推流,则需要同步输入对应的视频或音频数据。
直播播放
使用RTS推流的直播,在播放端可以使用RTMP、FLV、HLS协议流进行标准直播播放,也可以使用ARTC协议流进行超低延时直播播放。关于超低延时直播播放,请参见超低延时直播播放。