Cross browser compatible HTML5 videos
The Web Dev Zone is brought to you in partnership with Mendix. Discover how IT departments looking for ways to keep up with demand for business apps has caused a new breed of developers to surface - the Rapid Application Developer.
For years, Flash has been the most popular solution for playing videos on the web. But the HTML5 specification is bringing a new solution, HTML5 videos. In this tutorial, I’ll show you how to use HTML5 to display videos on your website.
Step 1: Preparing files
The first thing to do is to make sure your files are in the right format for HTML5 video playing. Right now, there’s no standard format so you’ll have to have multiple versions of the same file in order to serve the right format to the client browser. This is indeed the biggest problem with HTML5 videos right now.
You’ll need the 3 following formats: The first is
.mp4 (or .
m4v) which is used on Apple products such as iPads, Safari, etc. The second format needed is
.ogv, an open-source format used by Firefox. And the last one is
Converting your file into those formats is pretty easy if you use this very handy tool named Video Converter. You have nothing to install on your computer, simply upload your video, choose the desired output format, and you’re done!
Now that you have your video in the required formats, let’s start coding. You’ll see, it’s very easy.
Step 2: Coding the player
Below is the basic code for displaying a HTML5 video on a web page. Please note that in order to have the video properly displayed on iPad, you must start with the
.mp4 video in the src list.
On line 5, I have added a download link for older browser who don’t recognize the
<video width="800" height="374"> <source src="my_video.mp4" type="video/mp4" /> <source src="my_video.ogv" type="video/ogg" /> <source src="my_video.webm" type="video/webm" /> Video tag not supported. Download the video <a href="video.webm">here</a>. </video>
A very important thing to remember is to make sure your server is serving video files with the correct MIME type in the
Content-Type header. To make sure it will, open your site .htaccess file (don’t forget to do a backup before any modification) and add the lines below:
AddType video/ogg .ogv AddType video/mp4 .mp4 AddType video/webm .webm
Also, various attributes can be used with the
<video> element, for example to autoplay the video, loop it, or automatically display some controls. For the full reference, please see the w3 site.
Step 3: Creating a fallback for older browsers
Now, you have a super cool HTML5 video player. But the problem is that some older browsers don’t support any HTML video at all. For those browsers, the only solution is to use a Flash fallback.
As the purpose of this tutorial is not to show how to built a Flash video player, I’m assuming that you have your video in the
.flv format (named video.flv below) as well as a flash
.flv player (named fallback.swf).
As you can see below, I have added my
<object> tag inside the
<video> tag. That’s simple as that!
<video width="800" height="374"> <source src="my_video.mp4" type="video/mp4" /> <source src="my_video.ogv" type="video/ogg" /> <object width="800" height="374" type="application/x-shockwave-flash" data="fallback.swf"> <param name="movie" value="fallback.swf" /> <param name="flashvars" value="autostart=true&file=video.flv" /> </object> </video>