Since browser support for various video formats can be unpredictable, you can offer files of various formats usingelements as children:

1

2

3

4

<video>

<source src="path/to/video.ogg"type="video/ogg"/>

<source src="path/to/video.mp4"type="video/mp4"/>

</video>

Alternate content:

1

2

3

<video src="path/to/video.mp4">

no support...

</video>

Most of it’s DOM methods are predictable (in a good way):

1

2

3

varvideo=// get reference to video element

video.play();

video.pause();

There are several significant attributes, like “controls” (to show browser-supplied play/pause buttons), or “poster” to show a default image, or “preload” to determine if either the video or it’s metadata should load before user-initiation, etc.

Since the non-source children are rendered as alternate content, it’s simple enough to stick a Flash FLV player within a Video element to provide video to a variety of setups.

1

2

3

4

5

6

<video src="path/to/video.mp4">

<object data="player.swf"type="application/x-shockwave-flash">

<param value="player.swf"name="movie"/>

no support...

</object>

</video>

One could easily supply a Java applet or a QuickTime player within the alternate content of the flash object, providing multiple layers of fallback.