SRT推流

更新时间:
复制 MD 格式

阿里云直播服务推流支持 SRT 协议。在跨境推流等弱网环境中,RTMP 基于 TCP,在高延迟、丢包链路中容易拥塞卡顿;SRT 基于 UDP,具备自动重传请求(ARQ)丢包恢复和自适应码率调整能力,抗抖动和抗丢包性能优于 RTMP,可作为这类场景下的 RTMP 替代方案。SRT 相比 RTMP 延迟会增加约 500ms,但稳定性更高,您可以通过本文了解如何使用 SRT 进行推流。

前提条件

您已完成推流域名和播放域名的配置及关联,操作步骤请参见快速开始视频直播。

SRT配置

  1. 登录视频直播控制台。

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

  3. 选择您要配置的播流域名,单击域名配置。

    在域名管理页面的域名列表中,目标播流域名的操作列包含域名配置入口。

  4. 单击直播管理 > 基本配置。

  5. 单击推流信息页签,在推流协议区域,打开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=publish
SRT播流

推流为 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=request

  • srt://{域名}: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)。