Video with HTML5 is extremely simple.

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

Alternate content:

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

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.

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