RTMP SRS源与边界的实现

来源:互联网 发布:知名网络言情小说作家 编辑:程序博客网 时间:2024/05/17 22:45
SRS Simple Rtmp Service顾名思义简单rtmp服务 是一个很轻的rtmp服务,说他轻是在对比使用过Wowza和Red5之后得出的结论。
感谢winlinvip做出这么屌的东东。
现在在做一些视频直播相关的工作,对流媒体的相关应用接触的越来越多。找到一个合适的流媒体服务器可以说是所有问题中最重要的一环。在主程的推荐下开始接触SRS,发现这个超级小巧的东东不仅安装方便,而且功能也不少。配置文件风格和nginx超级的相似,简简单单几句话就能实现edge,这不就是传说中的视频CDN么。
闲话少说,进入正题      
https://github.com/winlinvip/simple-rtmp-server
安装配置so easy
git clone https://code.csdn.net/winlinvip/srs-csdn.git    (csdn的镜像比较快)
cd srs-csdn/trunk
./configure && make

./obj/srs -c conf/srs.conf

默认配置下1935端口就开了,srs服务就这么跑起来了。

但是如果用户量非常大,单台服务器是无法承受的,而且中国的烂网络情况下,跨电信网通铁通教育网的用户,如果想获得较好的体验真的是一件很糟心的事情。所以搞出CDN集群式很重要的。
https://github.com/winlinvip/simple-rtmp-server/wiki/Edge、

简单的说,在边界上srs的配置文件中加一个Vhost
配置mode 为 remote 然后加一个origin制定源的rtmp URL(可以指定多个)

经测试(有源码,但是看不懂,就只能一点一点测)只要将流推向集群中的任意一台SRS(不管是源还是edge),都能从集群中的任意一台SRS(不管是源还是edge)将视频流拉取下来。
如果有多个源,edge只把流推向其中的一个。一旦正在使用的源死掉,边界将会自动寻找配置中指定的其他源,中断时间极短,也算是高可用的一种形式。
0 0