The purpose of this guide is to give you an overview of the current HTML5 Support in the JW Player. Released officially as part of the JW Player 5.3, HTML5 is now supported in the JW Player.
JW Player 5.3 introduces support for browser-based video playback via the HTML5 <video> tag. While HTML5 video is still very early in its development, JW Player 5.3 makes it possible to use HTML5 video and Flash video in concert with one another, with little discernable difference from the perspective of publishers and viewers. From configuration to skins and the API, we've worked hard to make sure that everything works seamlessly in both HTML5 and Flash.
The single biggest advantage of HTML5 support for the JW Player is that it opens the door for playback of a wide variety of video that would have previously been inaccessible. This is accomplished in several ways.
First, is now possible to view your video content on an array of cutting edge devices (such as the iPad, iPod, and iPhone) where previously it would not have been viewable. Furthermore, HTML5 video utilizes built-in video hardware acceleration, which can simultaneously improve the quality of video playback and system performance.
Additionally, HTML5 video supports a wider variety of video codecs than Flash. Video contains much more data than text, images, or audio. As a result, it's necessary to compress video if you intend on distributing it to a large audience. An algorithm that describes how to compress video or audio is called a codec.
Codecs are generally quite complex, and many people have invested a great deal of time and money in developing them. Not surprisingly, individuals who have developed the technologies that go into codecs have worked hard to protect them and to extract licensing fees for their work.
Because of licensing issues, support for the most prominent video codecs is scattered across browsers, as outlined in the table below.
| Flash | IE | Firefox | Safari | Chrome | Opera | iOS | Android | |
|---|---|---|---|---|---|---|---|---|
| Theora | 3.5+ | 5.0+ | 10.5+ | |||||
| H.264 | 9.0.115.0 | 9.0+ | 3.0+ | 5.0+ | 3.0+ | 2.0+ | ||
| WebM | 4.0+ | 6.0+ | 10.6+ |
Figure 1: Codec compatibility (based off of http://diveintohtml5.org/video.html).
While we've endeavored to make the player identical in HTML5 and Flash modes, there are certain technical limitations that make it impossible to do so.
In order to ensure the best possible user experience on iOS devices, Apple has placed some stringent controls on how video can be viewed and controlled on these devices. The JW Player works around these as best as possible, but the following limitations still persist:
To get around some of these issues, the JW Player uses the native iOS controls, but continues to send out all API events. Note that some API commands will not function as expected.
RTMP is a proprietary streaming video technology developed by Adobe. It is not compatible with HTML5 <video>.
Like RTMP, FLV is a proprietary technology developed by Adobe as a video container format. While it may contain H.264 encoded video, no browser is able to play it back. For this reason, it's better to use the MP4 container if you plan on using your video in both Flash and HTML5.
While Flash has supported fullscreen since Flash Player 9.0.28.0, the specification for HTML5 video does not require that browsers offer a fullscreen mode. Consequently, a few browsers offer this functionality, but it is not widespread. When "real" fullscreen is available (ie Flash and certain browsers), the JW Player will take advantage of it. Otherwise, we will maximize video to the browser window dimensions.
While HTML5 introduces some technical limitations in terms of what will be possible, there are certain features we simply couldn't fit into this release.
While we really love the simplicity of our zipped skinning, there's no good way to unzip files in JavaScript. We're working on a new skinning format to get around this limitation, but in the mean time, you'll need to go ahead and unzip your skin on your server. See the embedding guide for detailed instructions on how to do this.
JW Player 5.3 allows for YouTube playback on all platforms via a specially crafted embed mechanism. Unfortunately, this embed mechanism does not provide an API, and hence, including a YouTube embed disrupts the player. Once YouTube makes their HTML5 API available, we will improve support.
Version 5.7 includes the ability to load XML playlists in RSS and MRSS format. All other playlist formats are not supported at this time.