这段时间一直在搞RTMP流媒体直播项目,期间踩过很多坑,刚开始是用的nginx-rtmp作为流媒体转发服务器,但是效果并不尽人意,推拉流不稳定,特别是拉流,速度特别慢,平均要十多秒才能拉到流,并且交互并不是那么友好,比如说刚断开再立即拉流的话,很难拉到流,还有就是播放延时的问题,最少延时5秒,后面使用了srs来做,效果就好很多了,不仅解决了nginx-rtmp的不友好操作,也提升了性能和效率,延时也降低了,最低的时候延时1秒不到,不同的播放器有会有所差别,目前用过ffplay ,potplayer ,vlc分别测试过,ffplay的延时会比较高,potplayer和vlc播放延时比较低,平均在1.5秒左右。
选择SRS的理由也非常简单,SRS是国内的大牛开发的,虽然只能部署在linux平台,但部署的方式非常简单,不懂的小白只要看教程也可以直接上手,目前我部署过deepin和centos,都能正常运行,且操作方式一样,同时SRS的文档非常齐全,特别是wiki里面的各种说明,基本可以满足基础的需要,当然,srs还有很多优点,可以自行百度搜索了解一下。
OK,言归正传,下面开始部署:
SRS的部署不建议直接用git命令下载安装,文件组件会缺少,最好是到https://github.com/winlinvip/simple-rtmp-server下载zip压缩包,里面有完整的压缩包组件,我下载的是srs-3.0release.zip版本,。
一、 如果你是通过CRT远程连接到你的Linux服务器的,需要先把文件压缩包上传到服务器,也可以用xshell管理,xshell的我没用过,可以自行百度怎么上传。
我下载的是srs-3.0release.zip版本,接下来是通过先远程登录Linux系统,我是通过CRT的sftp上传到服务器的,过程如下:
1.远程登录linux系统
2.按alt+p启动sftp服务
3.输入put+路径上传文件(例:put E:srs-3.0release.zip)
4.在linux界面输入ls看一下是否上传成功
二、部署SRS
1.执行ls命令,查看文件是否在当前目录
2.执行解压命令:unzip ses-3.0.zip,解压srs-3.0.zip(ps:我为了方便,把文件名的release给去掉了),如果执行报错command not found,可能是unzip没安装,执行一下yum install -y zip unzip命令,安装一下zip和unzip就可以了。
3.执行ls命令,查看是否解压完成
4.执行cd srs-3.0release/trunk ,进入srs文件夹
5.执行./configure && make命令,编译文件
6.执行./objs/srs -c conf/srs.conf 启动srs服务
7.执行ps -ef | grep srs查看服务是否启动成功
8.到此srs安装已经完成,还需要安装ffmpeg服务,输入cd 3rdparty进入第三方组件包,可以看到srs自带了很多第三方插件
9.我们主要安装ffmpeg,如果你的Linux系统还没安装yasm的话,需要先安装yasm,srs也自带了,直接解压即可,我这里自带的是yasm-1.2.0.zip
10.安装yasm,输入unzip yasm-1.2.0.zip,解压
11.输入ls查看当前目录文件,输入cd yasm-1.2.0进入yasm文件夹
12.输入./configure编译yasm
13.输入make && make install安装yasm,安装完成即可。
14.输入cd .. 返回上一层目录
15.开始安装ffmpeg,我这里安装的是ffmpeg-4.1
16.输入unzip ffmpeg-4.1.zip解压文件
17.输入cd ffmpeg-4.1进入解压后ffmepg的文件目录
18.安装ffmpeg之前,需要先取得root权限,直接输入:su 在输入密码即可取得root权限。
19.输入./configure命令
20.输入:make && make install 开始安装ffmpeg
到这里,基本就全部安装完毕了。直接启动服务即可,推流的时候往linux直接推流即可,如:rtmp://srs服务器IP地址:1935/live/xxx,然后客户端再拉流就可以了