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
| Player | Licence | Price | HLS | DASH | Player interface |
|---|---|---|---|---|---|
| Mattebox | MIT | Free | Yes | Yes | Yes, a package of its own |
| hls.js | Apache-2.0 | Free | Yes | No | No |
| dash.js | BSD-3-Clause | Free | No | Yes | No |
| Shaka Player | Apache-2.0 | Free | Yes | Yes | Yes, in the ui build |
| video.js | Apache-2.0 | Free | Yes | Yes | Yes |
| Bitmovin Player | Commercial | A paid licence | Yes | Yes | Yes |
| THEOplayer (Dolby OptiView) | Commercial | A paid licence | Yes | Yes | Yes |
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.
- Mattebox playermain · + mattebox v0.14.0, full preset107.9 KB
- video.js 8 + vhsv8.24.0 · VHS built in211.5 KB
- shaka player + uiv5.2.10 · the ui build329.9 KB
- media chrome + hls.js + dash.jsv4.19.2 · hls- and dash-video-element449.2 KB
- video.js 10 + hls.js + dash.jsv10.0.0-rc.2 · skin, hlsjs- and dash-video474.0 KB
- vidstack + hls.js + dash.jsv1.15.6 · default layout524.3 KB
- bitmovin playerv8.279.0 · the full bundle, with its ui662.6 KB
- theoplayerv11.13.0 · the full bundle, with its ui721.1 KB
The engine alone
The part that reads the stream. Mattebox with every stage is 82.5 KB.
- Matteboxmain82.5 KB
- hls.jsv1.7.2184.1 KB
- video.js + vhsv8.24.0197.3 KB
- shaka playerv5.2.9267.0 KB
- dash.jsv5.2.1297.3 KB
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.
- kernelmain · the engine alone24.3 KB
- hlsmain · HLS line + base46.2 KB
- hls-drmmain · + EME49.3 KB
- hls-tsmain · + MPEG-TS53.9 KB
- hls-ts-drmmain · + MPEG-TS + EME57.0 KB
- dashmain · DASH line + base47.5 KB
- dash-drmmain · + EME50.6 KB
- dualmain · both lines + base54.8 KB
- dual-drmmain · + EME57.8 KB
- dual-tsmain · + MPEG-TS62.5 KB
- dual-ts-drmmain · + MPEG-TS + EME65.5 KB
- fullmain · + accessories82.5 KB
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.