je la configuration suivante:utilisation élevée du processeur avec RTCPeerConnections
L'idée est que l'ordinateur A capture une seule MediaStream locale de Cam 1 en utilisant getUserMedia. Deux RTCPeerConnections sont ensuite créées localement - R5Outbound et R6Outbound. L'ordinateur B et l'ordinateur C créent leur propre RTCPeerConnections entrantes pour capturer ce flux. Je remarque que l'ordinateur A - avec un processeur i7 - est très chaud et bloque occasionnellement mon instance de Chrome (60) avec la configuration ci-dessous après avoir atteint 95% + CPU. Après quelques lectures, je commence à penser que je crée trop d'instances de RTCPeerConnection ici; Cependant, avec plusieurs flux provenant d'un seul périphérique dans certains cas, je suis un peu confus sur la façon de créer et de gérer correctement mes RTCPeerConnections. Ma question est - étant donné la topologie ci-dessus et l'exigence que tous les ordinateurs ont besoin de voir tous les flux (bien que certains ordinateurs puissent ne pas avoir de flux à partager), quel RTCPeerConnections devrait être créé?
Je devrais noter que le maillage est nécessaire pour l'instant; contraintes d'affaires nous avons hâte, mais incapable d'utiliser une architecture MCU
ou SFU
.
Quelques réponses aux questions:
Combien de RAM et d'espace disque est disponible sur l'ordinateur A?
16 Go /> 1 To SSD.
Pourquoi deux flux sortants sont-ils nécessaires sur l'ordinateur A? Quel est le but de deux flux sortants?
Ordinateur A est équipé de deux caméras. Un flux par caméra est capturé. Chaque flux est ensuite partagé avec chaque autre ordinateur.
Copiez-vous le flux d'origine pour fournir MediaStream pour R5Outbound et R6Outbound?
Les deux R5.O
et R6.O
utilisent la même instance MediaStream (je le dis avec confiance de 80% - besoin de vérifier mon code et republier).
Pouvez-vous inclure un [Comment créer un exemple minimal, complet et vérifiable] (https://stackoverflow.com/help/mcve) de code à reproduire le problème à la question? – guest271314