<shaka-video>

https://github.com/muxinc/media-elements/tree/main/packages/shaka-video-element

A custom element for Shaka Player, which supports both HLS and DASH streaming protocols.

<media-controller>
  <shaka-video
    src="https://storage.googleapis.com/shaka-demo-assets/bbb-dark-truths-hls/hls.m3u8"
    slot="media"
    crossorigin
    muted
  ></shaka-video>
  <media-loading-indicator slot="centered-chrome" noautohide></media-loading-indicator>
  <media-control-bar>
    <media-play-button></media-play-button>
    <media-seek-backward-button></media-seek-backward-button>
    <media-seek-forward-button ></media-seek-forward-button>
    <media-mute-button></media-mute-button>
    <media-volume-range></media-volume-range>
    <media-time-range></media-time-range>
    <media-time-display showduration remaining></media-time-display>
    <media-playback-rate-button></media-playback-rate-button>
    <media-fullscreen-button></media-fullscreen-button>
  </media-control-bar>
</media-controller>

First install the NPM package:

npm install shaka-video-element

Import in your app javascript (e.g. src/App.js):

import 'shaka-video-element';

Optionally, you can load the script directly from a CDN using jsDelivr:

<script type="module" src="https://cdn.jsdelivr.net/npm/shaka-video-element@0.6/+esm"></script>

This will register the custom elements with the browser so they can be used as HTML.