我有以下设置:
其思想是计算机A使用getUserMedia从Cam 1中捕获单个本地MediaStream。然后在本地创建两个RTCPeerConnections -- R5Outbound和R6Outbound。计算机B和计算机C都创建自己的入站RTCPeerConnections来捕获此流。
我注意到,计算机A-与i7 CPU -正在运行热,偶尔崩溃我的Chrome (60)的实例与下面的设置后,击中95%+ CPU。
读了一些书之后,我开始认为我在这里创建了太多的RTCPeerConnection实例;虽然在某些情况下,多个流来自于一个设备,但我对如何正确创建和管理RTCPeerConnections感到有点困惑。我的问题是--考虑到上面的拓扑结构和所有计算机都需要查看所有流的要求(尽管有些计算机可能没有一个可以共享的流),应该创建什么RTCPeerConnections呢?
我应该指出,mesh目前是必需的;业务约束使我们渴望使用MCU
或SFU
体系结构,但无法使用。
对问题的一些答复:
A计算机有多少内存和磁盘空间?
16 1TB/ >1TB SSD。
为什么计算机A需要两个出站流?两个出站流的目的是什么?
电脑A有两个摄像头。每台摄像机拍摄一条流。然后,每个流与另一台计算机共享。
您是否克隆原始流来为MediaStream和R5Outbound提供R6Outbound?
R5.O
和R6.O
都使用相同的MediaStream实例(我说有80%的置信度--需要检查代码并回发)。
发布于 2017-08-04 23:07:28
对于网状网络,你有正确的想法。您所遇到的问题是,在对等连接之间传输MediaStreams是一项昂贵的操作。在mesh网络中,对于您所做的每一个对等连接,您都在上传MediaStream并下载MediaStream。您可以使用所有客户端都与之交谈的中间服务器(而不是直接相互交谈)来优化这一点。下面是一段视频,以获取更多关于该外观的信息:https://vimeo.com/198382135
https://stackoverflow.com/questions/45516504
复制相似问题