SRS(简单实时视频服务) 笔记(2)- 端口和URL说明

2021-05-11 10:24:13 浏览数 (1)

0.背景

1.知识

1935 端口

上文我们说到 通过 docker 可以简单快捷的启动一个srs服务,指令如下:

代码语言:javascript复制
docker run --rm -p 1935:1935 -p 1985:1985 -p 8080:8080 ossrs/srs:3

留意到上面映射了 1935 端口,1935 端口是 RTMP 协议的数据交换端口。

rtmp协议默认使用的是1935端口。

而在播放rtmp,的URL时,比如这样的

代码语言:javascript复制
rtmp://localhost/live/livestream

它也会在 1935 端口上工作。

标准的 RTMP 网址

HTTP

Schema

Host

Port

App

Stream

rtmp://192.168.1.10:1935/live/livestream

rtmp

192.168.1.10

1935

live

livestream

Schema:协议头,HTTP为HTTP或HTTPS,RTMP为RTMP/RTMPS/RTMPE/RTMPT等众多协议,还有新出的RTMFP。 Host:主机,表示要连接的主机,可以为主机DNS名称或者IP地址。商用时,一般不会用IP地址,而是DNS名称,这样可以用CDN分发内容(CDN一般使用DNS调度,即不同网络和地理位置的用户,通过DNS解析到的IP不一样,实现用户的就近访问)。 Port:端口,RTMP默认为1935。 App:RTMP的Application(应用)名称,可以类比为文件夹。以文件夹来分类不同的流,没有特殊约定,可以任意划分。 Stream:RTMP的Stream(流)名称,可以类比为文件。

简单来说,你的 RTMP 流媒体地址应该是像这样的

代码语言:javascript复制
rtmp://yourdomain.com/app/stream

NO Vhost

上面的网址,是没有使用 Vhost (即默认Vhost) 的情形。 实际使用中也可用启动 Vhost 来隔离用户。

Vhost 的主要应用场景包括: 一个分发网络支持多个客户:譬如CDN,一个分发网络中,有N个客户公用一套流媒体系统,如何区分用户,计费,监控等等?通过app么?大家可能都叫做live之类。最好是通过各自的域名。 不同的应用配置:譬如FMLE推上来的流是h264 mp3,可以将音频转码后放到其他的vhost分发hls,这样接入h264 mp3的vhost就不用切hls。 总之,vhost作为应用配置的单元,能隔离客户,应用不同的配置。

其实,vhost大多数用户都用不到,而且不推荐用,有点复杂。一般的用户用app就可以了。因为vhost/app/stream,只是一个分类方法而已;vhost需要在配置文件中说明,app/stream都不需要配置。

3.参考

https://github.com/ossrs/srs/wiki/v3_CN_RtmpUrlVhost https://www.cnblogs.com/linhaostudy/p/11363550.html

0 人点赞