Compare

Smaller, and free

Three things you can check yourself: what each player costs, what it plays, and how many bytes your viewers download before the first frame.

Licence and price

PlayerLicencePriceHLSDASHPlayer interface
MatteboxMITFreeYesYesYes, a package of its own
hls.jsApache-2.0FreeYesNoNo
dash.jsBSD-3-ClauseFreeNoYesNo
Shaka PlayerApache-2.0FreeYesYesYes, in the ui build
video.jsApache-2.0FreeYesYesYes
Bitmovin PlayerCommercialA paid licenceYesYesYes
THEOplayer (Dolby OptiView)CommercialA paid licenceYesYesYes

Checked on 2026-10-11. Each licence links to where its project states it. Bitmovin and Dolby publish their own prices, so this table does not repeat them.

The whole player

A player with its interface and both protocols. Mattebox is 107.9 KB with every stage of the engine inside.

  1. Mattebox playermain · + mattebox v0.14.0, full preset107.9 KB
  2. video.js 8 + vhsv8.24.0 · VHS built in211.5 KB
  3. shaka player + uiv5.2.10 · the ui build329.9 KB
  4. media chrome + hls.js + dash.jsv4.19.2 · hls- and dash-video-element449.2 KB
  5. video.js 10 + hls.js + dash.jsv10.0.0-rc.2 · skin, hlsjs- and dash-video474.0 KB
  6. vidstack + hls.js + dash.jsv1.15.6 · default layout524.3 KB
  7. bitmovin playerv8.279.0 · the full bundle, with its ui662.6 KB
  8. theoplayerv11.13.0 · the full bundle, with its ui721.1 KB
min+gzip · KB · each stack bundled from npm the same way, with its styles (lower is better)

The engine alone

The part that reads the stream. Mattebox with every stage is 82.5 KB.

  1. Matteboxmain82.5 KB
  2. hls.jsv1.7.2184.1 KB
  3. video.js + vhsv8.24.0197.3 KB
  4. shaka playerv5.2.9267.0 KB
  5. dash.jsv5.2.1297.3 KB
min+gzip · KB · each engine's compatibility build (lower is better)

Or less, if you need less

The engine is a kernel and the stages you add. A preset is a ready-made list. An HLS-only page downloads the first rows, and nothing of DASH or DRM.

  1. kernelmain · the engine alone24.3 KB
  2. hlsmain · HLS line + base46.2 KB
  3. hls-drmmain · + EME49.3 KB
  4. hls-tsmain · + MPEG-TS53.9 KB
  5. hls-ts-drmmain · + MPEG-TS + EME57.0 KB
  6. dashmain · DASH line + base47.5 KB
  7. dash-drmmain · + EME50.6 KB
  8. dualmain · both lines + base54.8 KB
  9. dual-drmmain · + EME57.8 KB
  10. dual-tsmain · + MPEG-TS62.5 KB
  11. dual-ts-drmmain · + MPEG-TS + EME65.5 KB
  12. fullmain · + accessories82.5 KB
min+gzip · KB · a protocol line, the MPEG-TS tier (worker inside), the DRM tier

The sizes come from the scripts in theengine andplayerrepositories. Each one installs the other players from npm at the version shown and bundles them the same way, so you can run it and get the same numbers. Seepresets and stages for what each preset holds.