SRS是一款國產的開源實時影片伺服器,支援RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH和GB28181等流媒體協議。SRS媒體伺服器和FFmpeg、OBS、VLC、WebRTC等客戶端配合使用,提供音影片流的接收和分發的能力,是一個典型的釋出(推流)和訂閱(播放)伺服器模型。SRS支援網際網路廣泛應用的音影片協議轉換,比如可以將RTMP或SRT,轉成HLS或HTTP-FLV或WebRTC等協議。
透過結合FFmpeg與SRS,可以很方便地測試音影片的推拉流。接下來以華為的尤拉系統為執行環境,介紹如何編譯、安裝、除錯SRS,詳細的操作步驟說明如下。
一、編譯安裝SRS
1、登入Linux伺服器(比如華為雲的尤拉系統),執行下列命令安裝SRS的依賴包。
2、執行下面命令從gitee下載SRS的原始碼。
3、進入SRS的主幹原始碼目錄,執行下面命令配置SRS。
4、執行下面命令編譯SRS。
命令執行完畢,SRS的可執行程式srs就在srs/trunk/obj目錄下生成。
二、編譯安裝FFmpeg
在Linux系統編譯安裝FFmpeg的詳細步驟參見《FFmpeg開發實戰:從零基礎到短影片上線》一書的“1.2 Linux系統安裝FFmpeg”,這裡不再贅述。
三、啟動SRS
1、進入SRS的主幹配置目錄,也就是執行下面命令:
2、開啟配置檔案srs.conf,在vhost __defaultVhost__裡面補充以下一行配置:
以上配置表示開啟快取關鍵幀,一定要設定為on,否則客戶端拉流找不到關鍵幀就無法渲染畫面。
修改完畢,儲存並退出srs.conf。
3、執行下面命令,啟動SRS服務。
4、檢查伺服器是否開啟了下列埠:
1935埠,用於rtmp協議,訪問“rtmp://”開頭的直播地址需要。
8080埠,用於http協議,訪問“http://”開頭的直播地址需要。
四、檢查SRS的影片推拉流
1、執行以下命令,將本地影片透過RTMP協議推流給SRS。
注意:SRS不支援RTSP推流,只支援RTMP推流。
2、開啟VLC播放器,依次選擇選單“媒體”→“開啟網路串流”,在網路URL框中輸入下列任一地址,觀看能否正常播放影片畫面。
注意需要把上述地址中的“124.***.***.***”替換為流媒體伺服器實際的公網地址。
更多詳細的FFmpeg開發知識參見