media-metadata-examples: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
m (Reverted edits by ABIDEEN10 (Talk) to last version by Tantek)
 
(120 intermediate revisions by 26 users not shown)
Line 1: Line 1:
This is an exploratory page to be used for storage of various multimedia metadata profiles currently in use around the web. As this is a very, very early exploration, we should include as many types of multimedia as possible in the opening discussion - but please be sure to place your profiles in the correct portion of this page.
= Media Metadata Examples =


= Purpose of this exploration (or : The Problem) =
{{TOC-right}}


The purpose of the studies on this page is to determine the feasibility and demand for a flexible, semantic markup format for providing metadata alongside linked multimedia files. Typically, this metadata is stored within the header of the media file itself - which has massive implications for any application where metadata is to be indexed, searched, or made externally accessible. Of course, even if you could easily access the correct portions of a media file remotely, you'd still have to cope with a multitude of open and proprietary metadata formats, each with it's own distinct fieldset, nomenclature and storage method.
This is an exploratory page to be used for storage of various multimedia data and metadata profiles, formats, and practices currently in use around the web. As this is a very, very early exploration, we should include as many types of multimedia as possible in the opening discussion - but please be sure to place your information in the correct portion of this page.
 
== Purpose of this exploration (or : The Problem) ==
 
The purpose of the studies on this page is to determine the feasibility and demand for a flexible, semantic markup format for multimedia related paradigms.
 
This includes such things as:
<ul>
    <li><p>Providing metadata alongside linked multimedia files.</p><p>Typically, multimedia metadata is stored within the header of the media file itself - which has massive implications for any application where metadata is to be indexed, searched, or made externally accessible. Of course, even if you could easily access the correct portions of a media file remotely, you'd still have to cope with a multitude of open and proprietary metadata formats, each with it's own distinct fieldset, nomenclature and storage method.
