WebRTC gibt gelegentlich einen schwarzen Bildschirm aus

8

Ich erstelle einen Multi-User-Video-Chat mit webRTC. Aber ich habe ein Problem mit RTCPeerConnection

festgestellt

Manchmal habe ich Chats mit 7 Usern, wo jeder die Videos der anderen Leute sieht aber manchmal bekomme ich einen schwarzen Bildschirm von einem Benutzer.

Sonderbare Sache ist, dass es völlig zufällig ist, manchmal funktioniert alles. manchmal hat ein Benutzer einen schwarzen Bildschirm. Wenn dieser Benutzer sich erneut anmelden würde, wären andere Bildschirme schwarz oder alles würde funktionieren.

Ich habe meinen Ablauf überprüft, wie Peerconnection funktioniert und hier funktioniert es für mich:

Der Benutzer, der die Peerverbindung startet:

  • kenneth: Peerconnection erstellt main.js: 275
  • kenneth: Listener für Remote-Stream hinzugefügt main.js: 280
  • kenneth: listener remote stream entfernt hinzugefügt main.js: 285
  • kenneth: lokaler Stream wurde zu peerconnection main.js: 264
  • hinzugefügt
  • kenneth: Angebot erstellt main.js: 293
  • kenneth: Angebot gesendet main.js: 315
  • kenneth: Antwort erhalten main.js: 205
  • kenneth: Listener hinzugefügt, um lokale ICE-Kandidaten zu senden main.js: 210
  • kenneth: Entfernte Beschreibung von Antwort main.js: 215
  • gesetzt
  • kenneth: Remote-Stream hinzugefügt main.js: 366
  • kenneth: remote ICE empfangen main.js: 218
  • kenneth: remote ICE wurde zu Peerconnection main.js: 225
  • hinzugefügt
  • kenneth: remote ICE empfangen main.js: 218
  • kenneth: remote ICE wurde zu Peerconnection main.js: 225
  • hinzugefügt
  • kenneth: ICE-Kandidat hat main.js: 340
  • gesendet
  • kenneth: ICE-Kandidat hat main.js: 340
  • gesendet
  • kenneth: ICE-Kandidat hat main.js: 340
  • gesendet
  • kenneth: ICE-Kandidat hat main.js: 340
  • gesendet
  • kenneth: remote ICE empfangen main.js: 218
  • kenneth: remote ICE wurde zu Peerconnection main.js: 225
  • hinzugefügt
  • kenneth: remote ICE empfangen main.js: 218
  • kenneth: remote ICE wurde zu Peerconnection main.js: 225
  • hinzugefügt
  • kenneth: ICE-Kandidat hat main.js: 340
  • gesendet
  • kenneth: ICE-Kandidat hat main.js: 340
  • gesendet
  • kenneth: Ende der Kandidaten main.js: 342

Der Benutzer, der ein Angebot erhält und dann eine Antwort erstellt:

  • kennethtest1: Angebot empfangen main.js: 183
  • kennethtest1: Peerconnection erstellt main.js: 275
  • kennethtest1: Listener für Remote-Stream hinzugefügt main.js: 280
  • kennethtest1: Listener Remote Stream entfernt hinzugefügt main.js: 285
  • kennethtest1: Der Listener wurde hinzugefügt, um lokale ICE-Kandidaten main.js: 189
  • zu senden
  • kennethtest1: Entfernte Beschreibung aus dem Angebot main.js: 194
  • kennethtest1: Lokaler Stream wurde zu peerconnection main.js: 198
  • hinzugefügt
  • kennethtest1: Antwort erstellt main.js: 301
  • kennethtest1: Remote-Stream hinzugefügt main.js: 366
  • kennethtest1: Antwort Gesendet main.js: 324
  • kennethtest1: ICE-Kandidat gesendet main.js: 340
  • kennethtest1: ICE-Kandidat gesendet main.js: 340
  • kennethtest1: ICE-Kandidat gesendet main.js: 340
  • kennethtest1: ICE-Kandidat gesendet main.js: 340
  • kennethtest1: remote ICE empfangen main.js: 218
  • kennethtest1: Remote-ICE wurde zu Peerconnection main.js: 225
  • hinzugefügt
  • kennethtest1: remote ICE empfangen main.js: 218
  • kennethtest1: Remote-ICE wurde zu Peerconnection main.js: 225
  • hinzugefügt
  • kennethtest1: remote ICE empfangen main.js: 218
  • kennethtest1: Remote-ICE wurde zu Peerconnection main.js: 225
  • hinzugefügt
  • kennethtest1: remote ICE empfangen main.js: 218
  • kennethtest1: Remote-ICE wurde zu Peerconnection main.js: 225
  • hinzugefügt
  • kennethtest1: Ende der Kandidaten main.js: 342
  • kennethtest1: remote ICE empfangen main.js: 218
  • kennethtest1: Remote-ICE wurde zu Peerconnection main.js: 225
  • hinzugefügt
  • kennethtest1: remote ICE empfangen main.js: 218
  • kennethtest1: Remote-ICE wurde zu Peerconnection main.js: 225
  • hinzugefügt

Ich habe auch ausgecheckt chrom: // webrtc-internals / wo kann ich sehen, dass für die spezifische Black-Screen-Peer-Verbindung der Strom da ist aber es sendet keine Daten durch.

Hat jemand eine Idee, warum manchmal der Stream hier nicht öffnet?

    
Kenneth 16.09.2013, 15:02
quelle

1 Antwort

1

Dies wurde behoben, indem mehrere STUN-Server hinzugefügt wurden, anstatt sich nur auf einen zu verlassen. Ich habe gesehen, dass mit der Verwendung eines Google STUN-Servers gelegentlich die Anfragen nicht rechtzeitig zurückkommen, wodurch webrtc aufhört, nach einem Pfad zu suchen, der über die Medienströme gesendet werden kann.

Ich habe STUN-Server von anderen Open-Source-Anbietern hinzugefügt

    
Kenneth 28.11.2013, 15:10
quelle

Tags und Links