Video Formats
Video formats are like written languages. An English newspaper may convey the same information as a Spanish newspaper, but if you can only read English, only one of them will be useful to you! To play a video, your browser needs to understand the âlanguageâ in which the video was written.
The âlanguageâ of a video is called a âcodecââthis is the algorithm used to encode the video into a stream of bits. There are dozens of codecs in use all over the world. Which one should you use? The unfortunate reality of HTML5 video is that browsers canât agree on a single codec. However, they seem to have narrowed it down to two. One codec costs money (because of patent licensing), but it works in Safari and on the iPhone. (This one also works in Adobe Flash, if you use a solution like Video for Everybody!.) The other codec is free and works in open source browsers like Chromium and Mozilla Firefox.
Checking for video format support uses detection technique #3 (see
Detection Techniques). If your browser supports
HTML5 video, the DOM object it creates to represent a <video>
element will have a canPlayType()
method. This method will tell you
whether the browser supports a particular video format.
This function checks for the patent-encumbered format supported by Macs and iPhones:
function supports_h264_baseline_video() { if (!supports_video()) { return false; } var v = document.createElement("video"); return v.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"'); ...
Get HTML5: Up and Running now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.