SRT直播地址格式簡介
介紹srt在live模式下如何構造推/拉流地址。
源github wiki地址: srt-url-format
github代碼: https://github.com/runner365/srs
rtmp常規地址格式
rtmp地址格式簡介
-
常規rtmp格式(無vhost)
rtmp://hostip:port/appname/streamname
例子: rtmp://10.111.1.100:1935/live/livestream
上面例子中appname=“live”, streamname=“livestream” -
複雜rtmp格式(有vhost)
rtmp://hostip:port/vhost/appname/streamname
例子: rtmp://10.111.1.100:1935/srs.com.cn/live/livestream
上面例子中vhost=“srs.com.cn”, appname=“live”, streamname=“livestream”
rtmp如何確認對rtmp url是推流還是拉流: -
publish
rtmp協議中publish消息表示是對該url進行推流 -
play
rtmp協議中publish消息表示是對該url進行推流
srt直播地址格式
因爲srt是四層傳輸協議,所以無法確定對某個srt url操作是推流還是拉流。
在srt官網中有對推/拉流的推薦:AccessControl.md
關鍵方法是通過streamid參數來明確url的作用,strreamid的格式符合YAML格式。
srt常規地址(無vhost)
srt url舉例:
- 推流地址: srt://127.0.0.1:10080?streamid=#!::h=live/livestream,m=publish
- 拉流地址: srt://127.0.0.1:10080?streamid=#!::h=live/livestream,m=request
其中:
- #!::
#!::爲開始,符合yaml格式標準 - h
映射到rtmp地址中的appname/streamname; - m
publish表示推流。
request表示拉流。
上面srt對應的rtmp拉流地址爲:rtmp://127.0.0.1/live/livestream
srt複雜地址(有vhost)
srt url舉例:
- 推流地址: srt://127.0.0.1:10080?streamid=#!::h=srs.srt.com.cn/live/livestream,m=publish
- 拉流地址: srt://127.0.0.1:10080?streamid=#!::h=srs.srt.com.cn/live/livestream,m=request
其中:
- #!::
#!::爲開始,符合yaml格式標準 - h
映射到rtmp地址中的vhost/appname/streamname; - m
publish表示推流。
request表示拉流。
上面srt對應的rtmp拉流地址爲:rtmp://127.0.0.1/srs.srt.com.cn/live/livestream
或rtmp://127.0.0.1/live/livestream?vhost=srs.srt.com.cn。