HTML5 defines a new element which specifies a standard way to embed a video/movie on a web page, the (video) tag, that aims to allow web developers to add a video to a site using similar html code as if they were adding an image.

HTML5 video is intended by its creators to become the new standard way to show video on the web without plugins, but has been hampered by lack of agreement as to which video formats should be supported in web browsers.

Currently, HTML5 draft specifications do not specify which video formats browsers should support. User agents are free to assist any video formats they feel are appropriate, but content authors cannot assume that any video will be accessible by all complying user agents, since user agents have no minimal set of video formats to support.

Most videos are shown through a plug-in (e.g. flash) but different browsers may have different plug-ins. Playing video on a page is made possible by plugins like Flash Player, Quicktime, and Silverlight.

According to Video.js, HTML5 video is a big step forward for standardizing video playback across web browsers and devices. The goal is that in the future, developers will only need to use one method for embedding a video, based on open standards (not controlled by one company), and it will work everywhere. Additionally, HTML5 video can improve video performance by not requiring a second application (a plugin) to be running, and opens the door to creating interactions between video and other elements on the page that hasn't been possible before.

An HTML5 Video Player is a JavaScript library that builds a custom set of controls over top of the HTML5 video element to provide a consistent look between HTML5 browsers. Video.js builds on this by fixing many cross browser bugs or inconsistencies, adding new features that haven't been implemented by all browsers (like full screen and subtitles), as well as providing one consistent JavaScript API for both HTML5, Flash and other playback technologies.

Video.js is an open source project, which allows everyone to dig into the code and contribute updates. Brightcove hosts the project on their CDN for free which allows for quick and painless setup. There are no downloads required and the files are delivered quickly and may already be cached. In addition, your player software stays up-to-date as new devices are supported.

Creating a custom skin usually requires a complicated skinning language, or isn't an option at all. Video.js uses the same CSS code for HTML5, Flash, and any other playback technology, opening the door for customization using mark-ups we're already familiar with.

HTML5, Flash, and other playback technologies all have different JavaScript APIs for interacting with the video. Video.js provides a single API that can be used consistently across platforms, so you only have to write a code once.

Most Flash video players are huge and require hundreds of additional kilobytes to be loaded in addition to the video being played. The Video.js custom Flash fallback player is less than 10k, making your videos load faster even when Flash is used.

Video.js is a free HTML5 video player, created and open-sourced by Steve Heffernan and Zencoder Inc.

For a demonstration of the HTML5 video element, its media API, and the media events please have a look at: http://www.w3.org/2010/05/video/mediaevents.html .

Sources: videojs.com