SRS是一个简单的流媒体直播集群,一个简单的快乐。
使用SRS搭建一个集群流媒体服务器
这里使用的的服务器是1核1G的CentOS 7 系统
这里示例部署了两个源站做集群,还部署了两个边缘节点。
实际使用中,可以部署多个源站和多个边缘,形成源站集群。
使用git下载SRS源码:
git clone https://git.oschina.net/winlinvip/srs.oschina.git /usr/local/srs && \
cd /usr/local/srs && \
git remote set-url origin https://github.com/ossrs/srs.git
编译SRS,详细参考Build
cd /usr/local/srs/trunk && ./configure && make
在192.168.0.114(源站A)上创建配置文件
mkdir /usr/local/srs/conf && \
mkdir /usr/local/srs/log && \
vim /usr/local/srs/conf/server.conf
写入如下配置:
#监听的流端口
listen 19350;
#最大的连接数
max_connections 1000;
#是否为守护进程,如果要启动在console,那么需要配置daemon off;
daemon on;
#配置日志答应到文件(file)/控制台(config),需要和srs_log_level配合使用
srs_log_tank file;
#制定配置文件的级别,默认级别是trace
#verbose:非常详细的日志,性能会很低,日志会非常多
#info:较为详细的日志,性能也受影响。
#trace:重要的日志,比较少
#warn:警告日志,SRS在控制台以黄色显示。若SRS运行较稳定,可以只打开这个日志
#error:错误日志,SRS在控制台以红色显示。
srs_log_level trace;
#制定日志文件的位置.
srs_log_file /usr/local/srs/log/srs.log;
#pid文件位置
pid /usr/local/srs/srs.pid;
http_api {
enabled on;
listen 9090;
}
vhost __defaultVhost__ {
cluster {
#集群的模式,对于源站集群,值应该是local。
mode local;
#是否开启源站集群
origin_cluster on;
#源站集群中的其他源站的HTTP API地址
coworkers 192.168.0.115:9090;
}
}
在192.168.0.115(源站B)上创建配置文件,写入如下配置
#监听的流端口
listen 19350;
#最大的连接数
max_connections 1000;
#是否为守护进程,如果要启动在console,那么需要配置daemon off;
daemon on;
#配置日志答应到文件(file)/控制台(config),需要和srs_log_level配合使用
srs_log_tank file;
#制定配置文件的级别,默认级别是trace
#verbose:非常详细的日志,性能会很低,日志会非常多
#info:较为详细的日志,性能也受影响。
#trace:重要的日志,比较少
#warn:警告日志,SRS在控制台以黄色显示。若SRS运行较稳定,可以只打开这个日志
#error:错误日志,SRS在控制台以红色显示。
srs_log_level trace;
#制定日志文件的位置.
srs_log_file /usr/local/srs/log/srs.log;
#pid文件位置
pid /usr/local/srs/srs.pid;
http_api {
enabled on;
listen 9090;
}
vhost __defaultVhost__ {
cluster {
#集群的模式,对于源站集群,值应该是local。
mode local;
#是否开启源站集群
origin_cluster on;
#源站集群中的其他源站的HTTP API地址
coworkers 192.168.0.114:9090;
}
}
在192.168.0.116(边缘A)上创建配置文件,写入如下配置
#监听的流端口
listen 19350;
#最大的连接数
max_connections 1000;
#是否为守护进程,如果要启动在console,那么需要配置daemon off;
daemon on;
#配置日志答应到文件(file)/控制台(config),需要和srs_log_level配合使用
srs_log_tank file;
#制定配置文件的级别,默认级别是trace
#verbose:非常详细的日志,性能会很低,日志会非常多
#info:较为详细的日志,性能也受影响。
#trace:重要的日志,比较少
#warn:警告日志,SRS在控制台以黄色显示。若SRS运行较稳定,可以只打开这个日志
#error:错误日志,SRS在控制台以红色显示。
srs_log_level trace;
#制定日志文件的位置.
srs_log_file /usr/local/srs/log/srs.log;
#pid文件位置
pid /usr/local/srs/srs.pid;
vhost __defaultVhost__ {
cluster {
#集群的模式,对于边缘集群,值应该是remote。
mode remote;
#源站集群中所有源站流地址
origin 192.168.0.114:19350 192.168.0.115:19350;
}
}
在192.168.0.117(边缘B)上创建配置文件,写入与192.168.0.116(边缘A)一样的配置
在源站A、源站B、边缘A、边缘B上分别执行以下语句
/usr/local/srs/trunk/objs/srs -c /usr/local/srs/conf/server.conf
这里的推流使用的是OBS,可以在官网下载
设置推流地址rtmp://192.168.0.114:19350/live/demo
或者rtmp://192.168.0.115:19350/live/demo
创建媒体源,后点击开始推流
SRS拉流:http://winlinvip.github.io/srs.release/trunk/research/players/srs_player.html
输入地址rtmp://192.168.0.116:19350/live/demo
或者rtmp://192.168.0.117:19350/live/demo
都可以播放
不管流推到哪个源站,播放边缘的流都能从正确的源站回源取流.
网易云:https://vcloud.163.com/demo/player
输入地址rtmp://192.168.0.116:19350/live/demo
或者rtmp://192.168.0.117:19350/live/demo
都可以播放
不管流推到哪个源站,播放边缘的流都能从正确的源站回源取流.
原地址 https://www.novelweb.cn/archives/362