Cross browser compatible HTML5 videos

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 .webm.

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> tag.

<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>.

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&amp;file=video.flv" />

  • Thanks for the sharing. but its better if you have demo site.

  • Sigh… One day we’ll be able to upload one type of video once… sigh….

  • I am new to the html5, I will go on with it!

  • Constantin

    That really is good to have. But which of the old browsers are able to show html5? Ie7? or only ie8+?
    Would be good to know 🙂 Thank you!

  • Hello Jean-Baptiste,

    Good tutorial. If you allow me I should quickly mention that if the server root already have set up the file types webm and ogg there is no need to add them in your .htaccess file and, one thing more, to get the full benefit from your video page you should send to engine search webmaster tools the video sitemap which is different from the regular sitemap. Of course a tutorial for video sitemap is much needed as it is very complex 🙂

  • how to make music player like on your sidebar “Punk rock anyone?” replay me please

  • Thesturs

    Now all the major browsers support HTML5 MP4 video/audio playback. FF35+ Chrome39+ IE11+