RTCPeerConnections

时间:2017-08-04 22:50:04

标签: javascript performance google-chrome webrtc

我有以下设置:

enter image description here

我们的想法是计算机A 使用getUserMedia从 Cam 1 捕获单个本地MediaStream。然后在本地创建两个RTCPeerConnections - R5Outbound R6Outbound 。计算机B和计算机C都创建自己的入站RTCPeerConnections以捕获此流。

我注意到计算机A - 带有i7 CPU - 运行正常,并且在达到95%+ CPU后偶尔会使用以下设置崩溃我的Chrome(60)实例。

经过一番阅读后,我开始认为我在这里创建了太多的RTCPeerConnection实例;虽然在某些情况下源自单个设备的多个流,但我对如何正确创建和管理RTCPeerConnections感到有些困惑。我的问题是 - 鉴于上述拓扑结构以及所有计算机都需要查看所有流的要求(尽管某些计算机可能没有要共享的流),应该创建什么RTCPeerConnections?

我应该注意到现在需要网格;业务限制使我们急切但无法使用MCUSFU架构。

问题的一些答案:

  

计算机A有多少RAM和磁盘空间?

16GB /> 1TB SSD。

  

为什么计算机A需要两个出站流?两个出站流的目的是什么?

计算机A附有两个摄像头。每个摄像头捕获一个流。然后,每个流与其他计算机共享。

  

您是否克隆原始流以为R5Outbound和R6Outbound提供MediaStream?

R5.OR6.O都使用相同的MediaStream实例(我说80%有信心 - 需要检查我的代码并回发)。

1 个答案:

答案 0 :(得分:1)

对于网状网络,您有正确的想法。您遇到的问题是跨对等连接传输MediaStream是一项昂贵的操作。在网状网络中,对于每个对等连接,您将上传MediaStream并下载MediaStream。您可以使用所有客户端与之通信的中间服务器对此进行优化(而不是直接相互通信)。以下是有关内容的更多信息的视频:https://vimeo.com/198382135