The HTML5 specification includes support for <video> and <audio>. This page outlines use of HTML5 syntax with Xiph.Org codecs, particularly Ogg Theora and Ogg Vorbis. It is also a place to collect ideas for ogg.org.
See also the Theora Cookbook for a guide to streaming and working with Ogg Theora.
Our list of TheoraSoftwarePlayers lists many general-purpose media players that support Ogg Theora.
These web browsers support HTML5 with Ogg video:
Firefox 3.5 includes "support for the HTML5 <video> and <audio> elements including native support for Ogg Theora encoded video and Vorbis encoded audio." See Using audio and video in Firefox at the Mozilla Developer Center for more info.
In A call for video on the web - Opera <video> release on Labs, Opera announce that they "have created an experimental build of our browser for Windows, Mac and Linux with ... support for the <video> element/Ogg Theora built in".
The article contains links to experimental builds of Opera 9.52, and provides some simple examples of HTML5 <video> markup.
Unstable builds are available from the dev-channel. The first version supporting Ogg Theora was chrome 126.96.36.199.
Microsoft Internet Explorer
Web Video sites
For more examples of Ogg Theora video, see List of Theora videos.
The following web sites support HTML5 with Ogg Theora.
Community upload sites
These sites allow anyone to upload video, and provide transcoding to Ogg:
- DailyMotion. See also DailyMotion's Open Video Demo (restricted to Firefox 3.5)
- Chris Double's Tinyvid (transcoding via Firefogg)
Archival and Reference
Sites that curate video for general archival and reference purposes, and allow anyone to upload relevant material:
- metavid: The Open Video archive of the US Congress
- pad.ma: Public Access Digital Media Archive is an online archive of densely text-annotated video material, primarily footage and not finished films.
- DebConf: on the individual conference pages, e.g. 
- The FOMS workshop videos: proceedings from a workshop on free and open multimedia software.
Technology for setting up your own site
HTML5 <video> embedding
There are various ways to provide HTML5 video content with fallbacks for older browsers and non-free codecs.
You can include one of the scripts below, or modify source from an existing page such as the HTML of CELT presentations.
"Mv_embed will then rewrite the video tag to whatever playback method is available on the client be it native support, java cortado, mplayer or vlc".
See also mv_embed on MediaWiki.
Example sites using iTheora:
Uses browser specific technology (.htc, .xbl, or plain .js) to rewrite video tags to fall back to H.264 in Flash for legacy browsers, while providing H.264 natively to Safari and Theora for Mozilla. Roughly speaking a script version of Kroc Camen's pure HTML Video For Everybody solution. Doesn't (currently) use any Theora based fallbacks.
Video for Everybody
Video for Everybody is "a chunk of HTML code that embeds a video into a website using the HTML5 <video> element."
- Comment: We really shouldn't be plugging a solution which eschews cortado as a fall back in favor of FLV. A pure HTML triple check video/java/youtube would be better, but no pure HTML solution perform a canplaytype so it will break for safari users without xiphqt. Is "possible to add raw HTML but no JS" a common enough situation that a JS free solution is really needed? --Gmaxwell 22:58, 30 June 2009 (PDT)
Firefogg provides "video encoding and uploading for Firefox". This includes a Firefox extension that allows users to encode video to Ogg Theora on their own computer while uploading it to your site. This simplifies the upload for users as they can simply choose from their existing video files, and simplifies your web site by allowing you to deal with only one video format, and offloading the CPU cycles required for encoding to the user.
- The OggHandler extension for MediaWiki provides video and audio support with automatic fallback and thumbnailing.
- oggz-chop allows you to serve time ranges of Ogg media over HTTP by any web server that supports CGI. Examples of such time range requests are http://www.example.com/video.ogv?t=200/600 which serves the segment of video.ogv from 200s-600s. This allows users to instantly jump to any point in a video, and you can put links in your web application to play arbitrary scenes.