我正在使用 kurento 将流记录到服务器磁盘。我在这里跟随了kurento 教程的更改, 其中 node.js 中的教程 hello-world 被更改为将流记录到磁盘。现在我要做的是更改tutorial4一对一调用,将调用者和被调用者流记录为2个文件。
据我了解, kurento 录音机与管道相连。管道是 2 个对等点之间连接的表示。如何记录管道中单个对等点的流,分别流调用者之一和被调用者之一?
我尝试了很多,但找不到解决方案。
我正在使用 kurento 将流记录到服务器磁盘。我在这里跟随了kurento 教程的更改, 其中 node.js 中的教程 hello-world 被更改为将流记录到磁盘。现在我要做的是更改tutorial4一对一调用,将调用者和被调用者流记录为2个文件。
据我了解, kurento 录音机与管道相连。管道是 2 个对等点之间连接的表示。如何记录管道中单个对等点的流,分别流调用者之一和被调用者之一?
我尝试了很多,但找不到解决方案。
也许您应该阅读基本的Kurento 文档,介绍什么是媒体元素以及什么是管道,以便更清晰地了解 Kurento 的 API 工作原理。
对于您的具体问题,RecorerEndpoint 只是能够将流作为输入提供的文件记录到文件的媒体元素。这意味着您可以将 RecorderEndpoint 连接到任何其他源元素。例如,如果您在两个对等点之间进行 B2B 调用,则每个对等点都将关联一个 WebRtcEndpoint,因此生成的管道将如下所示:
Peer A <--------->webRtcEndpointA<==>webRtcEndpointB<---------->Peer B
要记录来自 Peer A 和 Peer B 的流,您只需要创建两个 RecorderEndpoints 并适当地连接它们,以便最终管道类似于:
------>recorderEndpointA
|
Peer A <--------->webRtcEndpointA<==>webRtcEndpointB<---------->Peer B
|
--->recorderEndpointB
源代码应包括(我省略了您引用的教程中已有的样板代码):
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();