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
最新评论: