本文档将为您介绍视频直播 SRT 推流的功能和使用方法。
安全可靠传输协议(Secure Reliable Transport,下文简称 SRT)是一种开源的低延时视频传输协议,支持在互联网等不可预测的网络上优化流媒体性能,实现安全可靠的高清视频传输与分发。
SRT 协议基于 UDT 协议(UDT 协议是基于 UDP 的传输协议),保留了 UDT 的核心思想和机制。具有较好的丢包重传能力,SRT 支持自动重复请求(Automatic Repeat reQuest,ARQ)和前向纠错(Forward Error Correction,FEC),可以帮助恢复数据。
您可以通过以下方式获取 SRT 推流地址。
AppName、StreamName 和鉴权信息说明,详见生成直播地址最佳实践。
示例:srt://{推流域名}:9000?streamid=#!::h={推流域名},r={AppName}/{StreamName},m=publish,{鉴权信息}
格式说明如下表所示。srt://push.example.com:9000?streamid=#!::h=push.example.com,r=live/test,m=publish,volcTime=1789962548,volcSecret=cceb4c08ff24****ad63c9a2184d
| 参数 | 说明 |
|---|---|
{推流域名} | 已添加的推流域名。 |
9000 | TS over SRT 推流使用的 UDP 端口。 |
streamid | TS over SRT 地址中的查询参数,等号(=)后的 #!::h={推流域名},r={AppName}/{StreamName},m=publish,{鉴权信息} 为 streamid 的取值。 |
h | 取值为推流域名。 |
r | 取值为 {AppName}/{StreamName},即直播流的 AppName 和 StreamName 标识。 |
m | 取值为 publish,表示推流。 |
{鉴权信息} | 推流域名开启 URL 鉴权后需要追加的鉴权参数,例如 volcTime=xxx,volcSecret=xxx。在 TS over SRT 地址中,鉴权参数需放在 streamid 中,并使用英文逗号(,)分隔。 |
示例:rtmp://{推流域名}:1999/{AppName}/{StreamName}?{鉴权信息}
格式说明如下表所示。rtmp://push.example.com:1999/live/test?volcTime=1789962548&volcSecret=cceb4c08ff24****ad63c9a2184d
| 参数 | 说明 |
|---|---|
{推流域名} | 已添加的推流域名。 |
1999 | RTMP over SRT 推流使用的 UDP 端口。 |
{AppName} | 直播流的 AppName 标识。 |
{StreamName} | 直播流的 StreamName 标识。 |
{鉴权信息} | 推流域名开启 URL 鉴权后需要追加的鉴权参数,例如 volcTime=xxx&volcSecret=xxx。在 RTMP over SRT 地址中,鉴权参数作为 URL 查询参数追加在 ? 后,多个参数使用 & 分隔。 |
说明
本章节示例使用最新版 OBS 推流软件进行推流测试,您可以使用任意支持 SRT 协议的推流软件进行直播推流。

