SRT URL Specification
介绍srt在live模式下如何构造推/拉流地址。
RTMP URL
RTMP地址格式简介,请参考 RTMP URL。
- 常规rtmp格式(无vhost)
rtmp://hostip:port/app/stream
- 例子:
rtmp://10.111.1.100:1935/live/livestream
- 上面例子中app="live", stream="livestream"
- 复杂rtmp格式(有vhost)
rtmp://hostip:port/app/stream?vhost=xxx
- 例子:
rtmp://10.111.1.100:1935/live/livestream?vhost=srs.com.cn
- 上面例子中vhost="srs.com.cn", app="live", stream="livestream"
rtmp如何确认对rtmp url是推流还是拉流:
- publish
- rtmp协议中
publish消息
表示是对该url进行推流
- rtmp协议中
- play
- rtmp协议中
play消息
表示是对该url进行拉流
- rtmp协议中
SRT URL Format
因为srt是四层传输协议,所以无法确定对某个srt url操作是推流还是拉流。
在srt官网中有对推/拉流的推荐:AccessControl.md 关键方法是通过streamid参数来明确url的作用,streamid的格式符合YAML格式。
SRT URL no Vhost
srt url举例:
- 推流地址:
srt://127.0.0.1:10080?streamid=#!::r=live/livestream,m=publish
- 拉流地址:
srt://127.0.0.1:10080?streamid=#!::r=live/livestream,m=request
其中:
#!::
#!::
为开始,符合yaml格式标准
- r
- 映射到rtmp地址中的/app/stream;
- m
- publish表示推流。
- request表示拉流。
上面srt对应的rtmp拉流地址为:rtmp://127.0.0.1/live/livestream
SRT URL for Vhost
srt url举例:
- 推流地址:
srt://127.0.0.1:10080?streamid=#!::h=srs.srt.com.cn,r=live/livestream,m=publish
- 拉流地址:
srt://127.0.0.1:10080?streamid=#!::h=srs.srt.com.cn,r=live/livestream,m=request
其中:
#!::
#!::
为开始,符合yaml格式标准
- h
- 映射到rtmp地址中的vhost;
- r
- 映射到rtmp地址中的/app/stream;
- m
- publish表示推流。
- request表示拉流。
上面srt对应的rtmp拉流地址为:rtmp://127.0.0.1/live/livestream?vhost=srs.srt.com.cn
。
Runner365 2020.02