2017-08-04 51 views
4

我有以下设置:CPU使用率过高与RTCPeerConnections

enter image description here

的想法是,计算机A凸轮1使用getUserMedia捕获单个本地MediaStream。然后在本地创建两个RTCPeerConnections - R5OutboundR6Outbound。计算机B和计算机C都创建自己的入站RTCPeerConnections来捕获此流。

我注意到,计算机A - 与i7 CPU - 运行热,偶尔会撞击我的实例铬(60)与下面的设置达到95%+ CPU后。

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

我应该注意,目前需要网格;业务限制让我们迫切但无法使用MCUSFU体系结构。

一些问题的答案:

内存和磁盘空间有多少是可以在计算机A?

16GB /> 1TB SSD。

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

计算机A有两个相机连接。捕获每台摄像机一个流。每个流然后与其他计算机共享。

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

两个R5.OR6.O使用相同的MediaStream实例(我说的是80%的置信度 - 需要检查自己的代码和后背部)。

+0

您可以包含一个[如何创建最小,完整和可验证的示例](https://stackoverflow.com/help/mcve)代码在问题中重现问题? – guest271314

回答

1

对于网状网络,你有正确的想法。您遇到的问题是跨对等连接传输MediaStream是一项昂贵的操作。在网状网络中,对于每个对等连接,您都会上传MediaStream并下载MediaStream。您可以使用所有客户端与之通话的中介服务器来优化此服务(而不是直接与对方通话)。这里是视频,了解更多信息:https://vimeo.com/198382135