Skip to content

Hls.js with Peer5 for HLS integration




Hls.js is an open source HLS player.

The integration with Peer5 plugin is as easy as it can get.
In addition to the player script, include the Peer5 client and the Peer5 hls.js plugin.

Peer5 client and plugins scripts

Add these two scripts to the head of your player's page

1
2
<script src="//api.peer5.com/peer5.js?id=PEER5_CUSTOMER_ID"></script>
<script src="//api.peer5.com/peer5.hlsjs.plugin.js"></script>

Complete Example

The following information needs to be filled according to your actual data:

  • PEER5_CUSTOMER_ID   your Peer5 Customer ID
  • MANIFEST_FILE   url to your .m3u8 file
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hls.js Player test</title>
    <!-- peer5 client & plugin -->
    <script src="//api.peer5.com/peer5.js?id=PEER5_CUSTOMER_ID"></script>
    <script src="//api.peer5.com/peer5.hlsjs.plugin.js"></script>

    <!-- Hls.js script -->
    <script src="//cdn.jsdelivr.net/hls.js/latest/hls.min.js"></script>

</head>
<body>
    <video id="player"></video>
    <script>
        if (Hls.isSupported()) {
            var video = document.getElementById('player');
            var player = new Hls();
            player.loadSource('MANIFEST_FILE');
            player.attachMedia(video);
            player.on(Hls.Events.MANIFEST_PARSED, function() {
                video.play();
            });
        }
    </script>
</body>
</html>

Visit the full Hls.js docs here

To test that you integrated with Peer5 correctly, and to see stats about what the Peer5 integration is doing, you can view the stats overlay.

Custom Hls.js Based players

Its also possible to integrate Peer5 with custom players that are based on Hls.js.
If you use bundled setup where Hls.js is required without being exposed globally, use this alternative setup:

include these scripts

1
2
<script src="//api.peer5.com/peer5.js?id=PEER5_CUSTOMER_ID"></script>
<script src="//api.peer5.com/peer5.hlsjs.loader.js"></script>

then pass the peer5 loader to Hls.js constructor

1
2
3
4
5
var Hls = require('hls.js');
var instance = new Hls({
  fLoader: window.peer5 && window.peer5.HlsJsFragmentLoader,
  pLoader: window.peer5 && window.peer5.HlsJsPlaylistLoader
});

or using es6 syntax

1
2
3
4
5
import Hls from 'hls.js';
const instance = new Hls({
  fLoader: window.peer5 && window.peer5.HlsJsFragmentLoader,
  pLoader: window.peer5 && window.peer5.HlsJsPlaylistLoader
});