2015-05-21 13 views
7

Quindi sto provando a riprodurre stream HLS su HTML5 senza utilizzare Flash. Abbiamo provato molti lettori video ma tutti si riferiscono a un lettore flash. La mia domanda, è possibile riprodurre flussi HLS (qualsiasi) su HTML5 senza usare Flash?Riproduci HLS con HTML5

(So della https://github.com/RReverser/mpegts ma non funziona sul cellulare ed è abbastanza lag.)

risposta

5

HLS non è supportato da tutti i browser. Uso un jwPlayer che supporta sia lo streaming Flash che HTML5 (se disponibile). Il supporto per lo streaming HLS purtroppo deve ancora fare affidamento su Flash per funzionare correttamente su vari browser. Vedi supporto browser HTML5 HLS: http://www.jwplayer.com/html5/hls/

+1

Ma è in alcun modo possibile sostenerlo? Come rimuovere lo stream in JavaScript e riprodurre il video h264? – Dallox

+0

RReverser ha un'implementazione interessante, ma fare la conversione in JavaScript sarebbe pesante sul browser (da qui il ritardo sul cellulare). Non credo che la tua soluzione debba basarsi su JavaScript per eseguire il sollevamento pesante. Molti siti utilizzano motori di streaming in grado di fornire una serie di formati (hls, rtmp, mpeg-dash) per coprire quanti più browser nativamente utilizzano HTML5 possibile. Poi passano al flash come fallback. Quindi, per rispondere alla tua domanda, è possibile. Ma penso che non ne valga la pena. – Sixthpoint

+0

beh questo sarà un progetto opensource, quindi penso che valga sicuramente la pena anche per altre persone. Relaying sul server per fare il lavoro non è una soluzione per noi, quindi suppongo che dobbiamo andare con la conversione .. – Dallox

5

Non esiste un lettore HLS HTML5 open source stabile e affidabile AFAIK. Tuttavia ci sono due offerte commerciali:

  • Viblast Player - molto economico e relativamente facile da usare. Questa è solo una riproduzione HLS HTML5 minima. Lo sviluppatore deve fare da solo l'interfaccia utente o integrarla con Video.js/Flowplayer/JWPlayer.
  • Theo Player - Non ho avuto molta esperienza con questo. Il prezzo non è pubblico. La demo sembra OK e funziona anche sulla maggior parte delle versioni di Firefox.

Entrambi questi giocatori si basano sul MSE API e non funzionano su browser in cui non è supportato (IE < = 10, Firefox).

+0

THEOplayer in realtà non richiede MSE. Funziona anche su Firefox, IE10, Opera, ... – MrP

1

THEOplayer è molto interessante per questo caso. Consentono di eseguire lo streaming utilizzando HLS su tutti i browser e le piattaforme più diffusi senza utilizzare Flash.

Hanno supporto per Internet Explorer, Firefox, Chrome, Opera e Safari su Windows, Linux, Mac, iOS, Android e Windows Phone.

Inoltre, contrariamente alle risposte precedenti, non si basano su MSE per funzionare. Di conseguenza, questo lettore funziona su tutte le piattaforme e persino sulle vecchie versioni di IE (da 10 in su) e sui browser che non supportano MSE.

+0

Ma io sono curioso, come hanno ottenuto tutto questo? È in combinazione con Emscripten per utilizzare i decodificatori C++? – Dallox

+0

Sembra che utilizzino il supporto hardware del browser, la decodifica avviene tutto nel browser stesso. Non sembra essere emscripten. Emscripten sarebbe probabilmente troppo lento (vedi il progetto broadway.js) – MrP

4

Fondamentalmente tutti i lettori HTML5 devono trasmettere i segmenti MPEG2-TS (flusso di trasporto) a MP4 poiché la maggior parte dei browser non supporta MPEG2-TS in modo nativo.

In realtà sono disponibili alcuni player HTML5 in grado di riprodurre flussi HLS. Un esempio potrebbe essere lo Bitmovin Player, che offre un supporto professionale oltre che un fallback per i browser legacy. È un prodotto commerciale, ma fornisce anche un piano gratuito. Sono disponibili anche progetti open source come hls.js.

Tuttavia, con Apple's announcement del WWDC di quest'anno è ora possibile utilizzare anche i segmenti MP4 con HLS, che elimina la necessità di trasmettere. Maggiori dettagli su come farlo e vantaggi sono delineati abbastanza bene in . Non sono sicuro quali lettori lo supportano, almeno l'implementazione nativa di Apple in Safari su iOS 10 e macOS; anche Bitmovin lo supporta già.

5

Il progetto HLS.js è alquanto affidabile al giorno d'oggi (https://github.com/video-dev/hls.js/tree/master). È supportato nelle ultime versioni dei browser. Non si basa su Flash. Può essere usato in flowplayer. hls.js è compatibile con i browser che supportano MSE con input "video/MP4".supportato su:

  • Chrome per Android 34+
  • Chrome per desktop 34+
  • Firefox per Android 41+
  • Firefox per desktop 42+
  • IE11 + per Windows 8.1+
  • Bordo per Windows 10+
  • Opera per desktop
  • Vivaldi per desktop
  • Safari per Mac 8+ (beta)
Problemi correlati