2013-07-09 16 views
8

Ich muss Screen Sharing mit WebRTC zu implementieren. Ich weiß, dass WebRTC das Teilen von Tab-Inhalten unterstützt, aber ich muss den gesamten Bildschirm teilen. Eine Lösung, an die ich denke, ist es, häufig Screenshots zu machen und den WebRTC-Datenkanal zu verwenden, um das Bild an andere Teilnehmer zu übertragen. Die andere Partei aktualisiert dann das Bild jedes Mal, wenn ein neues Bild empfangen wird.Bildschirmfreigabe unter Verwendung von WebRTC

Ist dies möglich? Besonders frage ich mich, ob es möglich ist, Bilder mit dem WebRTC-Datenkanal zu übertragen?

Vielen Dank im Voraus.

+0

Sie könnten ein Bild über den DataChannel übertragen, aber das größere Problem wird darin bestehen, den Bildschirm aus der JavaScript-Sandbox zu erfassen. Ich vermute, das ist ohne eine Art Browser-Erweiterung einfach nicht möglich. – Makkes

Antwort

7

Bildschirmfreigabe ist über eine experimentelle getUserMedia Einschränkung in Chrome (not yet available in Firefox) verfügbar.

Sie müssen zunächst das Flag Enable screen capture support in getUserMedia() in chrome://flags aktivieren.

Es gibt ein schönes Beispiel, wie Sie den Bildschirm hier erfassen: https://html5-demos.appspot.com/static/getusermedia/screenshare.html.

+1

Danke, gutes Beispiel. Aber wenn ich den HTML-Inhalt in meine lokale HTML-Datei kopiere, funktioniert es nicht. Scheint, ich muss HTTPS Server installieren. – mkd156

+0

Es scheint nicht mehr so ​​zu sein: https://groups.google.com/forum/#!topic/discuss-webrtc/TPQVKZnsF5g – Max

+1

Die Option "Bildschirmaufnahmeunterstützung aktivieren" wurde aus Chrome entfernt – RezaRahmati

9

getUserMedia unterstützt das ScreenSharing des gesamten Bildschirms, nicht nur den Tab-Inhalt.

Ich habe eine Bildschirmaufnahme-Demo gemacht (unter Verwendung der obligatorischen Einschränkung chromeMediaSource: 'screen'), die den Stream in eine RTCPeerConnection pipettiert: https://simpl.info/screencapture.

Die chrome.tabCapture-API erhält Tab-Inhalt, aber das ist natürlich nicht das, was Sie wollen: Beispiel here (obwohl der Code jetzt gebrochen ist).

EDIT: HTTPS Links hinzugefügt: Dies ist für screencapture erforderlich.

+0

Danke für die Antwort. getUserMedia ist wirklich was ich brauche. Aber um es lokal zu testen, muss ich vielleicht einen HTTPS-Server installieren? – mkd156

+0

Ja: Sie müssen HTTPS lokal haben –

+1

Ist es möglich, 60FPS mit dieser Methode zu erhalten? Ich habe es versucht, scheint aber alles andere als ideal zu sein. – wonglik

Verwandte Themen