</p></li>
    <li>What is called: Internet TV, IPTV, [http://newtube.org/ NewTube], vlogging, vidblogging, vidlogging, vodcasting, etc.</li>
    <li>What is called: Podcasting, IPradio, etc.</li>
</ul>


This study aims to make a start at solving this problem.
This study aims to make a start at solving this problem.
== Contributors ==
These folks have contributed real-world examples and research to this document, and are interested in helping with a solution.
* Christopher Allen
* Dougal Campbell
* Dr. Ernie
* Rohit Khare
* Ryan King
* Kevin Marks
* Lisa Rein
* Mary Hodder
* Dan Glegg
* Chris Messina
* [http://changelog.ca/ Charles Iliya Krempeaux]
* Thomas Winningham
* William Sandler
If you contribute new real-world examples or research, and wish to help with a solution, please add your name as well.
= Examples on the Web today =
Below is a list of strawman models based on real work examples.  (Links to actual examples have been omitted since many of them have been found on adult sites, and it is believed that it would be inappropriate to list these here.  -- [[User:Charles|Charles]])
=== Show Strawman #1 ===
Single clip with a preview image.  The clip is the full show.
    <nowiki>
    <a href="clip.mpeg"><img src="preview.png" /></a>
    </nowiki>
=== Show Strawman #2  ===
Single clip with a preview image.  The clip is the teaser of the
full show.  And there is a link that you can go to pay to see the full
show.
    <nowiki>
    <a href="teaser.mpeg"><img src="preview.png" /></a>
    <a href="http://example.com/go">Pay to View</a>
    </nowiki>
=== Show Strawman #3 ===
A show divided up in multiple clips, each with a preview image.
Together the clips make up the show.
    <nowiki>
    <a href="clip-1.mpg"><img src="preview-1.png" /></a>
    <a href="clip-2.mpg"><img src="preview-2.png" /></a>
    <a href="clip-3.mpg"><img src="preview-3.png" /></a>
    </nowiki>
=== Show Strawman #4 ===
A set of teasers for a show.  Together they don't make up the full
show.  And the may or may not overlap in time.  There's a "Pay to
View" link there too.
    <nowiki>
    <a href="clip-blue.mpg"><img src="preview-blue.png" /></a>
    <a href="clip-red.mpg"><img src="preview-red.png" /></a>
    <a href="clip-green.mpg"><img src="preview-green.png" /></a>
    <a href="http://example.com/go">Pay to View</a>
    </nowiki>
=== Show Strawman #5 ===
A single clip that comes in different formats.  (Could be a
teaser, a clip, or a full show.)
    <nowiki>
    <img src="preview.png" />
    <a href="clip.mpg">MPEG</a>
    <a href="clip.ogm">Ogg</a>
    <a href="clip.avi">AVI</a>
    </nowiki>
=== Show Strawman #6 ===
A single preview image with the show given in 2 different methods.  The first is the show broken up into a series of pieces (which makes it easier to download.)  And the second is the full show in one file
    <nowiki>
    <img src="preview.png" />
    <a href="part-1.mpg">[1]</a>
    <a href="part-2.mpg">[2]</a>
    <a href="part-3.mpg">[3]</a>
    <a href="full.mpg">full</a>
    </nowiki>
=== Show Strawman #7 ===
A single clip with a preview image.  The title of the show is given with an image (and thus the actual machine-readable title is the ''alt attribute'' of the image) and is linked with the main URL for the show.  There's also a link to older episodes of the show.
    <nowiki>
    <a href="..."><img src="the-name-of-the-show-png" alt="The Name of the Show" /></a>
    <a href="episode123-clip.mpeg"><img src="episode123-preview.png" /></a>
    <a href="older-shows">older shows</a>
    </nowiki>
=== Show Strawman #8 ===
A series of clips with preview images.  The title of the show is given with an image (and thus the actual machine-readable title is the ''alt attribute'' of the image) and is linked with the main URL for the show.  There's also a links to older and news episodes of the show.
    <nowiki>
    <a href="..."><img src="the-name-of-the-show-png" alt="The Name of the Show" /></a>
    <a href="episode123-clip.mpeg"><img src="episode123-preview.png" /></a>
    <a href="episode122-clip.mpeg"><img src="episode122-preview.png" /></a>
    <a href="episode121-clip.mpeg"><img src="episode121-preview.png" /></a>
    <a href="episode120-clip.mpeg"><img src="episode120-preview.png" /></a>
    <a href="newer-shows">[next]</a>
    <a href="older-shows">[previous]</a>
    </nowiki>
=== Show Strawman #9 ===
A series of preview images.  The title of the show is given in text.  A link to all the show's files via a torrent.  Other metadata is also typically included too, in plain text; some is shown here.  Also, sometimes metadata is put in the description.
    <nowiki>
    The Name of the Show
    <img src="preview1.png" />
    <img src="preview2.png" />
    <a href="show.torrent">...</a>
    Torrent Info Hash: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    Description: blah blah blah .... here some URLs to previews...
                blah blah blah .... this is 24 fps
                blah blah blah
    Content: tag1, tag2, tag3
    Resolution: 320px x 240px
    Run Time: 24mins 57secs
    Size: 125.42 MB (131,509,108 bytes)
    Type: Movie Clip
    Published/Uploaded By: someone
    <a href="...">Link to page with list of files in torrent</a>
    <a href="...">Link to page with list of people on the torrent</a>
    </nowiki>
=== Show Strawman #10 ===
An embedded object citing a specific plugin, or simply a link to the media itself, as an object parameter. The rest of the parameters include plugin OR media-specific metadata, and any URIs used are usually unique to the media content.
    <nowiki>
    <object
    width='400' height='326' type='application/x-shockwave-flash'
    data='http://video.google.com/googleplayer.swf?docId=3807826142091223684&amp;hl=en'>
    <param name='allowScriptAccess' value='never' />
    <param name='movie'
    value='http://video.google.com/googleplayer.swf?docId=3807826142091223684&amp;hl=en'/>
    <param name='quality' value='best'/>
    <param name='bgcolor' value='#ffffff' />
    <param name='scale' value='noScale' />
    <param name='wmode' value='window'/>
    </object>
    </nowiki>
or:
    <nowiki>
    <embed
    src="http://media.revver.com/qt;sharer=14854/137027.mov"
    pluginspage="http://www.apple.com/quicktime/download/"
    scale="tofit" kioskmode="false"
    qtsrc="http://media.revver.com/qt;sharer=14854/137027.mov"
    cache="false" controller="true" type="video/quicktime" autoplay="true" height="272" width="320">
    </nowiki>
= Current / Previous Standards =


== Still image ==
== Still image ==
Line 13: Line 209:
* [http://archive.dstc.edu.au/RDU/staff/jane-hunter/PNG/paper.html An Indexing and Querying System for Online Images Based on the PNG Format and Embedded Metadata]
* [http://archive.dstc.edu.au/RDU/staff/jane-hunter/PNG/paper.html An Indexing and Querying System for Online Images Based on the PNG Format and Embedded Metadata]
* [http://www.w3.org/TR/photo-rdf/ Describing and retrieving photos using RDF and HTTP]
* [http://www.w3.org/TR/photo-rdf/ Describing and retrieving photos using RDF and HTTP]
* [http://www.pheed.com/pheed/ Pheed RSS extension for photo syndication]


== Audio ==
== Audio Metadata Formats ==


* [http://www.id3.org/ ID3v2]
* [http://www.id3.org/ ID3v2]
Line 28: Line 225:
** Disc Number : Number
** Disc Number : Number
** Kind : Proprietary - could be implimented as MIME type
** Kind : Proprietary - could be implimented as MIME type
** My Rating : Number < 5
** My Rating : Number < 5 (actually an integer from the range 0-100. 1-5 "stars" implemented by incrementing by 20)
** Sample Rate : Number
** Sample Rate : Number
** Size : Number
** Size : Number
Line 36: Line 233:
**Additional metadata used internally by the application : Date Added (Timestamp), Date Modified (Timestamp), Equalizer (foreign ID), Play Count (Number), Grouping (Internal)
**Additional metadata used internally by the application : Date Added (Timestamp), Date Modified (Timestamp), Equalizer (foreign ID), Play Count (Number), Grouping (Internal)
**Noteable absences : Tags, [[rel-license|License]], Copyright year. Also note common complaints about  [http://www.everything2.com/index.pl?node_id=1707402 ID3 and classical music].
**Noteable absences : Tags, [[rel-license|License]], Copyright year. Also note common complaints about  [http://www.everything2.com/index.pl?node_id=1707402 ID3 and classical music].
* [http://www.xspf.org/ XSPF] (see also [http://gonze.com/playlists/playlist-format-survey.html A survey of playlist formats] and [http://www.xspf.org/xspf-v0.html The XSPF Playlist Format, version 0])
** album
** creator
** duration
** info
** title
** trackNum


== Podcasts ==
== Podcasts ==


* '''iTunes podcast:''' http://phobos.apple.com/static/podcast_specifications.pdf ([http://labs.commerce.net/~rohit/How%20To%20Publish%20a%20Podcast%20on%20iTunes%20Music%20Store.html local copy, in HTML], [http://labs.commerce.net/~rohit/iTunesRSS.html updated version from Apple Chapter Tool documentation])
* '''iTunes podcast:''' http://phobos.apple.com/static/podcast_specifications.pdf  
(HTML version of spec: [http://labs.commerce.net/~rohit/How%20To%20Publish%20a%20Podcast%20on%20iTunes%20Music%20Store.html local archive], [http://labs.commerce.net/~rohit/iTunesRSS.html updated version from Apple Chapter Tool Beta docs], [http://phobos.apple.com/static/iTunesRSS.html online copy at Apple])


iTunes release 4.9 was widely heralded as an advance for mainstream acceptance of podcasting. However, while some advocates resist even the fragment of a trademarked name in the label for the phenomenon, the use of "itunes:" in the namespace is one of many design decisions in Apple's original specification that became focal points of debate. While Apple has a tradition of working on breakthrough features very quietly, they have been open to public input after its initial release. Many [http://daringfireball.net/2005/07/podcast_pocket other bloggers] have [http://usefulinc.com/edd/blog/contents/2005/06/28-rss-apple-itunes/read chronicled] [http://www.intertwingly.net/blog/2005/07/05/Insensitive-iTunes some of the feedback], as well as some [http://tantek.com/log/2005/07.html#d10t0130 face-to-face discussions].
iTunes release 4.9 was widely heralded as an advance for mainstream acceptance of podcasting. However, while some advocates resist even the fragment of a trademarked name in the label for the phenomenon, the use of "itunes:" in the namespace is one of many design decisions in Apple's original specification that became focal points of debate. While Apple has a tradition of working on breakthrough features very quietly, they have been open to public input after its initial release. Many [http://daringfireball.net/2005/07/podcast_pocket other bloggers] have [http://usefulinc.com/edd/blog/contents/2005/06/28-rss-apple-itunes/read chronicled] [http://www.intertwingly.net/blog/2005/07/05/Insensitive-iTunes some of the feedback], as well as some [http://tantek.com/log/2005/07.html#d10t0130 face-to-face discussions].
Line 57: Line 263:
# '''Refactored.''' Given the existing core of Microformats, what is the minimal (!) necessary to add on to RelLicense, RelTag, hReview, and so forth? This favors (we'd hope) content ''publishing'' applications: how can the marginal migration costs of adding media be made as painless as possible.
# '''Refactored.''' Given the existing core of Microformats, what is the minimal (!) necessary to add on to RelLicense, RelTag, hReview, and so forth? This favors (we'd hope) content ''publishing'' applications: how can the marginal migration costs of adding media be made as painless as possible.


Mapping the existing specs requires following the data definitions set forth in each specification. In summary:
Mapping the existing specs requires understanding the data definitions set forth in each specification, and finding the optimal equivalents (where available). The following is a partial summary of one possible mapping:
 
==== Comparison Table ====
 
<table border="1" cellpadding="5" cellspacing="0" style="border:1px solid grey;">
    <tr>
        <th>Aspect</th>
        <th>Atom</th>
        <th>iTunes RSS</th>
        <th>Media RSS</th>
        <th>M3U</th>
        <th>RSS 2.0</th>
        <th>Microformat?</th>
    </tr>
    <tr>
        <td style="background-color:darkorange;color:black;font-weight:bold;">Authorship</td>
        <td><ul><li>&lt;atom:author&gt;</li><li>&lt;atom:contributor&gt;</li></ul></td>
        <td><ul><li>&lt;itunes:author&gt;</li><li>&lt;itunes:owner&gt;</li><li>&lt;itunes:name&gt;</li><li>&lt;itunes:email&gt;</li></ul></td>
        <td>&lt;media:credit&gt;</td>
        <td><em>nothing</em></td>
        <td>&lt;copyright&gt; <br /> &lt;author&gt; <br /> &lt;source&gt;</td>
        <td style="background-color:#eeeeee;color:black;"><ul><li>&lt;cite&gt;</li><li>[[hcard|hCard]]</li><li>[[rel-author]]</li><li>[[rev-author]]</li><li>&lt;address&gt;</li></ul><p>need a way of specifying the <em>role</em> of the <em>author</em> or <em>contributor</em>.</p><dl><dt>proposal for role</dt>
          <dd><p>By using class atribute, this allows diferent formating of authors and contributors, also is usable for &lt;cite&gt; and &lt;adress&gt; </p><pre>&lt;div class="author vcard"> ...hCard code here &lt;/div&gt;</pre>


{| border="1" cellpadding="5" cellspacing="0" style="border:1px solid grey;"
-- [[User:Tonydm|tonydm]] 21 Jan 2007
|+ Comparing existing proposals
</dd></dl>
! Aspect !! Apple !! Yahoo! !! Microformat?
    </td>
|-
    </tr>
| '''Categorization'''
    <tr>
|| <itunes:category> <br> <itunes:keywords>  
        <td style="background-color:darkorange;color:black;font-weight:bold;">Categorization</td>
|| @@
        <td>&lt;atom:category&gt;</td>
|| RelTag
        <td>&lt;itunes:category&gt; <br /> &lt;itunes:keywords&gt;</td>
|-
        <td>&lt;media:category&gt;</td>
| '''Rating''' || <itunes:explicit>
        <td><em>nothing</em></td>
|-
        <td>&lt;category&gt;</td>
| '''Description''' ||<itunes:subtitle> <br> <itunes:summary>
        <td style="background-color:#eeeeee;color:black;">[[rel-tag]] - requires a way to do sub categories?</td>
|-
    </tr>
| '''Authorship''' || <itunes:author> <br> <itunes:owner> <br> <itunes:name> <br> <itunes:email>
    <tr>
|-
        <td style="background-color:darkorange;color:black;font-weight:bold;">Description</td>
| '''Metadata''' || <itunes:duration> <br> <itunes:image>
        <td>&lt;atom:summary&gt; <br /> &lt;atom:content&gt;</td>
|-
        <td>&lt;itunes:subtitle&gt; <br /> &lt;itunes:summary&gt;</td>
| '''Licensing''' || <itunes:block> <br> <copyright> <br> <link>
        <td>&lt;media:text&gt;</td>
|-
        <td><em>nothing</em></td>
|}
        <td>&lt;description&gt;</td>
        <td style="background-color:#eeeeee;color:black;">XHTML (e.g. <nowiki><blockquote></nowiki> )</td>
    </tr>
    <tr>
        <td style="background-color:darkorange;color:black;font-weight:bold;">Licensing</td>
        <td>&lt;atom:copyright&gt; <br /> &lt;atom:rights&gt;</td>
        <td>&lt;itunes:block&gt; <br /> &lt;copyright&gt; <br /> &lt;link&gt;</td>
        <td>Not explicitly mentioned</td>
        <td><em>nothing</em></td>
        <td>&lt;ttl&gt;</td>
        <td style="background-color:#eeeeee;color:black;">[[rel-license]]</td>
    </tr>
    <tr>
        <td style="background-color:darkorange;color:black;font-weight:bold;">Metadata</td>
        <td></td>
        <td>&lt;itunes:duration&gt; <br /> &lt;itunes:image&gt;</td>
        <td>&lt;media:thumbnail&gt; <br /> &lt;media:hash&gt; <br /> <pre>&lt;media:content
url="http://www.example.com/movie.mov"
fileSize="12216320"
type="video/quicktime"
isDefault="true"
expression="full"
bitrate="128"
framerate="25"
duration="185"
height="200"
width="300"
/&gt;</pre></td>
        <td><em>nothing</em></td>
        <td></td>
        <td style="background-color:#eeeeee;color:black;"><em>needs a new microformat</em> <br /> e.g., <dl><dt>proposal for duration</dt><dd><pre>&lt;abbr class="duration" title="00:27:35"&gt;
27 minutes, 35 seconds
&lt;/abbr&gt;</pre>
-- [[User:jkinberg|jkinberg]] 11:51, 19 Sept 2005 (PDT))
</dd></dl></td>
    </tr>
    <tr>
        <td style="background-color:darkorange;color:black;font-weight:bold;">Preview</td>
        <td><em>nothing</em></td>
        <td><em>nothing</em></td>
        <td><strong>For Video Media</strong>: <br /> &lt;media:thumbnail&gt; <br /><br /> <strong>For Audio Media</strong>: <br /> <em>nothing</em></td>
        <td><em>nothing</em></td>
        <td><em>nothing</em></td>
        <td style="background-color:#eeeeee;color:black;"><em>need a new microformat for this</em>
<dl><dt>proposal for video preview</dt><dd><pre>&lt;img class="preview" src="..." /&gt;</pre>
-- [[User:Charles|Charles]]
</dd></dl></td>
    </tr>
    <tr>
        <td style="background-color:darkorange;color:black;font-weight:bold;">Rating</td>
        <td><em>nothing</em></td>
        <td>&lt;itunes:explicit&gt;</td>
        <td><s>&lt;media:adult&gt;</s> &lt;media:rating&gt;</td>
        <td><em>nothing</em></td>
        <td>&lt;rating&gt;</td>
        <td style="background-color:#eeeeee;color:black;">[[rel-tag]]</td>
    </tr>
    <tr>
        <td style="background-color:darkorange;color:black;font-weight:bold;">Title</td>
        <td>&lt;atom:title&gt; <br /> &lt;atom:subtitle&gt;</td>
        <td>&lt;itunes:subtitle&gt; <br /> &lt;title&gt;</td>
        <td>&lt;media:title&gt; <br /> &lt;title&gt;</td>
        <td><em>nothing</em></td>
        <td>&lt;title&gt;</td>
        <td style="background-color:#eeeeee;color:black;">
            <ul>
                <li>&lt;h1&gt;...&lt;/h1&gt;</li>
                <li>&lt;h2&gt;...&lt;h2&gt;</li>
                <li>&lt;h3&gt;...&lt;/h3&gt;</li>
                <li>&lt;h4&gt;...&lt;/h4&gt;</li>
                <li>&lt;h5&gt;...&lt;/h5&gt;</li>
                <li>&lt;h6&gt;...&lt;/h6&gt;</li>
                <li>title="..."</li>
                <li>Microformats with class="title"</li>
            </ul>
        </td>
    </tr>
    <tr>
        <td colspan="7">&nbsp;</td>
    </tr>
    <tr>
        <td style="background-color:darkorange;color:black;font-weight:bold;"><em>Show</em> Concept</td>
        <td><ul><li>&lt;atom:feed&gt;</li><li>&lt;link&nbsp;rel="self"&nbsp;href="..."&nbsp;/&gt;</li></ul></td>
        <td><ul><li>&lt;channel&gt;</li><li>&lt;link&gt;</li></ul></td>
        <td><ul><li>&lt;channel&gt;</li><li>&lt;link&gt;</li></ul></td>
        <td>A M3U file.</td>
        <td><ul><li>&lt;channel&gt;</li><li>&lt;link&gt;</li></ul></td>
        <td style="background-color:#eeeeee;color:black;"><em>need a new microformat</em></td>
    </tr>
    <tr>
        <td style="background-color:darkorange;color:black;font-weight:bold;"><em>Episode</em> Concept</td>
        <td><ul><li>&lt;atom:entry&gt;</li><li>&lt;link&nbsp;rel="alternate"&nbsp;href="..."&nbsp;/&gt;</li></ul></td>
        <td><ul><li>&lt;item&gt;</li><li>&lt;link&gt;</li></ul></td>
        <td><ul><li>&lt;item&gt;</li><li>&lt;link&gt;</li></ul></td>
        <td>A single URL line.</td>
        <td><ul><li>&lt;item&gt;</li><li>&lt;link&gt;</li></ul></td>
        <td style="background-color:#eeeeee;color:black;"><em>need a new microformat</em></td>
    </tr>
    <tr>
        <td style="background-color:darkorange;color:black;font-weight:bold;"><em>Media</em> Concept</td>
        <td><ul><li>&lt;atom:link&nbsp;rel="enclosure"&nbsp;href="..."&nbsp;/&gt;</li><li>also... dependent on <em>type</em> of data embedded in or referenced from &lt;atom:content&gt;</li></ul></td>
        <td>&lt;enclosure&gt;</td>
        <td>&lt;media:content&gt;</td>
        <td>Simply the inclusion of a URL on a line.</td>
        <td>&lt;enclosure&gt;</td>
        <td style="background-color:#eeeeee;color:black;">&lt;img&gt; <br /> &lt;a href=""&gt; <br /> &lt;object&gt; <br /> &lt;embed&gt; </td>
    </tr>
</table>


== Video ==
== Video ==
* [http://www.exif.org/Exif2-2.PDF EXIF] - (Yes, the spec deals with video taken by still cameras. -- RyanKing)
* [http://www.exif.org/Exif2-2.PDF EXIF] - (Yes, the spec deals with video taken by still cameras. -- RyanKing)
* [http://www.chiariglione.org/mpeg/standards/mpeg-7/mpeg-7.htm MPEG-7] - MPEG-7, formally named "Multimedia Content Description Interface", is a standard for describing the multimedia content data that supports some degree of interpretation of the information meaning, which can be passed onto, or accessed by, a device or a computer code. (Very powerful, but you have to pay for documentation -- [[User:ChristopherA|ChristopherA]] 01:53, 29 Jun 2005 (PDT))
* [http://www.chiariglione.org/mpeg/standards/mpeg-7/mpeg-7.htm MPEG-7] - MPEG-7, formally named "Multimedia Content Description Interface", is a standard for describing the multimedia content data that supports some degree of interpretation of the information meaning, which can be passed onto, or accessed by, a device or a computer code. (Very powerful, but you have to pay for documentation -- [[User:ChristopherA|ChristopherA]] 01:53, 29 Jun 2005 (PDT))
**An OWL ontology of MPEG-7 is available at http://rhizomik.net/ontologies/2005/03/Mpeg7-2001.owl -tmw
* [http://www.w3.org/AudioVideo/ SMIL] - Synchronized Multimedia Integration Language (SMIL, pronounced "smile") enables simple authoring of interactive audiovisual presentations. (Not exactly video, but has a lot of useful video-related features in it.  -- [[User:ChristopherA|ChristopherA]] 01:55, 29 Jun 2005 (PDT))
* [http://www.w3.org/AudioVideo/ SMIL] - Synchronized Multimedia Integration Language (SMIL, pronounced "smile") enables simple authoring of interactive audiovisual presentations. (Not exactly video, but has a lot of useful video-related features in it.  -- [[User:ChristopherA|ChristopherA]] 01:55, 29 Jun 2005 (PDT))
*  [[video-metadata-model| Video Metadata Model - a starting point]]


== Interactive ==
== Interactive ==
Line 91: Line 428:


== Offline Media ==
== Offline Media ==
(I'm not sure if you want to open the scope up this much.)
* [http://xspf.org XSPF] (media may be either offline or online)


=== Printed Publications (books/magazines) ===
=== Printed Publications (books/magazines) ===
Line 98: Line 435:
=== Movies ===
=== Movies ===
* [http://imdb.com/ IMDB]
* [http://imdb.com/ IMDB]
* [http://amazon.com/ Amazon]
=== Music ===
* [http://freedb.org/ FreeDB]
* [http://musicbrainz.org/ MusicBrainz]
* [http://amazon.com/ Amazon]
== Container Formats ==
The purpose of <strong>container formats</strong> is to allow the muxing of multiple codecs into a single file or stream. For example, if you want audio, video, and text (subtitles) combined into a single stream.
The purpose of the muxing is for synchronization and so that you can <em>stream</em> the file and <em>view it</em> without having to jump around -- seek -- in the file.
Container formats include:
* AVI
* MPEG
* Ogg
* QuickTime
=== Container Format Comparison Table ===
<table border="1" cellpadding="5" cellspacing="0" style="border:1px solid grey;">
    <tr>
        <th>Aspect</th>
        <th>AVI</th>
        <th>MPEG</th>
        <th>Ogg</th>
        <th>QuickTime</th>
        <th>Microformat?</th>
    </tr>
    <tr>
        <td style="background-color:darkorange;color:black;font-weight:bold;">Allows Audio</td>
        <td>Yes</td>
        <td>Yes</td>
        <td>Yes</td>
        <td>Yes</td>
        <td style="background-color:#eeeeee;color:black;"></td>
    </tr>
    <tr>
        <td style="background-color:darkorange;color:black;font-weight:bold;">Allows Video</td>
        <td>Yes</td>
        <td>Yes</td>
        <td>Yes</td>
        <td>Yes</td>
        <td style="background-color:#eeeeee;color:black;"></td>
    </tr>
    <tr>
        <td style="background-color:darkorange;color:black;font-weight:bold;">Allows Text</td>
        <td></td>
        <td></td>
        <td>Yes</td>
        <td>Yes</td>
        <td style="background-color:#eeeeee;color:black;"></td>
    </tr>
    <tr>
        <td style="background-color:darkorange;color:black;font-weight:bold;">Error Detection</td>
        <td></td>
        <td></td>
        <td>Yes</td>
        <td></td>
        <td style="background-color:#eeeeee;color:black;"></td>
    </tr>
</table>
=== Notes for Microformats ===
One of the problems with container formats is that it is often difficult and sometimes impossible to know the disposition of what they contain ahead of time (without reading the file).
For example, Ogg files use the MIME type <em>application/ogg</em> and generally use the extension <em>.ogg</em>.  With only these 2 pieces of information, you cannot tell whether such an Ogg file contains video data or not.
There is room for a microformat to help with this.  Perhaps something like:
<div style="font-family:monospace;white-space:pre;padding:1.5em;background-color:black;color:white;">&lt;a <strong style="background-color:yellow;color:black;">class="moving-image"</strong> type="application/ogg" href="my.ogg"&gt;...&lt;/a&gt;</div>
Although, this can be done in other ways too.  For example, using [http://changelog.ca/log/2005/08/21/rss-disposition-hinting-proposal disposition hinting] one could do something like:
<div style="font-family:monospace;white-space:pre;padding:1.5em;background-color:black;color:white;">&lt;a <strong style="background-color:yellow;color:black;">type="application/ogg;disposition-type:moving-image"</strong> href="my.ogg"&gt;...&lt;/a&gt;</div>
Anothing thing for any Microformat to consider is that it may be the case that the data files that are muxed in the container format may also be offered in non-muxed forms.  This is important when <em>alternatives</em> are offered.
== Audio Formats ==
Audio formats include:
* AAC
* MP3
* PCM WAV
* Speex
* Vorbis
* WMA
=== Audio Format Comparison Table ===
<table border="1" cellpadding="5" cellspacing="0" style="border:1px solid grey;">
    <tr>
        <th>Aspect</th>
        <th>AAC</th>
        <th>MP3</th>
        <th>PCM WAV</th>
        <th>Speex</th>
        <th>Vorbis</th>
        <th>WMA</th>
        <th>Microformat?</th>
    </tr>
    <tr>
        <td style="background-color:darkorange;color:black;font-weight:bold;">Lossless</td>
        <td>No</td>
        <td>No</td>
        <td>Yes</td>
        <td>Yes</td>
        <td>No</td>
        <td></td>
        <td style="background-color:#eeeeee;color:black;"></td>
    </tr>
    <tr>
        <td style="background-color:darkorange;color:black;font-weight:bold;">Lossy</td>
        <td>Yes</td>
        <td>Yes</td>
        <td>No</td>
        <td>No</td>
        <td>Yes</td>
        <td>Yes</td>
        <td style="background-color:#eeeeee;color:black;"></td>
    </tr>
    <tr>
        <td style="background-color:darkorange;color:black;font-weight:bold;">Streamable</td>
        <td>Yes</td>
        <td>Yes</td>
        <td></td>
        <td>Yes</td>
        <td>Yes</td>
        <td>Yes</td>
        <td style="background-color:#eeeeee;color:black;"></td>
    </tr>
</table>
=== Notes for Microformats ===
* Knowing whether audio data is <em>streamable</em> or not can affect <em>pre-fetching</em>.  And can be a metric used when alternatives of the <em>same file</em> is given.
* Having audio data marked as <em>lossy</em> or <em>lossless</em> can be useful when alternatives of the same file is made.
== Playing Formats ==
Playing formats include:
* ASX
* Atom
* Atom+SMIL
* Atomic RSS
* Atomic RSS+SMIL
* Extended M3U
* HTML+Time
* iTunes RSS
* KPL
* M3U
* MAGMA
* Media RSS
* PLS
* RAM
* RSS 2.0
* SMIL
* WAX
* WVX
=== Playing Format Comparison Table ===
<table border="1" cellpadding="5" cellspacing="0" style="border:1px solid grey;">
    <tr>
        <th>Aspect</th>
        <th>ASX</th>
        <th>Atom</th>
        <th>Atom+SMIL</th>
        <th>Atomic&nbsp;RSS</th>
        <th>Atomic&nbsp;RSS+SMIL</th>
        <th>Extended&nbsp;M3U</th>
        <th>HTML+Time</th>
        <th>iTunes&nbsp;RSS</th>
        <th>Media&nbsp;RSS</th>
        <th>M3U</th>
        <th>RSS&nbsp;2.0</th>
        <th>Microformat?</th>
    </tr>
    <tr>
        <td style="background-color:darkorange;color:black;font-weight:bold;"><em>Alternatives</em> Playing</td>
        <td></td>
        <td><em>nothing</em></td>
        <td></td>
        <td></td>
        <td>&lt;smil:switch&gt;</td>
        <td></td>
        <td></td>
        <td><em>nothing</em></td>
        <td>&lt;media:group&gt;</td>
        <td><em>nothing</em></td>
        <td><em>nothing</em></td>
        <td style="background-color:#eeeeee;color:black;"><em>need a new microformat</em></td>
    </tr>
    <tr>
        <td style="background-color:darkorange;color:black;font-weight:bold;"><em>Parallel</em> Playing</td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td style="background-color:#eeeeee;color:black;"><em>need a new microformat</em></td>
    </tr>
    <tr>
        <td style="background-color:darkorange;color:black;font-weight:bold;"><em>Sequence</em> Playing</td>
        <td></td>
        <td>if you consider the Atom file a <em>show</em>, then <em>nothing</em>.  if you consider the Atom file an <em>episode</em>, then the list of &lt;atom:entry&gt;'s provides a sequence.</td>
        <td></td>
        <td></td>
        <td>&lt;smil:seq&gt;</td>
        <td></td>
        <td></td>
        <td>if you consider the RSS file a <em>show</em>, then <em>nothing</em>.  if you consider the RSS file an <em>episode</em>, then the list of &lt;item&gt;'s provides a sequence.</td>
        <td>if you consider the RSS file a <em>show</em>, then <em>nothing</em>.  if you consider the RSS file an <em>episode</em>, then the list of &lt;item&gt;'s provides a sequence.</td>
        <td>if you consider the M3U file a <em>show</em>, then <em>nothing</em>.  if you consider the M3U file an <em>episode</em>, then the URL lines provide a sequence.</td>
        <td>if you consider the RSS file a <em>show</em>, then <em>nothing</em>.  if you consider the RSS file an <em>episode</em>, then the list of &lt;item&gt;'s provides a sequence.</td>
        <td style="background-color:#eeeeee;color:black;"><em>need a new microformat</em></td>
    </tr>
    <tr>
        <td style="background-color:darkorange;color:black;font-weight:bold;">Pre-Fetching</td>
        <td></td>
        <td>&lt;link rel="enclosure" href="..." /&gt;</td>
        <td><ul><li style="white-space:pre;">&lt;link rel="enclosure" href="..." /&gt;</li><li>&lt;smil:prefetch&gt;</li></ul></td>
        <td>&lt;link rel="enclosure" href="..." /&gt;</td>
        <td></td>
        <td></td>
        <td></td>
        <td>&lt;enclosure&gt;</td>
        <td>&lt;media:content&gt;</td>
        <td>The M3U format is just list of URL's, with each URL on its own line.  Pre-Fetching would be accomplished by just added a URL to the list.</td>
        <td>&lt;enclosure&gt;</td>
        <td style="background-color:#eeeeee;color:black;">[[rel-enclosure]]</td>
    </tr>
</table>
== Raster Graphic Formats ==
Raster graphic formats include:
* GIF
* PNG
* JPEG
== Vector Graphic Formats ==
Vector graphic formats include:
* SVG
= Formats &amp; Protocols =
== AAC ==
<strong>AAC</strong> (<strong>Advanced Audio Coding</strong>) is a lossy audio format.  Like MP3, AAC is part of the MPEG standard.  Since April 2003, AAC has become an integral part of Apple's iPod and iTunes products.  This association between AAC and Apple has become so strong among some that AAC is also sometimes call <em>Apple Audio Codec</em>.
References:
* http://en.wikipedia.org/wiki/Advanced_Audio_Coding
== ASF ==
<strong>ASF</strong> is an Audio/Video format.  ASF files that contain only audio data are typically called WMA files.
References:
* http://en.wikipedia.org/wiki/Advanced_Streaming_Format
== Atom ==
<strong>Atom</strong> is a XML-based syndication format that was developed by certain members of the RSS community.
References:
* http://atomenabled.org/developers/syndication/
* [http://www.faqs.org/rfcs/rfc3339.html RFC 3339]
== Atom+SMIL ==
<strong>Atom+SMIL</strong> is Atom with SMIL used in the &lt;atom:content&gt;.
(This was originally used by [http://changelog.ca/ Charles Iliya Krempeaux] for "Internet TV".  Also see <em>Atomic RSS+SMIL</em>)
== Atomic RSS ==
<strong>Atomic RSS</strong> is a syndication format that is RSS with Atom used as an extension module.
References:
* http://www.tbray.org/ongoing/When/200x/2005/07/27/Atomic-RSS
== Atomic RSS+SMIL ==
<strong>Atomic RSS+SMIL</strong> is Atomic RSS with SMIL use in the &lt;atom:content&gt;.
(This was originally used by [http://changelog.ca/ Charles Iliya Krempeaux] for "Internet TV".)
== AVI ==
<strong>AVI</strong> is a container format for Audio/Video formats.
References:
* http://en.wikipedia.org/wiki/AVI
== B4S ==
<strong>B4S</strong> is a playlist format.
References:
* http://gonze.com/playlists/playlist-format-survey.html#B4S
== BitTorrent ==
<strong>BitTorrent</strong> is a P2P protocol.
References:
* http://www.bittorrent.com/protocol.html
* http://en.wikipedia.org/wiki/Bittorrent
* http://wiki.theory.org/BitTorrentFAQ
== Creative Commons RDF ==
References:
* http://gonze.com/playlists/playlist-format-survey.html#Creative
== DAAP ==
References:
* http://gonze.com/playlists/playlist-format-survey.html#DAAP
== Extended M3U ==
References:
* http://gonze.com/playlists/playlist-format-survey.html#M3U
* http://hanna.pyxidis.org/tech/m3u.html
* http://en.wikipedia.org/wiki/M3U
== FLAC ==
Free Lossless Audio Codec (FLAC)
* http://flac.sourceforge.net/
== GIF ==
<strong>GIF</strong> is a raster graphics format and a movie format.
== HTML+Time ==
References:
* http://www.w3.org/TR/NOTE-HTMLplusTIME
* http://gonze.com/playlists/playlist-format-survey.html#HTML
== HTTP ==
References:
* http://www.w3.org/Protocols/
== iTunes Library ==
References:
* http://gonze.com/playlists/playlist-format-survey.html#iTunes
== iTunes RSS ==
References:
* http://www.apple.com/itunes/podcasts/techspecs.html
== JPEG ==
<strong>JPEG</strong> is a raster graphics format.
== Kapsule ==
References:
* http://gonze.com/playlists/playlist-format-survey.html#Kapsule
== KPL ==
<strong>KPL</strong> is a playlist format.
References:
* http://gonze.com/playlists/playlist-format-survey.html#KPL
== M3U ==
<strong>M3U</strong> is a playlist format.
References:
* http://gonze.com/playlists/playlist-format-survey.html#M3U
== MAGMA ==
References:
* http://gonze.com/playlists/playlist-format-survey.html#MAGMA
== Media RSS ==
<strong>Media RSS</strong> is a syndication format that is RSS with the addition of the <em>Media RSS Module</em>.
== MKV/MKA ==
Matroska <strong>MKV/MKA</strong> are video and audio containers, respectively.
* http://www.matroska.org/
== MNG ==
<strong>MNG</strong> is a Video format.
== MP3 ==
<strong>MP3</strong> is an Audio format.
== MPEG ==
<strong>ASF</strong> is an Audio/Video format.
== MusicBrainz ==
References:
* [http://www.MusicBrainz.org MusicBrainz.org]
* [http://wiki.musicbrainz.org MusicBrainz wiki]
* http://gonze.com/playlists/playlist-format-survey.html#musicbrainz
== Ogg ==
<strong>Ogg</strong> is a media container format.
References:
* http://xiph.org/ogg/
* http://en.wikipedia.org/wiki/Ogg
* [http://xiph.org/ogg/doc/rfc3533.txt RFC 3533] - The Ogg Encapsulation Format Version 0
* [http://xiph.org/ogg/doc/rfc3534.txt RFC 3534] - The application/ogg Media Type
== PLS ==
<strong>PLS</strong> is a playlist format.
References:
* http://gonze.com/playlists/playlist-format-survey.html#PLS
* http://en.wikipedia.org/wiki/PLS_(file_format)
== RAM ==
<strong>RAM</strong> is a playlist format.
References:
* http://gonze.com/playlists/playlist-format-survey.html#RAM
== RSS 2.0 ==
<strong>RSS 2.0</strong> is the defacto standard syndication format.
References:
* http://developer.mozilla.org/en/docs/RSS
== RTSP ==
References:
* http://www.rtsp.org/
* [http://www.ietf.org/rfc/rfc1889.txt RFC 1889]
* http://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol
== SMIL ==
References:
* http://www.w3.org/AudioVideo/
== Speex ==
References:
* http://www.speex.org/
== SVG ==
<strong>SVG</strong> is a vector graphics format.
== Theora ==
<strong>Theora</strong> is an Audio/Video format/
References:
* http://www.theora.org/
* http://en.wikipedia.org/wiki/Theora
== Vorbis ==
<strong>Vorbis</strong> is an Audio format.
References:
* http://xiph.org/vorbis/
* http://vorbis.com/
* http://en.wikipedia.org/wiki/Vorbis
== WAX ==
<strong>WAX</strong> is an SGML-based playlist for that looks exactly like ASX and WVX, except that it can only reference to ASF or WMA, but NOT to WMV files.
References:
* http://gonze.com/playlists/playlist-format-survey.html#WAX
== WMA ==
<strong>WMA</strong> is an Audio format.
References:
* http://en.wikipedia.org/wiki/Windows_Media_Audio
== WMV ==
<strong>WMV</strong> is an Audio/Video format.
References:
* http://en.wikipedia.org/wiki/Windows_Media_Video
== WVX ==
<strong>WVX</strong> is an SGML-based playlist format that looks exactly like ASX and WAX, except that it can reference ASF, WMA, and WMV media files.
References:
* http://gonze.com/playlists/playlist-format-survey.html#WVX
= Comments =
* See separate [[media-metadata-issues]] document.
* See separate [[media-info-examples]] document.
= See Also =
* [[video-metadata-models]]

Latest revision as of 04:57, 7 April 2013

Media Metadata Examples

This is an exploratory page to be used for storage of various multimedia data and metadata profiles, formats, and practices currently in use around the web. As this is a very, very early exploration, we should include as many types of multimedia as possible in the opening discussion - but please be sure to place your information in the correct portion of this page.

Purpose of this exploration (or : The Problem)

The purpose of the studies on this page is to determine the feasibility and demand for a flexible, semantic markup format for multimedia related paradigms.

This includes such things as:

  • Providing metadata alongside linked multimedia files.

    Typically, multimedia metadata is stored within the header of the media file itself - which has massive implications for any application where metadata is to be indexed, searched, or made externally accessible. Of course, even if you could easily access the correct portions of a media file remotely, you'd still have to cope with a multitude of open and proprietary metadata formats, each with it's own distinct fieldset, nomenclature and storage method.

  • What is called: Internet TV, IPTV, NewTube, vlogging, vidblogging, vidlogging, vodcasting, etc.
  • What is called: Podcasting, IPradio, etc.

This study aims to make a start at solving this problem.

Contributors

These folks have contributed real-world examples and research to this document, and are interested in helping with a solution.

  • Christopher Allen
  • Dougal Campbell
  • Dr. Ernie
  • Rohit Khare
  • Ryan King
  • Kevin Marks
  • Lisa Rein
  • Mary Hodder
  • Dan Glegg
  • Chris Messina
  • Charles Iliya Krempeaux
  • Thomas Winningham
  • William Sandler

If you contribute new real-world examples or research, and wish to help with a solution, please add your name as well.

Examples on the Web today

Below is a list of strawman models based on real work examples. (Links to actual examples have been omitted since many of them have been found on adult sites, and it is believed that it would be inappropriate to list these here. -- Charles)

Show Strawman #1

Single clip with a preview image. The clip is the full show.

   
    <a href="clip.mpeg"><img src="preview.png" /></a>
    


Show Strawman #2

Single clip with a preview image. The clip is the teaser of the full show. And there is a link that you can go to pay to see the full show.

   
    <a href="teaser.mpeg"><img src="preview.png" /></a>

    <a href="http://example.com/go">Pay to View</a>
    


Show Strawman #3

A show divided up in multiple clips, each with a preview image. Together the clips make up the show.

   
    <a href="clip-1.mpg"><img src="preview-1.png" /></a>

    <a href="clip-2.mpg"><img src="preview-2.png" /></a>

    <a href="clip-3.mpg"><img src="preview-3.png" /></a>
    


Show Strawman #4

A set of teasers for a show. Together they don't make up the full show. And the may or may not overlap in time. There's a "Pay to View" link there too.

   
    <a href="clip-blue.mpg"><img src="preview-blue.png" /></a>

    <a href="clip-red.mpg"><img src="preview-red.png" /></a>

    <a href="clip-green.mpg"><img src="preview-green.png" /></a>


    <a href="http://example.com/go">Pay to View</a>
    


Show Strawman #5

A single clip that comes in different formats. (Could be a teaser, a clip, or a full show.)

   
    <img src="preview.png" />
    <a href="clip.mpg">MPEG</a>
    <a href="clip.ogm">Ogg</a>
    <a href="clip.avi">AVI</a>
    


Show Strawman #6

A single preview image with the show given in 2 different methods. The first is the show broken up into a series of pieces (which makes it easier to download.) And the second is the full show in one file

   
    <img src="preview.png" />

    <a href="part-1.mpg">[1]</a>
    <a href="part-2.mpg">[2]</a>
    <a href="part-3.mpg">[3]</a>

    <a href="full.mpg">full</a>
    


Show Strawman #7

A single clip with a preview image. The title of the show is given with an image (and thus the actual machine-readable title is the alt attribute of the image) and is linked with the main URL for the show. There's also a link to older episodes of the show.

   
    <a href="..."><img src="the-name-of-the-show-png" alt="The Name of the Show" /></a>

    <a href="episode123-clip.mpeg"><img src="episode123-preview.png" /></a>

    <a href="older-shows">older shows</a>
    


Show Strawman #8

A series of clips with preview images. The title of the show is given with an image (and thus the actual machine-readable title is the alt attribute of the image) and is linked with the main URL for the show. There's also a links to older and news episodes of the show.

   
    <a href="..."><img src="the-name-of-the-show-png" alt="The Name of the Show" /></a>

    <a href="episode123-clip.mpeg"><img src="episode123-preview.png" /></a>
    <a href="episode122-clip.mpeg"><img src="episode122-preview.png" /></a>
    <a href="episode121-clip.mpeg"><img src="episode121-preview.png" /></a>
    <a href="episode120-clip.mpeg"><img src="episode120-preview.png" /></a>

    <a href="newer-shows">[next]</a>
    <a href="older-shows">[previous]</a>
    


Show Strawman #9

A series of preview images. The title of the show is given in text. A link to all the show's files via a torrent. Other metadata is also typically included too, in plain text; some is shown here. Also, sometimes metadata is put in the description.

   
    The Name of the Show

    <img src="preview1.png" />
    <img src="preview2.png" />

    <a href="show.torrent">...</a>

    Torrent Info Hash: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

    Description: blah blah blah .... here some URLs to previews...
                 blah blah blah .... this is 24 fps
                 blah blah blah

    Content: tag1, tag2, tag3

    Resolution: 320px x 240px

    Run Time: 24mins 57secs

    Size: 125.42 MB (131,509,108 bytes)

    Type: Movie Clip

    Published/Uploaded By: someone

    <a href="...">Link to page with list of files in torrent</a>
    <a href="...">Link to page with list of people on the torrent</a>
    

Show Strawman #10

An embedded object citing a specific plugin, or simply a link to the media itself, as an object parameter. The rest of the parameters include plugin OR media-specific metadata, and any URIs used are usually unique to the media content.

   
    <object 
    width='400' height='326' type='application/x-shockwave-flash'
    data='http://video.google.com/googleplayer.swf?docId=3807826142091223684&hl=en'>
    <param name='allowScriptAccess' value='never' />
    <param name='movie'
    value='http://video.google.com/googleplayer.swf?docId=3807826142091223684&hl=en'/>
    <param name='quality' value='best'/>
    <param name='bgcolor' value='#ffffff' />
    <param name='scale' value='noScale' />
    <param name='wmode' value='window'/>
    </object>
    

or:

   
    <embed 
    src="http://media.revver.com/qt;sharer=14854/137027.mov"
    pluginspage="http://www.apple.com/quicktime/download/"
    scale="tofit" kioskmode="false" 
    qtsrc="http://media.revver.com/qt;sharer=14854/137027.mov"
    cache="false" controller="true" type="video/quicktime" autoplay="true" height="272" width="320">
    


Current / Previous Standards

Still image

Audio Metadata Formats

  • iTunes
    • Album : String
    • Artist : String
    • Beats Per Minute : Number
    • Bit Rate : Number
    • Comment : Blob
    • Composer : String
    • Genre : String or Foreign ID
    • Disc Number : Number
    • Kind : Proprietary - could be implimented as MIME type
    • My Rating : Number < 5 (actually an integer from the range 0-100. 1-5 "stars" implemented by incrementing by 20)
    • Sample Rate : Number
    • Size : Number
    • Time : Number
    • Track Number : Number
    • Year : Number
    • Additional metadata used internally by the application : Date Added (Timestamp), Date Modified (Timestamp), Equalizer (foreign ID), Play Count (Number), Grouping (Internal)
    • Noteable absences : Tags, License, Copyright year. Also note common complaints about ID3 and classical music.

Podcasts

(HTML version of spec: local archive, updated version from Apple Chapter Tool Beta docs, online copy at Apple)

iTunes release 4.9 was widely heralded as an advance for mainstream acceptance of podcasting. However, while some advocates resist even the fragment of a trademarked name in the label for the phenomenon, the use of "itunes:" in the namespace is one of many design decisions in Apple's original specification that became focal points of debate. While Apple has a tradition of working on breakthrough features very quietly, they have been open to public input after its initial release. Many other bloggers have chronicled some of the feedback, as well as some face-to-face discussions.

A mailing list may be coming soon...

Media RSS has been in the works longer, but doesn't have the overnight-adoption advantage of iTunes. However, it has a much broader ambit, including video; and a much broader community of interest.

A Podcasting Microformat?

The best starting point for understanding these two proposals is W3C's summary table, by Karl Dubost.

There are (at least) two paths to consider when 'porting' these proposals into Microformats:

  1. Standalone. What is the most straightforward rendering of each proposal into XHTML? This keeps the interests of the developers of consuming applications foremost: how can the migration be made as painless as possible?
  2. Refactored. Given the existing core of Microformats, what is the minimal (!) necessary to add on to RelLicense, RelTag, hReview, and so forth? This favors (we'd hope) content publishing applications: how can the marginal migration costs of adding media be made as painless as possible.

Mapping the existing specs requires understanding the data definitions set forth in each specification, and finding the optimal equivalents (where available). The following is a partial summary of one possible mapping:

Comparison Table

Aspect Atom iTunes RSS Media RSS M3U RSS 2.0 Microformat?
Authorship
  • <atom:author>
  • <atom:contributor>
  • <itunes:author>
  • <itunes:owner>
  • <itunes:name>
  • <itunes:email>
<media:credit> nothing <copyright>
<author>
<source>

need a way of specifying the role of the author or contributor.

proposal for role

By using class atribute, this allows diferent formating of authors and contributors, also is usable for <cite> and <adress>

<div class="author vcard"> ...hCard code here </div>

-- tonydm 21 Jan 2007

Categorization <atom:category> <itunes:category>
<itunes:keywords>
<media:category> nothing <category> rel-tag - requires a way to do sub categories?
Description <atom:summary>
<atom:content>
<itunes:subtitle>
<itunes:summary>
<media:text> nothing <description> XHTML (e.g. <blockquote> )
Licensing <atom:copyright>
<atom:rights>
<itunes:block>
<copyright>
<link>
Not explicitly mentioned nothing <ttl> rel-license
Metadata <itunes:duration>
<itunes:image>
<media:thumbnail>
<media:hash>
<media:content
 url="http://www.example.com/movie.mov"
 fileSize="12216320"
 type="video/quicktime"
 isDefault="true"
 expression="full"
 bitrate="128"
 framerate="25"
 duration="185"
 height="200"
 width="300"
/>
nothing needs a new microformat
e.g.,
proposal for duration
<abbr class="duration" title="00:27:35">
27 minutes, 35 seconds
</abbr>

-- jkinberg 11:51, 19 Sept 2005 (PDT))

Preview nothing nothing For Video Media:
<media:thumbnail>

For Audio Media:
nothing
nothing nothing need a new microformat for this
proposal for video preview
<img class="preview" src="..." />

-- Charles

Rating nothing <itunes:explicit> <media:adult> <media:rating> nothing <rating> rel-tag
Title <atom:title>
<atom:subtitle>
<itunes:subtitle>
<title>
<media:title>
<title>
nothing <title>
  • <h1>...</h1>
  • <h2>...<h2>
  • <h3>...</h3>
  • <h4>...</h4>
  • <h5>...</h5>
  • <h6>...</h6>
  • title="..."
  • Microformats with class="title"
 
Show Concept
  • <atom:feed>
  • <link rel="self" href="..." />
  • <channel>
  • <link>
  • <channel>
  • <link>
A M3U file.
  • <channel>
  • <link>
need a new microformat
Episode Concept
  • <atom:entry>
  • <link rel="alternate" href="..." />
  • <item>
  • <link>
  • <item>
  • <link>
A single URL line.
  • <item>
  • <link>
need a new microformat
Media Concept
  • <atom:link rel="enclosure" href="..." />
  • also... dependent on type of data embedded in or referenced from <atom:content>
<enclosure> <media:content> Simply the inclusion of a URL on a line. <enclosure> <img>
<a href="">
<object>
<embed>

Video

  • EXIF - (Yes, the spec deals with video taken by still cameras. -- RyanKing)
  • MPEG-7 - MPEG-7, formally named "Multimedia Content Description Interface", is a standard for describing the multimedia content data that supports some degree of interpretation of the information meaning, which can be passed onto, or accessed by, a device or a computer code. (Very powerful, but you have to pay for documentation -- ChristopherA 01:53, 29 Jun 2005 (PDT))
  • SMIL - Synchronized Multimedia Integration Language (SMIL, pronounced "smile") enables simple authoring of interactive audiovisual presentations. (Not exactly video, but has a lot of useful video-related features in it. -- ChristopherA 01:55, 29 Jun 2005 (PDT))
  • Video Metadata Model - a starting point

Interactive

Offline Media

  • XSPF (media may be either offline or online)

Printed Publications (books/magazines)

Movies

Music

Container Formats

The purpose of container formats is to allow the muxing of multiple codecs into a single file or stream. For example, if you want audio, video, and text (subtitles) combined into a single stream.

The purpose of the muxing is for synchronization and so that you can stream the file and view it without having to jump around -- seek -- in the file.

Container formats include:

  • AVI
  • MPEG
  • Ogg
  • QuickTime


Container Format Comparison Table

Aspect AVI MPEG Ogg QuickTime Microformat?
Allows Audio Yes Yes Yes Yes
Allows Video Yes Yes Yes Yes
Allows Text Yes Yes
Error Detection Yes

Notes for Microformats

One of the problems with container formats is that it is often difficult and sometimes impossible to know the disposition of what they contain ahead of time (without reading the file).

For example, Ogg files use the MIME type application/ogg and generally use the extension .ogg. With only these 2 pieces of information, you cannot tell whether such an Ogg file contains video data or not.

There is room for a microformat to help with this. Perhaps something like:

<a class="moving-image" type="application/ogg" href="my.ogg">...</a>

Although, this can be done in other ways too. For example, using disposition hinting one could do something like:

<a type="application/ogg;disposition-type:moving-image" href="my.ogg">...</a>

Anothing thing for any Microformat to consider is that it may be the case that the data files that are muxed in the container format may also be offered in non-muxed forms. This is important when alternatives are offered.


Audio Formats

Audio formats include:

  • AAC
  • MP3
  • PCM WAV
  • Speex
  • Vorbis
  • WMA


Audio Format Comparison Table

Aspect AAC MP3 PCM WAV Speex Vorbis WMA Microformat?
Lossless No No Yes Yes No
Lossy Yes Yes No No Yes Yes
Streamable Yes Yes Yes Yes Yes

Notes for Microformats

  • Knowing whether audio data is streamable or not can affect pre-fetching. And can be a metric used when alternatives of the same file is given.
  • Having audio data marked as lossy or lossless can be useful when alternatives of the same file is made.


Playing Formats

Playing formats include:

  • ASX
  • Atom
  • Atom+SMIL
  • Atomic RSS
  • Atomic RSS+SMIL
  • Extended M3U
  • HTML+Time
  • iTunes RSS
  • KPL
  • M3U
  • MAGMA
  • Media RSS
  • PLS
  • RAM
  • RSS 2.0
  • SMIL
  • WAX
  • WVX


Playing Format Comparison Table

Aspect ASX Atom Atom+SMIL Atomic RSS Atomic RSS+SMIL Extended M3U HTML+Time iTunes RSS Media RSS M3U RSS 2.0 Microformat?
Alternatives Playing nothing <smil:switch> nothing <media:group> nothing nothing need a new microformat
Parallel Playing need a new microformat
Sequence Playing if you consider the Atom file a show, then nothing. if you consider the Atom file an episode, then the list of <atom:entry>'s provides a sequence. <smil:seq> if you consider the RSS file a show, then nothing. if you consider the RSS file an episode, then the list of <item>'s provides a sequence. if you consider the RSS file a show, then nothing. if you consider the RSS file an episode, then the list of <item>'s provides a sequence. if you consider the M3U file a show, then nothing. if you consider the M3U file an episode, then the URL lines provide a sequence. if you consider the RSS file a show, then nothing. if you consider the RSS file an episode, then the list of <item>'s provides a sequence. need a new microformat
Pre-Fetching <link rel="enclosure" href="..." />
  • <link rel="enclosure" href="..." />
  • <smil:prefetch>
<link rel="enclosure" href="..." /> <enclosure> <media:content> The M3U format is just list of URL's, with each URL on its own line. Pre-Fetching would be accomplished by just added a URL to the list. <enclosure> rel-enclosure

Raster Graphic Formats

Raster graphic formats include:

  • GIF
  • PNG
  • JPEG


Vector Graphic Formats

Vector graphic formats include:

  • SVG

Formats & Protocols

AAC

AAC (Advanced Audio Coding) is a lossy audio format. Like MP3, AAC is part of the MPEG standard. Since April 2003, AAC has become an integral part of Apple's iPod and iTunes products. This association between AAC and Apple has become so strong among some that AAC is also sometimes call Apple Audio Codec.

References:

ASF

ASF is an Audio/Video format. ASF files that contain only audio data are typically called WMA files.

References:

Atom

Atom is a XML-based syndication format that was developed by certain members of the RSS community.

References:

Atom+SMIL

Atom+SMIL is Atom with SMIL used in the <atom:content>.

(This was originally used by Charles Iliya Krempeaux for "Internet TV". Also see Atomic RSS+SMIL)

Atomic RSS

Atomic RSS is a syndication format that is RSS with Atom used as an extension module.

References:

Atomic RSS+SMIL

Atomic RSS+SMIL is Atomic RSS with SMIL use in the <atom:content>.

(This was originally used by Charles Iliya Krempeaux for "Internet TV".)

AVI

AVI is a container format for Audio/Video formats.

References:

B4S

B4S is a playlist format.

References:

BitTorrent

BitTorrent is a P2P protocol.

References:

Creative Commons RDF

References:

DAAP

References:

Extended M3U

References:

FLAC

Free Lossless Audio Codec (FLAC)

GIF

GIF is a raster graphics format and a movie format.

HTML+Time

References:

HTTP

References:

iTunes Library

References:

iTunes RSS

References:

JPEG

JPEG is a raster graphics format.

Kapsule

References:

KPL

KPL is a playlist format.

References:

M3U

M3U is a playlist format.

References:

MAGMA

References:

Media RSS

Media RSS is a syndication format that is RSS with the addition of the Media RSS Module.

MKV/MKA

Matroska MKV/MKA are video and audio containers, respectively.

MNG

MNG is a Video format.

MP3

MP3 is an Audio format.

MPEG

ASF is an Audio/Video format.

MusicBrainz

References:

Ogg

Ogg is a media container format.

References:

PLS

PLS is a playlist format.

References:

RAM

RAM is a playlist format.

References:

RSS 2.0

RSS 2.0 is the defacto standard syndication format.

References:

RTSP

References:

SMIL

References:

Speex

References:

SVG

SVG is a vector graphics format.

Theora

Theora is an Audio/Video format/

References:

Vorbis

Vorbis is an Audio format.

References:

WAX

WAX is an SGML-based playlist for that looks exactly like ASX and WVX, except that it can only reference to ASF or WMA, but NOT to WMV files.

References:

WMA

WMA is an Audio format.

References:

WMV

WMV is an Audio/Video format.

References:

WVX

WVX is an SGML-based playlist format that looks exactly like ASX and WAX, except that it can reference ASF, WMA, and WMV media files.

References:

Comments

See Also