kurento的源碼倉庫

小程在介紹kurento試用時,有提到kurento的簡單結構與交互,大概是這樣的: 

html

若是側重考慮端口,而且把clinet簡化爲web,則是這樣的: 
java

除告終構與交互,上一節小程還介紹了KMS的安裝、APPServer的下載編譯、client的設置,並把整個結構運行起來,可是,一直沒有說起kurento的源碼。至於,在APPserver下載編譯時,有git clone到一些代碼,好比這個截圖: 
git

但這三個目錄,主要是APPServer的示例代碼(demo,一些helloworld的例子),包括java跟js的例子,能夠編譯後運行起來,充當APP的服務器,與KMS或client交互。github

這些示例代碼,並非kurento的源碼。web

在介紹怎麼安裝kurento媒體服務(即KMS)時,是這樣安裝的:json

sudo apt-get install kurento-media-server服務器

並無下載KMS的源碼來編譯安裝,因此,kurento的源碼一直都沒有出現過。微信

本文介紹kurento的源碼倉庫,並簡單說起KMS與client的下載與編譯。websocket

若是讀者有使用開源項目就會知道,clone到源碼再編譯出執行程序或庫文件,是常常使用的辦法,好比對FFmpeg的使用就是這樣。app

kurento是一個開源項目,也能夠clone或下載到源碼,倉庫所在地址是: 
https://github.com/Kurento

頁面是這樣的: 

能夠看到,kurento項目有近百個倉庫,其中有一些對於通常的開發讀者是關鍵的倉庫,小程會一一介紹。另外,讀者也能夠參考這個文檔,它詳細介紹了kurento的倉庫狀況:http://doc-kurento.readthedocs.io/en/stable/dev/dev_guide.html

再來看一下KMS與其client的結構圖: 

注意,相對於KMS來講,APPServer就是一個Client。對於文檔中提到的client,讀者應該聯繫上下文,client有多是web端或手機設備端,也有多是APPServer(相對於KMS就是client)。

KMS內的kms-core、kms-elements與kms-filters,都有相應的倉庫,而客戶端對應的倉庫是kurento-java。

對於KMS來講,並非把kms-core、kms-elements跟kms-filters倉庫下載下來就能夠編譯出KMS可執行程序的,由於,除了這三個倉庫,還有其它倉庫須要使用到,並且,須要把這些倉庫組合起來,最終編譯成可執行程序。

先來看下KMS有哪些主要的倉庫,參考kurento的文檔截圖: 

爲了方便完成KMS的編譯,讀者應該使用這個倉庫:kms-omni-build。

kms-omni-build是用於編譯的倉庫,它把KMS的主要倉庫看成子模塊。能夠這樣clone到kms-omni-build:

git clone –recursive https://github.com/Kurento/kms-omni-build.git

此時能夠看到kms-omni-build的目錄結構: 

其中除了KMS的主要模塊,還有一個模塊叫kurento-module-creator,這是KMS編譯時須要的模塊,參考這個截圖: 

kurento-module-creator用來生成代碼,具體來講,KMS跟client的交互是「服務接口層」與「客戶端接口層」的交互(使用websocket,按照kurento協議,讀者能夠參考上面的KMS與client的結構圖),而「服務接口層」與「客戶端接口層」的代碼(或者其它用於對接插件的代碼),是由kurento-module-creator來生成的。

對於KMS的編譯,先用kurento-module-creator生成交互層的代碼,而後再進到編譯的環節。

一樣,kurento-module-creator也生成了client的代碼。至於,KMS與client的交互層是怎麼調用的,也就是jsonrpc(遠程過程調用)的實現原理,就不是本次的內容了。


總結一下,本文簡單介紹了kurento的源碼倉庫,以及編譯時需注意的一些要點。


本文分享自微信公衆號 - 廣州小程(gzxc2018)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索