SRS 簡介
SRS定位是運營級的網際網路直播伺服器叢集,追求更好的概念完整性和最簡單實現的程式碼。SRS提供了豐富的接入方案將RTMP流接入SRS,
包括推送RTMP到SRS、推送RTSP/UDP/FLV到SRS、拉取流到SRS。SRS還支援將接入的RTMP流進行各種變換,譬如將RTMP流轉碼、流截圖、
多級叢集、源站叢集、VHOST虛擬伺服器、無中斷服務Reload、HTTP-FLV叢集、Kafka對接。此外,SRS還提供豐富的應用介面,包括HTTP回撥、
安全策略Security、HTTP API介面、RTMP測速。SRS在源站和CDN叢集中都得到了廣泛的應用Applications。官方說明
SRS特點
1、簡單,足夠穩定。
2、高效能,高併發,SRS是單執行緒、事件/st-執行緒驅動(實際用的是協程方案)。最大可支援6k客戶端。官網效能介紹: 效能測試
3、可以作為rtmp源伺服器,也可作為節點對接CND,從其他rtmp伺服器上推/拉流。
4、支援Vhost 及defaultVhost配置。
5、核心功能是分發RTMP,主要定位就是分發RTMP低延時流媒體,同時支援分發HLS流。
6、服務Reload 機制,即在不中斷服務時應用配置的修改。達到不中斷服務調整位元速率,新增或調整頻道。
7、cache 一個GOP ,達到播放器能快速播放的效果。(gop_cache配置項)
8、可監聽多個埠,支援長時間推拉流。
10、支援轉碼,可以對推送到SRS的RTMP流進行轉碼,然後輸出到其他RTMP伺服器。可對指定的流配置是否轉碼。內建了FFMPEG.同時會提供FFMPEG的部分功能:輸出純音訊、加文字水印、剪下影片、新增圖片LOGO等。
11、支援http回撥,提供了客戶端連線介面、關閉連線介面、流釋出、流停止、流播放、停止播放等介面,方便再封裝的應用跟蹤流資訊。內建也有一個http伺服器,可直接呼叫api介面。
12、內建流頻寬測試工具、完善的日誌跟蹤規則。
13、指令碼管理,提供init.d系統指令碼,也可透過呼叫api 控制服務狀態。
14、採集端支援:裝置、本地檔案,RTSP攝像頭、rtmp等。官方意思是,能拉任意的流,只要FFMPEG支援,不是h264/aac都沒有關係,FFMPEG能轉碼。SRS的接入方式可以是“推流到SRS”和“SRS主動拉流”。
15、支援將RTMP流錄製成flv檔案。FLV檔案的命名規則是隨機生成流名稱,上層應用可透過http-callback 管理流資訊。
16、SRS日誌很完善,支援列印到console和file,支援設定level,支援連線級別的日誌,支援可追溯日誌。
SRS部署
SRS是國產優秀流媒體伺服器,在Github上開源, 可在 Linux 機器各主流系統上部署。操作簡單。
操作及配置清晰,文件齊全,在此只附上部署Demo : SRS_SampleDemo
XX雲平臺使用SRS案例
1、XX雲平臺PGC直播管理
透過SRS 的http_callback ,XX雲的直播模組,完成對流資訊的管理。
主要功能:建立頻道、編輯頻道、跟蹤頻道資訊、轉碼模板、時移、錄製、直播加密。
2、SRS叢集
SRS叢集 : 基於SRS多節點、多層級部署, 透過srs-排程,使得不同層級只負責一項任務。達到叢集部署的效果,可橫向和縱向擴充套件。
3、基於SRS叢集的UGC直播管理