Q: How can I troubleshoot playback issues?

When seeking help about a playback issue the problem is often specific to the video file used, the way the video is hosted or the browser, so make sure to include all of that information and a reduced test case.

If you don't think you can fix the issue or add the feature

Q: What is a reduced test case?

A reduced test case is an example of the problem that you are facing in isolation.
Think of it as example page that reproduces the issue in the least amount of possible code.

It's important to add a reduced case. Even if the problem seems obvious it may not be to
others. Having a example to refer to also makes the difference between somebody being able
to take a look and immediately see what's wrong, and needing to take time to recreate what
they think you are describing.

Q: What media formats does Video.js support?

This depends on the formats supported by the browser's HTML5 video element, and the playback
techs/plugins made available to Video.js. For more information on media formats see the troubleshooting guide.

Q: How does Video.js choose which source to use?

When an array of sources is available, Video.js test each source in the order given. For each source, each tech in the [techOrder][techorder] will be checked to see if it can play it whether directly or via source handler (such as videojs-contrib-hls). The first match will be chosen.

Q: How to I autoplay the video?

Video.js supports the standard html5 autoplay attribute on the video element.
It also supports it as an option to Video.js or as a method invocation on the player.

Q: How can I autoplay a video on a mobile device?

Most mobile devices have blocked autoplaying videos until recently.
For mobile devices that don't support autoplaying, autoplay isn't supported by Video.js.
For those devices that support autoplaying, like iOS10 and Chrome for Android 53+,
you must mute the video or have a video without audio tracks to be able to play it.
For example:

<video muted autoplay playsinline>

Will make an inline, muted, autoplaying video on an iPhone with iOS10.

Q: How can I play RTMP video in Video.js?

RTMP requires Flash to play back. You'll need both a browser that supports Flash and the Flash tech.

In Video.js version 6, the Flash tech is not included by default and is available as a separate videojs-flash package. In previous versions it was builtin to Video.js.

The RTMP source should be set with an appropriate type -- rtmp/mp4 or rtmp/flv.
Be aware of that Video.js splits the connection url and stream name with the & character, for example: rtmp://example.com/live&foo or rtmp://example.com/fms&mp4:path/to/file.mp4.

If the server requires query parameters for authentication, these should be added to the connection part URL, for example rtmp://example.com/live?token=1234&foo.

Bear in mind that mobile browsers do not support Flash, and modern desktop browsers make it increasingly difficult to use Flash or disable it by default for your end users. Consider moving to a modern format such as HLS or DASH.

Q: How can I hide the links to my video/subtitles/audio/tracks?

It's impossible to hide the network requests a browser makes and difficult to
sufficiently obfuscate URLs in the source. Techniques such as token authentication may
help but are outside of the scope of Video.js.

Q: Can I turn off Video.js logging?

Yes! This can be achieved by adding the following code after including Video.js, but before creating any player(s):

videojs.log.level('off');

For more information, including which logging levels are available, check out the debugging guide.

Q: What is a plugin?

A plugin is a group of reusable functionality that can be re-used by others. For instance a plugin could add
a button to Video.js that makes the video replay 10 times in a row before it stops playback for good. If such
a plugin existed and was published users could include it on their page to share that functionality.

Q: Can Video.js play Vimeo videos?

Q: Does Video.js support DRM video?

Q: Does Video.js have any support for advertisement integrations?

There is an official plugin that adds core advertising support, videojs-contrib-ads. Further plugins build on this which handle the communication with the ad server and display of the ad, for instance Google's IMA plugin.