XML for Online Multimedia

Xiph.org Logo

Ralph Giles

Xiph.org Foundation

Xiph.org Foundation

Xiph Compression technology

Multimedia Formats

Other projects

But enough about me...

XML Video Encoding

<video>
  <format>
   <width>640</width> <height>480</height>
   <rate>29.97<rate>
  </format>
  <frame>
   <pixel>
    <red>125</red>
    <green>23</green>
    <blue>54</blue>
   </pixel>
   <pixel>...</pixel> ...
  </frame>
  <frame> ...
</video>

XML Video Encoding (joke)

<video>
  <format>
   <width>640</width> <height>480</height>
   <rate>29.97<rate>
  </format>
  <frame>
   <pixel>
    <red>125</red>
    <green>23</green>
    <blue>54</blue>
   </pixel>
   <pixel>...</pixel> ...
  </frame>
  <frame> ...
</video>

Podcasting

Podcasting: RSS

Podcasting: RSS Example

<?xml version="1.0"?>
<rss version="2.0">
   <channel>
      <title>My New Links</title>
      <link>http://my.blog.com/</link>
      <description>Interesting links to funny stuff</description>
      <item>
         <title>Cool video</title>
         <link>http://waycool.net/video/shiny.ogg</link>
         <description>This one completely rocks. Way better than 
            yesterday's link.</description>
         <pubDate>Tue May 10 02:03:17 UTC 2005</pubDate>
      </item>
      ...
   </channel>
</rss>

Podcasting: Bittorrent

Podcasting Summary

MusicBrainz metadata

MusicBrainz Metadata Initiative

XSPF: XML Playlist

XSPF: Why another playlist format?

XSPF Example 1

A simple example:

<?xml version="1.0" encoding="UTF-8"?>
<playlist version="1" xmlns = "http://xspf.org/ns/0/">
  <trackList>
    <track><location>file:///music/song_1.ogg</location></track>
    <track><location>file:///music/song_2.ogg</location></track>
    <track><location>file:///music/song_3.ogg</location></track>
  </trackList>
</playlist>

XSPF Example 2

A less simple example:

<?xml version="1.0" encoding="UTF-8"?>
<playlist version="1" xmlns = "http://xspf.org/ns/0/">
  <trackList>
    <track><location>http://example.com/song_4.ogg</location></track>
    <track><location>http://example.com/video_29.ogg</location></track>
    <track><location>rtsp://www.nasa.gov/encoder/nasatv.rm</location></track>
    <track><location>http://webjay.org/by/OddioKatya/brasilado.xspf</location></track>
  </trackList>
</playlist>

XSPF General tags

XSPF General Playlist tags

XSPF General Track tags

XSPF: leveraging XML

XSPF: Summary

CMML: Content Markup

CMML: The key idea

CMML: The key idea

Time-based media

If multimedia is hyperlinked!

Components of the project

URI scheme

CM Markup Language

<cmml>
 <stream>
  <import src="shrek2_review.ogg" contenttype="video/x-theora"/>
 </stream>

 <head>
  <title>Shrek 2 Review</title>
  <meta name="author" content="AAP/Urban Cinefile"/>
 </head>
 ...

CM Markup Language

 ...
 <clip id="introduction" start="npt:15">
  <a href="http://media.annodex.net/AAP/movies/shrek2_trailer.ans">
   Watch the trailer
  </a>
  <meta name="KEYWORDS" content="Ogre, Prince Charming"/>
  <desc>Shrek and Fiona get an invitation...</desc>
 </clip>
 ...
</cmml>

Multiplexed "Annodex" file

annodex multiplex figure

Multiplexed "Annodex" file

annodex file figure

CMML markup in action

Movie Review Demo

Note: you'll need the firefox plugin for this demo to work. See annodex.net for the download.

In Summary