阿里云直播服务推流支持 SRT 协议。在跨境推流等弱网环境中,RTMP 基于 TCP,在高延迟、丢包链路中容易拥塞卡顿;SRT 基于 UDP,具备自动重传请求(ARQ)丢包恢复和自适应码率调整能力,抗抖动和抗丢包性能优于 RTMP,可作为这类场景下的 RTMP 替代方案。SRT 相比 RTMP 延迟会增加约 500ms,但稳定性更高,您可以通过本文了解如何使用 SRT 进行推流。
前提条件
您已完成推流域名和播放域名的配置及关联,操作步骤请参见快速开始视频直播。
SRT配置
登录视频直播控制台。
在左侧导航栏点击推/播流域名管理,进入域名管理页面。
选择您要配置的播流域名,单击域名配置。
在域名管理页面的域名列表中,目标播流域名的操作列包含域名配置入口。
单击。
单击推流信息页签,在推流协议区域,打开SRT协议开关(默认为关闭状态)。
SRT推/播流
SRT推流
开启SRT协议,可在控制台地址生成器或者代码拼接生成获取SRT推流地址。SRT协议推流地址支持两种格式:
格式一(推荐):
srt://{域名}:1105?streamid=#!::h={域名},r=/{AppName}/{StreamName}?auth_key={鉴权串},m=publish
格式二:
srt://{域名}:1105?streamid=push://{域名}/{AppName}/{StreamName}?auth_key={鉴权串}
自定义参数转义规则
当 SRT 推流地址中包含自定义参数时,需要对其特殊字符进行 URL encode。示例如下:
srt://{域名}:1105?streamid=#!::h={域名},r=/{AppName}/{StreamName}?auth_key%3D1807696811-21613-0fa3597df7f228fbfae37020de3782b70%26sprio%3D6,m=publishSRT播流
推流为 SRT 协议时,播放协议支持 RTMP、FLV、HLS、RTS。SRT 播流功能默认未开启,您需要联系阿里云客户经理或联系我们,由阿里云后台为指定的播流域名加白(开通 SRT 播流权限)。加白由阿里云后台完成,您无需在服务器端额外配置或绑定 IP。
加白完成后,配置初期仅对指定的测试节点生效,您需要将播流域名绑定到阿里云提供的测试节点完成播流验证,验证通过后配置才会下发至全网节点。加白按单个播流域名独立处理,关联域名不会自动同步生效,每个需要使用 SRT 播流的域名都需分别提交申请。如果您的业务对延迟有更高要求(200–400 ms),建议改用 RTS(ARTC)协议。
SRT协议播流地址支持两种格式:
srt://{域名}:1105?streamid=#!::h={域名},r=/{AppName}/{StreamName}?auth_key={鉴权串},m=requestsrt://{域名}:1105?streamid=pull://{域名}/{AppName}/{StreamName}?auth_key={鉴权串}
参数与鉴权请参见生成直播地址。
视频直播 SRT 协议是否支持 HEVC(H.265)编码?
SRT 推流支持 H.264、H.265、AAC 和 EAC3 编码,SRT 播流(拉流)目前仅支持 H.264 和 AAC 编码,不支持 HEVC(H.265)。