- Home
- Video Player Software
- MediaElement.js
MediaElement.js
What it is
MediaElement.js is a free HTML5 audio and video library that gives supported media a consistent player interface across browsers. It includes a complete player built with HTML and CSS, plus a common MediaElement API. Supported media includes MP4, WebM, MP3, HLS and DASH, and embedded-player sources include YouTube, Vimeo, Twitch, DailyMotion, Facebook and SoundCloud. Its video player is described as meeting WCAG 2.1, BITV 2.0 and EN 301 549 accessibility requirements. Captions, subtitles and chapters can use HTML track elements with SRT or VTT files; for cross-browser caption handling, those files must be on the same domain as the player. Installation options include a package, CDN, Git, npm, Bower and Meteor. Usage guidance covers standalone JavaScript, jQuery, RequireJS and React, with WordPress and Drupal integration also documented. The project lists support for IE11+, Edge, Chrome, Firefox, Safari, iOS 8+ and Android 4.0+. Add-ons include Chromecast, AirPlay, analytics, playlists, ads, caption accessibility and playback speed.
For and against
For
- Free and MIT-licensed.
- Supports MP4, WebM, MP3, HLS and DASH.
- Lists multiple embedded-player sources.
- Documents React, jQuery and standalone JavaScript use.
Against
- Caption files must share the player’s domain for cross-browser handling.
- The jQuery plugin requires jQuery to be imported.
- Non-native plugins must be loaded separately.
The verdict
MediaElement.js combines a shared media API with a complete player and broad format and embed support. Developers should account for its caption-hosting requirement and separately loaded non-native plugins.
Who it suits
MediaElement.js may suit developers who need a common player interface for audio and video across browsers. Its documented integrations and installation routes offer several ways to add it to a project.
Plans and prices
MediaElement.js
MIT-licensed HTML5 audio/video player library · install via package, CDN, Git, npm, Bower or Meteor
Read 7 Oct 2026 · github.com
On the record
- Accessibility
- The product site says its video player complies with WCAG 2.1, BITV 2.0, and EN 301 549 accessibility requirements.mediaelementjs.com · read 7 Oct 2026
- Browser support
- The repository says the library generally supports IE11+, Microsoft Edge, Chrome, Firefox, Safari, iOS 8+, and Android 4.0+.github.com · read 7 Oct 2026
- Caption hosting limit
- For cross-browser caption handling, the guide says caption files must be on the same domain as the player because parsing uses an AJAX request.github.com · read 7 Oct 2026
- Captions
- The installation guide documents closed captions, subtitles and chapters using HTML track elements with SRT or VTT files.github.com · read 7 Oct 2026
- CMS integration
- The installation guide says MediaElement.js is incorporated into WordPress core and documents integration with Drupal.github.com · read 7 Oct 2026
- Creator
- The product site says MediaElement.js was created by John Dyer at Dallas Theological Seminary.mediaelementjs.com · read 7 Oct 2026
- Embedded players
- The official site lists YouTube, Vimeo, Twitch, DailyMotion, Facebook and SoundCloud as embeddable player sources.mediaelementjs.com · read 7 Oct 2026
- Installation
- The installation guide lists package download, CDN, Git, npm, Bower, and Meteor installation options.github.com · read 7 Oct 2026
- Integration
- The usage guide documents standalone JavaScript, jQuery, npm/Meteor, RequireJS, and React usage.github.com · read 7 Oct 2026
- License
- The project repository identifies the software license as MIT.github.com · read 7 Oct 2026
- Maker
- The official site says MediaElement.js was created by John Dyer at Dallas Theological Seminary.mediaelementjs.com · read 7 Oct 2026
- Media formats
- The project describes support for MP4, WebM, MP3, HLS and DASH media.github.com · read 7 Oct 2026
- Media support
- The site lists MP4 and MP3 media files, HLS and MPEG-DASH streams, and embedded players including YouTube, Vimeo, Twitch, DailyMotion, Facebook, and SoundCloud.mediaelementjs.com · read 7 Oct 2026
- Notable requirement
- The usage guide says jQuery must be imported to use the jQuery mediaelementplayer plugin, and non-native plugins must be loaded separately.github.com · read 7 Oct 2026
- Playback formats
- The repository describes support for MP4, WebM, MP3, HLS, DASH, YouTube, Facebook, and SoundCloud.github.com · read 7 Oct 2026
- Player
- The project includes a complete HTML and CSS audio/video player built on top of MediaElement.js.github.com · read 7 Oct 2026
- Player API
- The project provides a common HTML5 MediaElement API for supported media sources.github.com · read 7 Oct 2026
- Plugins
- The plugin repository lists add-ons including Chromecast, AirPlay, Google Analytics, Google Tag Manager, playlists, ads, captions accessibility, and playback speed.github.com · read 7 Oct 2026
The review
MediaElement.js is a developer-focused HTML5 audio and video framework for sites that need one playback experience across files, streams and embedded services. It is best suited to web and self-hosted projects with engineering resources; the free MIT license removes purchase cost, but integration and plugin setup remain your responsibility.
Its broad source coverage, shared API and accessibility-oriented player make it a capable foundation for a custom media experience. Teams wanting a finished consumer app or hosted video service should choose a different category of product.
Overview
MediaElement.js supplies a common MediaElement API plus a complete HTML/CSS player, allowing a site to present MP4, WebM and MP3 files, HLS and MPEG-DASH streams, and embeds from YouTube, Vimeo, Twitch, DailyMotion, Facebook and SoundCloud through a consistent control layer. That mix is valuable for publishers and application teams combining owned media with external platforms. It is a framework rather than a turnkey service, so implementation, hosting and ongoing maintenance sit with the developer.
The project is MIT-licensed and was created by John Dyer at Dallas Theological Seminary. Its stated browser reach includes IE11 and later, Edge, Chrome, Firefox and Safari, plus iOS 8 and later and Android 4.0 and later. MediaElement.js is incorporated into WordPress core and has documented Drupal integration, which can shorten adoption for those CMS environments.
Key features
Unified playback and source coverage
The shared API reduces the need to build separate controls for local files, adaptive streams and third-party players. The project identifies H.264, MP3, Opus, WebM and Ogg codec support, with SRT and VTT subtitles and a playback-speed control. This is a strong fit when one site must accommodate varied media pipelines; it offers less benefit for a single-format page that needs only a minimal native element.
Accessibility and caption workflow
The video player is presented as compliant with WCAG 2.1, BITV 2.0 and EN 301 549 requirements. Closed captions, subtitles and chapters use HTML track elements with SRT or VTT files. There is an important deployment constraint: for cross-browser caption handling, those files must be hosted on the same domain as the player because parsing uses an AJAX request. Organizations serving captions from a separate asset domain must plan around that limitation.
Extensible integrations
Installation can use a package download, CDN, Git, npm, Bower or Meteor. Usage documentation covers standalone JavaScript, jQuery, npm/Meteor, RequireJS and React, giving teams several ways to fit the library into an existing stack. Add-ons include Chromecast, AirPlay, Google Analytics, Google Tag Manager, playlists, advertising, caption accessibility and playback speed. These extensions broaden the use cases, but non-native plugins must be loaded separately. The jQuery mediaelementplayer plugin also requires jQuery to be imported, so a nominally simple setup can involve extra dependency work.
Pricing
| Plan | Price | What it includes |
|---|---|---|
| MediaElement.js | free | MIT-licensed HTML5 audio/video player library; installation through package, CDN, Git, npm, Bower or Meteor |
There is no paid tier or free trial. The free plan is the complete published offering, making it appropriate for teams that can supply their own hosting, integration and support. It does not buy a hosted platform, managed quota or turnkey configuration; those needs favor a commercial service instead.
Platforms
MediaElement.js targets web and self-hosted deployments, with API, iOS and Android support identified among its platforms. Its documented browser and mobile range is useful for sites supporting older clients as well as current desktop browsers. The library is delivered for integration rather than as a standalone mobile media app.
Who it's for
Choose it for a website, CMS installation or application that needs one control experience over files, adaptive streams and major embedded providers. It is particularly suitable for developers who value an MIT-licensed base, React or jQuery integration options, and formal accessibility targets. Look elsewhere if your priority is a ready-to-use player with no JavaScript assembly, or if caption assets cannot be served from the player’s domain.
Pros and cons
- Pros: A single API spans files, HLS/DASH streams and several major embed providers, reducing fragmented playback logic.
- Pros: The included player targets WCAG 2.1, BITV 2.0 and EN 301 549, with SRT/VTT tracks and playback-speed control.
- Pros: MIT licensing and a zero-cost plan remove per-seat or subscription charges.
- Cons: Non-native plugins are separate loads, and the jQuery plugin adds a jQuery dependency.
- Cons: Cross-browser captions require same-domain hosting for track files, which can complicate CDN or split-domain architectures.
- Cons: It remains an integration framework, not a managed hosting or finished media application.
Alternatives
For a broad directory of comparable products, see Video Player Software.
- mpv is a free, open-source command-line player with wide media-format, codec and subtitle support; choose it for local playback rather than embedding a web player.
- 5KPlayer is a free player for iOS, macOS and Windows with no subscription required, better suited to desktop and mobile playback than site integration.
- Infuse offers a free tier and a Pro plan at $1.99 a month with a seven-day trial, additional formats and high-resolution Dolby and DTS-HD audio; pick it for a consumer media library.
- ALLPlayer provides free Windows playback and optional paid AI voice-over, targeting app users rather than developers embedding a player.
- Just (Video) Player is a free Android video player.
- mpv-android is a free Android video player under the MIT license.
- Next Player is a free, open-source Android player with no ads.
- NOVA Video Player is a free Android player for local and network video content.
Verdict
MediaElement.js is a strong choice for developers building a self-hosted or web-based player that must unify many media sources under an accessible, permissively licensed interface. Its main reason to choose it is breadth without licensing fees; its main reason to look elsewhere is the integration burden, especially separate plugin loading and same-domain caption hosting.