The Free HTML5 Video Players – HLS and DASH

What player should I use?

This one is just about the completely free and open players. Not including the commercial products that offer a free starter alternative, free players that are tied to a commercial platform, not even the free ones that encompass proprietary technology.

Even so there’s a lot of them. Instead of a boring exhaustive comparative analysis, I’ll try to just list all that are relevant along with as many key features and information, in a setup that’s compact and easy to digest. Also as part of the effort, took the time to put together a one-page HLS URL tester that lets you check out your own stream against any of the players. The DASH tester is coming soon. 

Basic info and capabilities

Player License Sponsor HLS Dash Library API Plugins
Video.js Apache 2.0 Brightcove x yes
Clappr BSD 3-Clause Globo via plugin x yes
Hls.js Apache 2.0 Netlify x x
Dash.js BSD 3-Clause DashIF x x
Shaka Apache 2.0 Google yes
Media Element MIT n/a via hls.js via dash.js x yes
Fluid Player MIT Exads via hls.js via dash.js x x
DPlayer MIT various via hls.js via dash.js or shaka x x
Plyr MIT n/a via hls.js via dash.js or shaka x x
OpenPlayerJS MIT n/a via hls.js via dash.js x ?

In this context, “library” means that some of the respective player’s features library can be easily used into some other player or context. For instance, dash.js and hls.js are used as protocol clients for many other players. 

Popular features

Player Skinning CC Support Thumbnails on seekbar Level Selector Chromecast & AirPlay 360/VR
Video.js advanced
Clappr ? x
Hls.js x ? x x
Dash.js x x x
Shaka basic x x
Media Element css x x
Fluid Player x x
DPlayer css x x
Plyr css x
OpenPlayerJS css x x x

Note that a “?” means unknown or undocumented. In case it’s not obvious, many of the “✓” are hyperlinks pointing to some page/article best describing the topic. 

Commercial features

Player Ads DRM Analytics
Video.js plugin availableplugin available plugin available plugins available
Clappr wip x plugins available
Hls.js x x
Dash.js x ?
Shaka not yet plugin available
Media Element supported via plugins via dash.js plugin available
Fluid Player via dash.js ?
DPlayer x via dash.js or shaka ?
Plyr plugin available via dash.js or shaka ?
OpenPlayerJS via dash.js ?

So what’s the best of them?

For your project, I don’t know… It will be your job to match the features to your needs, further look into the details and test to be sure it’s the right choice. 

I can tell you there’s a lot of criteria one may choose a player for, and interestingly, the strongest is personal preference. Fair enough, as having prior exposure to a product may greatly speed up deployment time; just be sure you’re not missing out on what the others have to offer. 

Second most important is the looks, and that’s kind of natural. Let me once again mention the tester, that’ll give you a quick glimpse of them all; remember most can be skinned tho, albeit some easier, fancier and/or more efficiently than others.

For what it’s worth, Video.js is the widest used by far, and the listing order roughly matches their popularity. Do however take the time to make a more educated choice if you need comercial features, a couple of those down the line have some interesting key strengths.

 Am I good with just a free player?

For the most part, you are. I’d say there’s no feature at least one of the players above does not offer, and long gone are the days when these were thought of as less stable or in any way substandard. Still, you will be missing proper support, documentation of some may be lacking/confusing, and incorporating some functionality may give you extra headaches. Furthermore, commercial player products do focus more on commercial features (i.e monetization, DRM, ad inserts, advanced statistics) and if you need these you may find that the extra bucks are totally worth it, especially if you’re actually selling the respective content.