SRS全称Simple RTMP Server,定位是运营级的互联网直播服务器集群,是一个非常简单就可以推送rtmp视频流的服务器.
github主页:https://github.com/ossrs/srs
目前稳定版为2.0,3.0版本正在开发中,2.0的文档为:https://github.com/ossrs/srs/wiki/v2_CN_Home,文档为中文版,里面内容和组件介绍也很清晰,开发srs的大牛也是中国人,看到这里不禁自豪一番^-^.
下面介绍srs的安装和基本配置:
操作系统是CentOS 7,程序包使用的github release页最新稳定版2.0
srs安装非常简单,以下几步搞定:
unzip srs-2.0-r2.zip cd srs-2.0-r2/trunk ./configure make
现在srs源码就编译完成了,程序包比较大但是编译过程挺快,注意make不要加-j参数,会报错.
编译完之后可以执行make install,默认是安装到/usr/local/srs,可以自定义,当然也可以不install,现在就可以直接执行了.
配置文件是:conf/rtmp.conf,默认非常精简只有下面这些:
只需上面这几行配置就可以完整的实现rtmp流媒体服务器,其中listen默认为1935,是rtmp流推送的默认端口;max_connections值最大连接;daemon是否为守护进行在后台执行,然后vhost为虚拟主机可以隔离客户,这个默认不用配置即可.
然后可以执行命令启动rtmp服务: ./objs/srs -c conf/rtmp.conf ,启动之后就可以向服务推流了,另外srs也提供了完整的http服务用作srs服务器使用,具体配置文件在conf/srs.conf,其中多了http部分的配置,其中用于播放测试的配置如下,也可以添加到rtmp.conf配置中:
http_server { enabled on; listen 8080; dir ./objs/nginx/html; }
添加配置完成后,重启srs服务器然后可以访问页面,我这里地址是:http://192.168.182.135:8080,ip和端口要改成实际配置的,访问会跳转到默认页面.
现在可以进行rtmp推流测试,可以使用ffmpeg,在srs下的doc目录下有测试视频,新开shell窗口到ffmpeg目录下执行下面命令推送rtmp视频流:
./bin/ffmpeg -re -i /root/srs-2.0-r2/trunk/doc/source.200kbps.768x320.flv -vcodec copy -acodec copy -f flv rtmp://192.168.182.135:1935/live/livestream
这里说一下rtmp url的格式,和http协议类似,分为以下几个部分:
协议头:rtmp 和http,https类似,其他的还有RTMPS,RTMFP等.
主机:rtmp服务的主机,使用ip地址或主机名
端口号:rtmp服务器的端口,默认为1935,当不指定时默认是1935
App:这里app名称为live,类似于http中的目录或者应用路由,一般用于区分不同的流,可以任意指定.
Stream:这里为livestream,类似于http中的文件或者单个请求页面,也可以任意指定.
执行上面命令后即开始推流,然后可以在刚才的srs页面选择上面的JWPlayer6播放器或者AdobeOSMF播放器输入上面的rtmp地址,然后点击播放,正常播放视频即测试推流成功:
另外也可以使用vlc播放视频流,在ffmpeg推流执行完之前视频都是可以正常播放的.
以上就是SRS用作流媒体服务器的基本安装和配置.