/indigo-player

Highly extensible, modern, JavaScript video player. Handles MPEG-Dash / HLS / MPEG-4 and is built on top of the HTML5 video element.

Primary LanguageTypeScriptApache License 2.0Apache-2.0

indigo-player

Highly extensible, modern, JavaScript player. 👊

Important: This package is under construction and although it offers a fair amount of features already, this is a work in progress. At the moment, it lacks the proper documentation but with time comes improvement.

Features

  • Fluid mp4 playback.
  • Support for Dash (+ DRM / Widevine & PlayReady). - shaka-player
  • Support for HLS. - hls.js
  • Advertisement support with FreeWheel.
  • A modular structure that allows any developer to hook into the player logic and write custom business rules and extensions. Basically the entire player structure is built as a set of modules.
  • Bundle splitting, only loads JS files (eg: HLS.js) when actually needed.

Note: Native HLS (+ FairPlay) is a work in progress

Documentation

Visit the documentation. 😎

Getting started

The example below will load a simple MP4 file, and attempt to autoplay it.

<html>
  <body>
    <div id="playerContainer"></div>
    <script src="https://cdn.jsdelivr.net/npm/indigo-player@1/lib/indigo-player.js"></script>
    <script>
      const config = {
        ui: true,
        sources: [
          {
            type: 'mp4',
            src: 'https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4',
          }
        ],
      };

      const element = document.getElementById('playerContainer');
      const player = IndigoPlayer.init(element, config);

      // You can use the player object now to access the player and it's methods (play, pause, ...)
    </script>
  </body>
</html>

Cheers 🍺