2017-08-04 53 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