Build Status Coverage Status npm # hls.js hls.js is a JavaScript library which implements an HTTP Live Streaming client. It relies on HTML5 video and MediaSource Extensions for playback.

It works by transmuxing MPEG-2 Transport Stream into ISO BMFF (MP4) fragments. This transmuxing could be performed asynchronously using Web Worker if available in the browser.

hls.js does not need any player, it works directly on top of a standard HTML<video>element.

hls.js is written in ECMAScript6, and transpiled in ECMAScript5 using Babel.

Demo

Public demo : http://dailymotion.github.io/hls.js/demo

Private demo accessible from Dailymotion network: http://gdupontavice.dev.dailymotion.com/hls.js/demo/index.html

Player Integration

hls.js is (being) integrated in the following players:

It might also be integrated in the following players if you push for it !

Chrome integration

Firefox integration

Dependencies

No external JS libs are needed. Prepackaged build is included in the [dist] (dist) folder:

If you want to bundle the application yourself, use node

npm install hls.js

Installation

Either directly include dist/hls.js or dist/hls.min.js

Or type

npm install --save hls.js

Compatibility

hls.js is compatible with browsers supporting MSE with ‘video/MP4’ inputs. As of today, it is supported on:

CORS

All HLS resources must be delivered with CORS headers permitting GET requests.

Features

Not Supported (Yet)

Supported M3U8 tags

Getting Started

<script src="https://cdn.jsdelivr.net/hls.js/latest/hls.min.js"></script>
<video id="video"></video>
<script>
  if(Hls.isSupported()) {
    var video = document.getElementById('video');
    var hls = new Hls();
    hls.loadSource('http://www.streambox.fr/playlists/test_001/stream.m3u8');
    hls.attachMedia(video);
    hls.on(Hls.Events.MANIFEST_PARSED,function() {
      video.play();
  });
 }
</script>

Video Control

Video is controlled through HTML <video> element.

HTMLVideoElement control and events could be used seamlessly.

API and Configuration Parameters

hls.js can be configured and controlled easily, click here for details.

License

hls.js is released under Apache 2.0 License

Contributing

Pull requests are welcome. Here is a quick guide on how to start.

Design

Click here for details.