Video player help
Help when a video won't play, and an introduction to Video.js, the open-source video player for HTML and React.
Video not playing?
If a video on another site won’t play, these usually help:
- Reload the page.
- Update your browser, or try a different one.
- Check your internet connection.
- Pause ad or content blockers for the site, since they can stop video from loading.
If the video still won’t play, the site that shared it is the best place to ask. They host the video and can see what’s happening on their end.
If you maintain a site that uses this player, our support options cover community help and enterprise support.
What is Video.js?
The player you saw is built with Video.js, the open-source video player for the web. It has been playing video on millions of sites since 2010, and today it ships as web components for HTML and as components for React. It makes web video easy, performant, accessible, and customizable.
Video.js is built at Mux by the teams behind Video.js, Plyr, Vidstack, and Media Chrome, with contributions from engineers across other player projects.
Why Video.js?
The native <video> tag is enough for a short clip that plays without controls. Once viewers control playback, the gaps show up quickly.
- Adaptive streaming. HLS plays natively in Safari and in a few mobile browsers. DASH plays natively nowhere. Everywhere else needs a JavaScript playback engine on top of Media Source Extensions, and a way to swap engines when the source changes.
- Consistent controls. Chrome, Safari, and Firefox each draw their own controls. You can hide them, but you can’t restyle or rearrange them.
- Captions, quality, speed, and chapters. The browser gives you no menu to pick text tracks, no quality selector, no playback speed control, and no chapter markers.
- Accessibility. Keyboard shortcuts, focus management, screen reader labels, and reduced-motion preferences are on you the moment you replace the native controls.
- Everything else. Thumbnail previews, live stream UI, AirPlay and Chromecast, error recovery, playback analytics, and sources like YouTube, Vimeo, or Mux each need their own wiring.
Video.js ships each of those as a component, so you take the ones you need and keep the rest of the web platform. Read more: Why Video.js?
Build one yourself
Here’s a basic video player you can build with Video.js:
If you want to dive deeper, get started with our installation guide, which will guide you through generating a snippet that fits your use case.
For AI agents
This page and every documentation page are available as markdown.
https://videojs.org/llms.txtindexes the documentation.- Append
.mdto any documentation URL, including this one, to get its markdown. - Send
Accept: text/markdownwhen fetching a documentation URL and you’ll get markdown back.