2015-07-11 10 views
11

Das Problem: Ich brauche meine Clients, um ihre Webcam zu meinem Streaming-Server (zum Beispiel Wowza-Server) zu streamen. Ich baue meine Seite in PHP. Ich habe verschiedene Streaming-Sites wie twitch.tv, livestream.com durchlaufen und festgestellt, dass sie alle Drittanbieter-Broadcasting-Software wie Wirecast, XSplit Broadcaster, OBS usw. verwenden, um die Webcam-Feeds auf den Server zu streamen. Dann stieß ich auf Websites wie vLine, Opentokrtc, die WebRTC für Video-Chat verwendet.Wie Live Stream mit HTML5, ohne Flash?

Meine Frage: Also, meine Frage ist, dass, ist es mir möglich, den Strom zu den Rundfunkserver wie Wowza zu senden (so dass sie dann kann meinen Live-Stream ausgestrahlt) ohne WebRTC mit nur Rundfunk-Software zu verwenden? Wenn ja, wie? Wenn, Nein, was sind die anderen Alternativen?

PS. Ich möchte Flash, ActionScript hier nicht verwenden.

+0

anfordern Dies ist sehr möglich, aber Sie müssen möglicherweise einen Broadcasting-Server ändern. Es gibt viele webrtc-MCU-Server, die Sie als WebRTC-Broadcasting-Server verwenden können (Broadcaster ist P2P zum Server, dann sind Listener P2P zum Server für diesen spezifischen Feed). –

+0

Sie können Kurento Medienserver versuchen, [Demo-Dokumente] (http://www.kurento.org/docs/current/tutorials.html#tutorial-3-webrtc-one-to-many-broadcast) [Demo-Code ] (https: // github.com/Kurento/kurento-tutorial-node/baum/release-5.1/kurento-one2many-call) – mido

Antwort

2

Sie benötigen grundsätzlich einen Server, in den ein Pseudo-WebRTC-Client integriert ist. WebRTC kann den Stream abrufen, kann jedoch nicht mit dem Streaming beginnen, bis eine PeerConnection eingerichtet wurde. Sie können versuchen, verschiedene Server/Gateways wie Janus verwenden, Kurento, Licode, FreeSwitch usw.

Auch kann Mediastream erzeugen durch WebRTC direkt mit einem HTML5 <video> Tag angebracht werden.

+0

Wissen Sie, wie wir den tatsächlichen Bitstream des Video/Audio aus dem MediaStream-Objekt erhalten können. Dann kann ich versuchen, diesen Bitstrom an den Server zu senden, nur ein Gedanke. –

+0

@ParthapratimNeog Ich glaube, dass direkter Zugriff auf den Stream-Inhalt auf dem Browser-Client nicht verfügbar ist. Kann eine sehr lange Route sein, aber etwas [http://stackoverflow.com/questions/13120591/webrtc-how-to-get-the-webcam-data-as-a-stream-of-data] sortieren könnte funktionieren. Die Bilder können dann an den Server gesendet und auf dem Canvas-Tag des Clients angezeigt werden. Beachten Sie jedoch, dass die Verzögerung in diesem Fall erheblich ist. –

2

Die Verwendung von WebRTC für einen solchen Anwendungsfall verursacht auf der Serverseite hohe Rechenkosten und ist eine ziemlich neue Technik, was bedeutet, dass Sie sie verwenden sollten, wenn Sie wissen, was Sie tun.

Mein Vorschlag wäre, stattdessen Flash oder MPEG-DASH zu bleiben - es sei denn, was Sie brauchen, muss eine sehr geringe Latenz haben und Sie sind in Ordnung mit kleineren Lösungsmaßstäben dafür zu bezahlen.

+1

Was verursacht die höheren Rechenkosten? Eine vernünftige MCU würde sich nur darum kümmern, die Steuerpakete erneut zu verschieben und dann das RTP erneut zu verschlüsseln. Ist der Preis DAS viel höher als bei Flash (beachte ich habe keine Erfahrung/Kenntnisse über Flash, nur neugierig wie es geringere Kosten hat)? –

+1

Wird Flash in ein paar Jahren nicht mehr veraltet sein? Aus diesem Grund möchte ich ActionScript nicht lernen, was eine völlige Verschwendung sein wird, wenn Flash komplett veraltet wird. Ich habe einige Forschungs- und Entwicklungsaktivitäten auf Kurento und den anderen Servern durchgeführt, die @ Benjamin und Obscure Geek vorgeschlagen haben. Es ist wirklich schwer für einen Anfänger wie mich, auf WebRTC einige gute Lernmaterialien zu finden. –

+0

Flash geht den Weg des Dodos - nur eine Frage der Zeit. Für Streaming ist MPEG-DASH und für iOS HLS der Hauptersatz. WebRTC ist nicht für Streaming geeignet, obwohl es dafür verwendet werden kann. Sein bidirektionaler Charakter und die Art und Weise, wie er sich an das Netzwerk anpasst, sind die Dinge, die es für solche Aktivitäten "wie es ist" ungeeignet machen. –

1

Wenn ich nicht falsch verstehen, ich glaube, Sie suchen Video zu streamen Server (zur Verteilung von „normalen“ Live-Streaming-Mechanismen), nicht WebRTC Video zu streamen der Server von verwenden.

Wenn ja, funktioniert WebRTC, obwohl Sie eine serverseitige Implementierung eines ziemlich vollständigen Satzes des WebRTC-Protokolls einschließlich Videodekodierung benötigen. Diese existieren, aber natürlich nicht direkt in PHP. Dies würde Echtzeit-Audio und Video von einem Client verarbeiten, ohne ein Plugin auf dem Client zu benötigen, einschließlich Bandbreitenanpassung und Fehlerkorrektur.

Sobald die Daten auf dem Server decodiert sind, haben Sie einen Video + Audio-Datenstrom, den Sie Ihren Live-Streaming-Encodern zum Streamen zuführen können.

1

Wowza unterstützt, was Sie benötigen, um der andere Peer in Ihrem WebRTC-Szenario zu werden. Von dort aus können Sie den Stream in der für Medienserver typischen Weise neu verteilen.

Diese Funktion befindet sich noch im "Vorschau" -Modus und hat einige Einschränkungen, funktioniert aber in den meisten Fällen. Sie können Zugriff auf diese über https://www.wowza.com/products/capabilities/webrtc-streaming-software