2015-07-11 39 views
11

Il problema: I miei client devono poter trasmettere la loro webcam al mio server di streaming (ad esempio il server Wowza). Sto costruendo il mio sito in PHP. Ho visitato vari siti di streaming come twitch.tv, livestream.com e ho scoperto che tutti usano software di trasmissione di terze parti come Wirecast, XSplit broadcaster, OBS ecc per trasmettere i feed della webcam al server. Poi mi sono imbattuto in siti come vLine, Opentokrtc che utilizza WebRTC per la chat video.Come streaming live con HTML5, senza Flash?

mia domanda: Quindi, la mia domanda è che, è possibile per me per inviare il flusso verso i server di trasmissione come Wowza (In modo che possano poi trasmettere il mio stream live) senza l'utilizzo di software di trasmissione solo con WebRTC? Se sì, allora come? Se, No, allora quali sono le altre alternative?

PS. Non voglio usare Flash, ActionScript qui.

+0

Questo è molto probabile ma potrebbe essere necessario modificare un server di trasmissione. Ci sono un sacco di server MCU webrtc là fuori che è possibile utilizzare come server di trasmissione WebRTC (Broadcaster è P2P per il server, quindi gli ascoltatori sono P2P al server per quel feed specifico). –

+0

potresti provare il server multimediale kurento, [Demo docs] (http://www.kurento.org/docs/current/tutorials.html#tutorial-3-webrtc-one-to-many-broadcast) [codice dimostrativo ] (https: // GitHub.com/Kurento/kurento-tutorial-node/tree/release-5.1/kurento-one2many-call) – mido

risposta

2

Fondamentalmente è necessario un server con un client WebRTC pseudo integrato. WebRTC può ottenere lo streaming ma non può avviare lo streaming fino a quando non viene configurata una PeerConnection. Si può provare a utilizzare vari server/gateway come Janus, Kurento, Licode, FreeSwitch, ecc

anche MediaStream generare da WebRTC può essere direttamente collegato a un <video> tag HTML5.

+0

Sapete come possiamo ottenere il flusso di bit effettivo del video/audio dall'oggetto MediaStream. Quindi posso provare a inviare quel flusso di bit al server, solo un pensiero però. –

+0

@ParthapratimNeog Credo che l'accesso diretto al contenuto dello streaming non sia disponibile sul client browser. Può essere una rotta molto lunga ma qualcosa di [questo] (http://stackoverflow.com/questions/13120591/webrtc-how-to-get-the-webcam-data-as-a-stream-of-data) sort potrebbe funzionare. Le immagini possono quindi essere inviate al server e sottoposte a rendering sulla visualizzazione del tag canvas del cliente. Comunque nota che il ritardo sarà considerevole in questo caso. –

2

L'utilizzo di WebRTC per un tale caso di utilizzo comporta un elevato costo di elaborazione sul lato server ed è una tecnica piuttosto nuova, il che significa che dovresti utilizzarlo se sai cosa stai facendo.

Il mio suggerimento sarebbe quello di attenersi a Flash o MPEG-DASH invece - a meno che ciò che è necessario deve avere una latenza molto bassa ad esso e si sta bene pagando per esso scale di soluzione più piccole.

+1

Qual è la causa dei maggiori costi di elaborazione? Un MCU decente si preoccuperebbe solo di restamping dei pacchetti di controllo e quindi di ricodificare l'RTP. Il costo è molto più alto di Flash (nota che non ho esperienza/conoscenza di Flash, solo curioso di sapere come ha costi più bassi)? –

+1

Flash non verrà ritirato in pochi anni? Per questo motivo non desidero imparare ActionScript, che sarà completamente inutilizzabile quando Flash sarà completamente deprecato. Ho fatto un po 'di ricerca e sviluppo su Kurento e sugli altri server suggeriti da Benjamin e Obscure Geek. È davvero difficile trovare dei buoni materiali di apprendimento su WebRTC per un principiante come me. –

+0

Flash sta andando verso il dodo - solo una questione di tempo. Per lo streaming, la sua sostituzione principale è MPEG-DASH e iOS HLS. WebRTC non è progettato per lo streaming anche se può essere utilizzato per questo. La sua natura bidirezionale e il modo in cui si adatta alla rete sono le cose che lo rendono inadatto "così com'è" per tali attività. –

1

meno che non mi fraintendere, penso che stai cercando per lo streaming video al server (per la distribuzione utilizzando "normali" meccanismi di live-streaming), non utilizzando WebRTC per lo streaming video dal server.

In tal caso, WebRTC funzionerà, sebbene sia necessaria un'implementazione lato server di un set abbastanza completo del protocollo WebRTC che includa la decodifica video. Questi esistono, ma non in PHP, naturalmente, naturalmente. Questo potrebbe gestire l'acquisizione di audio e video in tempo reale da un client, senza la necessità di un plug-in sul client, compreso l'adattamento della larghezza di banda e la correzione degli errori.

Una volta che i dati sono stati decodificati sul server, si dispone di un flusso di dati video + audio che è possibile alimentare agli encoder in streaming live per lo streaming.

1

Wowza supporta ciò di cui si ha bisogno per diventare l'altro peer nel proprio scenario WebRTC. Da lì è possibile ridistribuire lo streaming in qualsiasi modo i server multimediali in genere lo fanno.

Questa funzione è ancora in modalità "Anteprima" e presenta alcune limitazioni, ma funziona per la maggior parte dei casi. È possibile richiedere l'accesso a questo tramite https://www.wowza.com/products/capabilities/webrtc-streaming-software