Kurento Media Server (KMS) is a multimedia server package that can be used to develop advanced video applications for WebRTC platforms
Kurento 是一個多媒體服務(wù)器氏豌,能用于開發(fā)高級視頻應(yīng)用的WebRTC平臺站蝠。
Kurento使用一個基于JSON-RPC協(xié)議開發(fā)的Kurento協(xié)議,默認支持js和java欺缘。三種典型使用場景為:
- 直接在WebRTC瀏覽器使用Kurento JavaScript SDK和KMS連接重荠。(僅推薦用于快速測試和開發(fā)箭阶,不推薦用于正式產(chǎn)品)
- 創(chuàng)建一個Java EE應(yīng)用服務(wù)器,WebRTC瀏覽器和應(yīng)用服務(wù)器交互戈鲁,應(yīng)用服務(wù)器和KMS交互仇参。
-
創(chuàng)建一個NodeJS應(yīng)用服務(wù)器,WebRTC瀏覽器和應(yīng)用服務(wù)器交互婆殿,應(yīng)用服務(wù)器和KMS交互诈乒。
Kurento設(shè)計原則:
- 媒體和應(yīng)用服務(wù)分離。
- 使用于云部署婆芦。
- 媒體流水線怕磨,增加,減少和調(diào)整處理單元來完成功能寞缝。
- 服務(wù)應(yīng)用化癌压,給外部完整的功能。
- 端到端的交互能力荆陆。
- 完整的媒體流處理能力滩届。
- 媒體處理的模塊化。
- 處理的可審計被啼,監(jiān)控帜消。
- IMS無縫整合。
- 透明的媒體代理適配層浓体。
Kurento模塊:
- 媒體處理單元和媒體流水線(Media Elements and Media Pipelines)
- 媒體單元泡挺,一個處理媒體流的功能單元。它又可以分為4種類型:
- 輸入終端(Input Endpoints)
- 過濾器(Filters)
- 分線器(Hubs)/ 集線器
- 輸出終端(Output Endpoints)
- 媒體流水線(Media Pipeline)命浴,媒體處理單元鏈娄猫,像流水線一樣處理媒體贱除。
- 媒體單元泡挺,一個處理媒體流的功能單元。它又可以分為4種類型:
- 終端(Endpoint)
- WebRTCEndpoint, 是一個輸入輸出終端,采用WebRTC技術(shù)媳溺。
- RtpEndpoint, 是一個輸入輸出終端月幌,采用RTP協(xié)議,并使用SDP協(xié)議協(xié)商媒體和建立會話悬蔽。
- HttpPostEndpoint 是一個輸入終端扯躺,采用HTTP POST接受媒體文件輸入。
- PlayerEndpoint 是一個輸入終端蝎困,從文件系統(tǒng)录语,HTTP URL或者RTSP URL接受文件播放,并且把內(nèi)容推向媒體流水線(Media Pipeline)禾乘。
- RecorderEndpoint 是一個輸入終端澎埠,記錄存儲媒體。
-
過濾器(Filters)
- ZBarFilter 檢測視頻流中的二維碼和條形碼始藕。如果檢測到失暂,就發(fā)送一個事件 CodeFoundEvent,客戶端可以監(jiān)聽此事件鳄虱。
- FaceOverlayFilter 檢測視頻流中的臉弟塞,并且可以用一個可配置的圖片替換。
- GstreamerFilter 是一個通用的過濾器拙已,能夠把一個 GStreamer 推向媒體流水線决记。
-
Hubs
- Composite 把多個視頻流合并成一個網(wǎng)格狀的單個視頻流。
- DispatcherOneToMany 單個視頻流分發(fā)倍踪。
- Dispatcher 路由視頻流系宫。