HTML and CSS Reference
What HTML5 multimedia isn't good for
Regardless of the sensationalist headlines of the tech journalists,
HTML5 won't “kill” all plugins overnight. There are use-cases for
plugins not covered by the new spec.
Copy protection is one area not dealt with by HTML5—unsurpris-
ingly, given that it's a standard based on openness. So people
who need digital rights management (DRM) are probably not
going to want to use HTML5 video or audio, as they'll be as easy
to download to a hard drive as an <img> is now. Some browsers
offer simple context-menu access to the URL of the video, or
even let the user save the video. Developers can view source,
find the reference to the video's URL, and download it that way.
(Of course, you don't need us to point out that DRM is a fool's
errand, anyway. All you do is alienate your honest users while
causing minor inconvenience to dedicated pirates.)
HTML5 can't give us adaptive streaming either. This is a process
that adjusts the quality of a video delivered to a browser based
on changes to network conditions to ensure the best experi-
ence. It's being worked on, but it isn't there yet.
Plugins currently remain the best cross-browser option for
accessing the user's webcam or microphone and then transmit-
ting video and audio from the user's machine to a web page
such as Daily Mugshot or Chatroulette, although getUserMedia
and WebRTC are in the cards for Chrome, Opera, and Firefox—
see “Video conferencing, augmented reality” at the end of this
chapter. After shuddering at the unimaginable loneliness that a
world without Chatroulette would represent, consider also the
massive amount of content already out there on the web that
will require plugins to render it for a long time to come.
NoTE If you're really,
really anxious to do DRM,
check out http://lists.whatwg.
Henri Sivonen's suggested
method, which requires no
changes to the spec.
Anatomy of the video
and audio elements
At its simplest, to include video on a page in HTML5 merely
requires this code:
The .webm file extension is used here to point to a WebM-encoded