2014-12-23 3 views
2

Я использую kurento для записи потока на сервер-диск. Я последовал за изменением kurento tutorial here , где был изменен справочный hello-world в node.js для записи потока на диск. Теперь то, что я хочу сделать, это изменить tutorial4 one-to-one call, чтобы записать вызывающего и поток вызываемого потока в 2 файла.Kurento запись звонящего и поток вызова в node.js

Как я понял, куренто записывается на трубопровод. Конвейер представляет собой соединение между двумя одноранговыми узлами. Как я могу записать поток одного однорангового узла в конвейер, соответственно, оба потока - один из вызывающего и один вызывающий?

Я пробовал много, но не смог найти разрешение.

ответ

11

Возможно, вам стоит ознакомиться с базовым Kurento documentation, представляющим, что такое элемент мультимедиа, и что такое конвейер, чтобы иметь более четкое представление о том, как работает API Kurento.

Для конкретного вопроса RecorerEndpoint представляет собой только элемент мультимедиа, способный записывать в файл поток, предлагаемый в качестве его ввода. Это означает, что вы можете подключить RecorderEndpoint к любому другому исходному элементу. Например, если у вас есть B2B вызов между двумя узлами, каждый узел не связали WebRtcEndpoint так, что в результате трубопровод будет что-то вроде этого:

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

Для записи потоков, поступающих из обоих Peer A и Peer 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();