這段時間一直在搞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,然后客戶端再拉流就可以了