Centos7搭建SRS2 传输RTMP流媒体服务器教程

本教程使用centos7.6.1810版本搭建

SRS(simple-rtmp-server)是一个一个性能良好,安装简单,搭建集群简单的,多样化的直播服务器,类似的还有red5,crtmp,nginx-rtmp-module等,告诉大家这个服务是中国人开发的哦,有点小骄傲

red5和crtmp,srs,区别

red5安装简单,性能一般,集群配置无文档,用户量大的话,就不要用了。

crtmp安装简单,性能良好,集群配置简单,但是配置集群时需要指定从服务器的rtmp的流地址,做点播还是比较合适的,做直播不是很合适了。

srs安装简单,性能良好,集群配置简单,多样化,可惜没有连接池,所以要自己做了个请求的统一入口。

好的,现在开始我们的安装教程,安装过程碰到的问题,我都会提及,并提供解决方案

  1. 下载

官网地址: http://www.ossrs.net/srs.release/releases/

进入使用说明
https://github.com/ossrs/srs#usage

如下找到搭建步骤,基本视频流服务器教程在这里都有(可以选择谷歌翻译),我们选择第一个,搭建RTMP流服务器

下面开始安装步骤

下载源码(太慢了,推荐使用下面的链接)

git clone https://github.com/ossrs/srs

推荐使用国内镜像

git clone https://git.oschina.net/winlinvip/srs.oschina.git 

进入trunk目录 更新最新代码

git pull

编译SRS2

进入srs主目录

image.png

执行组合命令


./configure –prefix=/usr/local/srs2&&make&&make install

--prefix为安装目录,可使用./configure –help查看命令帮助

编译完成修改配置文件

进入主目录的conf文件夹


cd ./conf

vi rtmp.conf

插入如下代码


listen 1935;

max_connections 1000;

vhost __defaultVhost__ {

}

如果配置低延迟,请使用如下代码


listen 1935;

max_connections 1000;

srs_log_tank   file;

srs_log_file ./objs/srs.log;

http_api {

enabled on;

listen 1985;

}

http_server {

 enabled on;

 listen 80;

 dir ./objs/nginx/html;

}

stats {

network 0;

 disk sda sdb xvda xvdb;

}

vhost __defaultVhost__ {

 #最小延迟打开,默认是打开的,该选项打开的时候,mr默认关闭。

min_latency on;

 #Merged-Read,针对RTMP协议,为了提高性能,SRS对于上行的read使用merged-read,即SRS在读写时一次读取N毫秒的数据

 mr {

 enabled off;

#默认350ms,范围[300-2000]

 #latency 350;

}

#Merged-Write,SRS永远使用Merged-Write,即一次发送N毫秒的包给客户端。这个算法可以将RTMP下行的效率提升5倍左右,范围[350-1800]

 mw_latency 100;

 #enabled on;

 #https://github.com/simple-rtmp-server/srs/wiki/v2_CN_LowLatency#gop-cache

 gop_cache off;

 #配置直播队列的长度,服务器会将数据放在直播队列中,如果超过这个长度就清空到最后一个I帧

#https://github.com/simple-rtmp-server/srs/wiki/v2_CN_LowLatency#%E7%B4%AF%E7%A7%AF%E5%BB%B6%E8%BF%9F

 queue_length 10;

 #http_flv配置

 http_remux {

 enabled on;

 mount [vhost]/[app]/[stream].flv;

 hstrs on;

 }

}

详情请参考官方https://github.com/ossrs/srs/wiki/v1_CN_LowLatency
然后我们启动srs2,默认是使用conf文件夹下的srs.conf配置文件启动,我们使用了指定的配置文件rtmp.conf启动,搭建rtmp流服务器,执行以下命令


/objs/srs -c ./conf/rtmp.conf

这时候我们还不能使用外部推流命令,外部也不能根据rtmp协议拉流,因为centos默认打开防火墙,我们需要关闭防火墙,或者开放端口和通道

具体可以参考以下博文

https://blog.csdn.net/u011846257/article/details/54707864

指定区域开放端口,这里指定了1935端口,所以开放1935端口


firewall-cmd --zone=public --add-port=1935/tcp(永久生效再加上  --permanent)

重启防火墙


firewall-cmd --reload

如果外部无法推流到SRS2,或者外部也无法拉取RTMP流,可以尝试关闭防火墙操作

启动后可以后台查看进程


ps -ef|grep srs

如果后台没有相关进程,请执行以下命令,并重新编译安装


rm -rf /usr/local/srs2

如果还没有进程,那重启一下,在执行启动

启动后,就可以使用ffmpeg执行推流命令了


ffmpeg \

-rtsp_transport tcp \

-threads 1 \

-buffer_size 1024000 \

-max_delay 500000 \

-i rtsp://admin:tianma315@192.168.3.21:554/h264/ch0/main/av_stream \

-c:v libx264 -b:v 350k -profile:v baseline -level 3.0 \

-fflags nobuffer \

-preset ultrafast \

-tune zerolatency \

-r 15 \

-vcodec h264 \

-f flv -an rtmp://192.168.153.128:1935/live/192168321

注: 192.168.153.128请根据自身服务器地址切换

集群搭建请参考以下博文

http://www.voidcn.com/article/p-vcwfdusd-hh.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • <可移动的生态花园家> 报名帖:2019首届武汉家庭园艺展邀您来参加! 原创:向您递来邀请函的武汉全民义...
    武汉家庭园艺展阅读 227评论 0 0
  • 响应式布局和自适应布局详解 布局等于流动网格布局,而自适应布局等于使用固定分割点来进行布局。 自适应布局给了你更多...
    无欲而为阅读 911评论 1 0
  • (中华新韵) 灯笼上树又迎春,庙宇层层参拜人。 世道浑蒙天道定,莫凭八卦指迷津。
    诗人夏沐阅读 1,097评论 10 14
  • 这一日,唐仁遣了一众下人回家休息,偌大个唐家空空荡荡,却一点也不显冷清,这么多年,唐家可是第一次来客人。 堂前气氛...
    高城阅读 809评论 1 4
  • 在那个阳光灿烂的下午 我斜倒在车后座 爸妈坐在前面絮絮叨叨的说着些什么 阳光透过车窗直洒在我的脸上 我闭上眼睛 感...
    庶九阅读 134评论 0 0