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 | ✓ | ✓ | ✓ | ✓ | 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.