2014-12-23 83 views
2

我使用kurento錄製的視頻流服務器磁盤被叫流。我遵循kurento tutorial here 的更改,其中node.js中的教程hello-world更改爲將流記錄到磁盤。 現在我想要做的是更改tutorial4 one-to-one call以將來電者和被叫者流記錄爲2個文件。Kurento記錄呼叫者和node.js中

當我將kurento記錄下來時,記錄器與管道相連。管道是兩個對等體之間連接的表示。 如何在管道中記錄單個對等體的流,這兩個流分別都是來自哪個調用者和被調用者之一?

我試了很多,但找不到溶劑。

回答

11

也許你應該閱讀基本Kurento documentation介紹什麼是媒體元素和什麼是管道,以更清晰地瞭解Kurento的API如何工作。

對於您的具體問題,RecorerEndpoint只是媒體元素,能夠將文件流作爲輸入提供給文件。這意味着您可以將RecorderEndpoint連接到任何其他源元素。舉例來說,如果你有兩個同齡人之間的B2B呼叫,每個節點都將有相關的WebRtcEndpoint使得所得到的管道將是這樣的:

Peer A <--------->webRtcEndpointA<==>webRtcEndpointB<---------->Peer B 

用於記錄從節點A和同伴B都來的流,你只需要創建兩個RecorderEndpoints並適當地連接起來,使最終的管道是一樣的東西:

       ------>recorderEndpointA 
          | 
Peer A <--------->webRtcEndpointA<==>webRtcEndpointB<---------->Peer B 
             | 
             --->recorderEndpointB 

這個源代碼應包括:(我ommit樣板代碼,你已經在你舉教程):

pipeline.create('RecorderEndpoint', {uri: "file:///tmp/fileA.webm"}, function(error, recorderEndpointA ... 
... 
webRtcEndpointA.connect(recorderEndpointA); 
recorderEndpointA.record(); 

pipeline.create('RecorderEndpoint', {uri: "file:///tmp/fileB.webm"}, function(error, recoderEndpointB ... 
... 
webRtcEndpointB.connect(recorderEndpointB); 
recorderEndpointB.record();