media-metadata-examples: Difference between revisions
(141 intermediate revisions by 30 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 | = Media Metadata Examples = | ||
{{TOC-right}} | |||
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. | |||
== 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&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> | |||
</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 == | ||
* EXIF | * [http://www.exif.org/Exif2-2.PDF EXIF] | ||
* [http://www.tasi.ac.uk/2000/09/rdfmeta/ RDF for self-describing images] | |||
* [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.pheed.com/pheed/ Pheed RSS extension for photo syndication] | |||
== Audio Metadata Formats == | |||
* [http://www.id3.org/ ID3v2] | |||
* 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, [[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 == | |||
* '''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]. | |||
A mailing list may be coming soon... | |||
* '''Media RSS:''' http://search.yahoo.com/mrss | |||
Media RSS has [http://www.ysearchblog.com/archives/000111.html been in the works longer], but doesn't have the overnight-adoption advantage of iTunes. However, it has a much broader ambit, including [http://www.ysearchblog.com/archives/000060.html video]; and a much broader [http://groups.yahoo.com/group/rss-media/ community of interest]. | |||
=== A Podcasting Microformat? === | |||
The best starting point for understanding these two proposals is [http://www.w3.org/2005/07/media-and-rss W3C's summary table, by Karl Dubost]. | |||
There are (at least) two paths to consider when 'porting' these proposals into Microformats: | |||
# '''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? | |||
# '''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 ==== | |||
<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><atom:author></li><li><atom:contributor></li></ul></td> | |||
<td><ul><li><itunes:author></li><li><itunes:owner></li><li><itunes:name></li><li><itunes:email></li></ul></td> | |||
<td><media:credit></td> | |||
<td><em>nothing</em></td> | |||
<td><copyright> <br /> <author> <br /> <source></td> | |||
<td style="background-color:#eeeeee;color:black;"><ul><li><cite></li><li>[[hcard|hCard]]</li><li>[[rel-author]]</li><li>[[rev-author]]</li><li><address></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 <cite> and <adress> </p><pre><div class="author vcard"> ...hCard code here </div></pre> | |||
== Audio == | -- [[User:Tonydm|tonydm]] 21 Jan 2007 | ||
</dd></dl> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td style="background-color:darkorange;color:black;font-weight:bold;">Categorization</td> | |||
<td><atom:category></td> | |||
<td><itunes:category> <br /> <itunes:keywords></td> | |||
<td><media:category></td> | |||
<td><em>nothing</em></td> | |||
<td><category></td> | |||
<td style="background-color:#eeeeee;color:black;">[[rel-tag]] - requires a way to do sub categories?</td> | |||
</tr> | |||
<tr> | |||
<td style="background-color:darkorange;color:black;font-weight:bold;">Description</td> | |||
<td><atom:summary> <br /> <atom:content></td> | |||
<td><itunes:subtitle> <br /> <itunes:summary></td> | |||
<td><media:text></td> | |||
<td><em>nothing</em></td> | |||
<td><description></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><atom:copyright> <br /> <atom:rights></td> | |||
<td><itunes:block> <br /> <copyright> <br /> <link></td> | |||
<td>Not explicitly mentioned</td> | |||
<td><em>nothing</em></td> | |||
<td><ttl></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><itunes:duration> <br /> <itunes:image></td> | |||
<td><media:thumbnail> <br /> <media:hash> <br /> <pre><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" | |||
/></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><abbr class="duration" title="00:27:35"> | |||
27 minutes, 35 seconds | |||
</abbr></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 /> <media:thumbnail> <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><img class="preview" src="..." /></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><itunes:explicit></td> | |||
<td><s><media:adult></s> <media:rating></td> | |||
<td><em>nothing</em></td> | |||
<td><rating></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><atom:title> <br /> <atom:subtitle></td> | |||
<td><itunes:subtitle> <br /> <title></td> | |||
<td><media:title> <br /> <title></td> | |||
<td><em>nothing</em></td> | |||
<td><title></td> | |||
<td style="background-color:#eeeeee;color:black;"> | |||
<ul> | |||
<li><h1>...</h1></li> | |||
<li><h2>...<h2></li> | |||
<li><h3>...</h3></li> | |||
<li><h4>...</h4></li> | |||
<li><h5>...</h5></li> | |||
<li><h6>...</h6></li> | |||
<li>title="..."</li> | |||
<li>Microformats with class="title"</li> | |||
</ul> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td colspan="7"> </td> | |||
</tr> | |||
<tr> | |||
<td style="background-color:darkorange;color:black;font-weight:bold;"><em>Show</em> Concept</td> | |||
<td><ul><li><atom:feed></li><li><link rel="self" href="..." /></li></ul></td> | |||
<td><ul><li><channel></li><li><link></li></ul></td> | |||
<td><ul><li><channel></li><li><link></li></ul></td> | |||
<td>A M3U file.</td> | |||
<td><ul><li><channel></li><li><link></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><atom:entry></li><li><link rel="alternate" href="..." /></li></ul></td> | |||
<td><ul><li><item></li><li><link></li></ul></td> | |||
<td><ul><li><item></li><li><link></li></ul></td> | |||
<td>A single URL line.</td> | |||
<td><ul><li><item></li><li><link></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><atom:link rel="enclosure" href="..." /></li><li>also... dependent on <em>type</em> of data embedded in or referenced from <atom:content></li></ul></td> | |||
<td><enclosure></td> | |||
<td><media:content></td> | |||
<td>Simply the inclusion of a URL on a line.</td> | |||
<td><enclosure></td> | |||
<td style="background-color:#eeeeee;color:black;"><img> <br /> <a href=""> <br /> <object> <br /> <embed> </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.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)) | |||
* [[video-metadata-model| Video Metadata Model - a starting point]] | |||
== Interactive == | == Interactive == | ||
* [http://www.w3.org/Graphics/SVG/ SVG] | |||
* [http://www.w3.org/AudioVideo/ SMIL] | |||
* QTVR? | |||
== Offline Media == | |||
* [http://xspf.org XSPF] (media may be either offline or online) | |||
=== Printed Publications (books/magazines) === | |||
* [http://amazon.com/ Amazon] | |||
=== Movies === | |||
* [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;"><a <strong style="background-color:yellow;color:black;">class="moving-image"</strong> type="application/ogg" href="my.ogg">...</a></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;"><a <strong style="background-color:yellow;color:black;">type="application/ogg;disposition-type:moving-image"</strong> href="my.ogg">...</a></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 RSS</th> | |||
<th>Atomic RSS+SMIL</th> | |||
<th>Extended M3U</th> | |||
<th>HTML+Time</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;"><em>Alternatives</em> Playing</td> | |||
<td></td> | |||
<td><em>nothing</em></td> | |||
<td></td> | |||
<td></td> | |||
<td><smil:switch></td> | |||
<td></td> | |||
<td></td> | |||
<td><em>nothing</em></td> | |||
<td><media:group></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 <atom:entry>'s provides a sequence.</td> | |||
<td></td> | |||
<td></td> | |||
<td><smil:seq></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 <item>'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 <item>'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 <item>'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><link rel="enclosure" href="..." /></td> | |||
<td><ul><li style="white-space:pre;"><link rel="enclosure" href="..." /></li><li><smil:prefetch></li></ul></td> | |||
<td><link rel="enclosure" href="..." /></td> | |||
<td></td> | |||
<td></td> | |||
<td></td> | |||
<td><enclosure></td> | |||
<td><media:content></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><enclosure></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 & 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 <atom:content>. | |||
(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 <atom:content>. | |||
(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
- EXIF
- RDF for self-describing images
- An Indexing and Querying System for Online Images Based on the PNG Format and Embedded Metadata
- Describing and retrieving photos using RDF and HTTP
- Pheed RSS extension for photo syndication
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.
- XSPF (see also A survey of playlist formats and The XSPF Playlist Format, version 0)
- album
- creator
- duration
- info
- title
- trackNum
Podcasts
- iTunes podcast: http://phobos.apple.com/static/podcast_specifications.pdf
(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: http://search.yahoo.com/mrss
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:
- 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?
- 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 |
|
|
<media:credit> | nothing | <copyright> <author> <source> |
need a way of specifying the role of the author or contributor.
|
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.,
|
||
Preview | nothing | nothing | For Video Media: <media:thumbnail> For Audio Media: nothing |
nothing | nothing | need a new microformat for this
|
Rating | nothing | <itunes:explicit> | nothing | <rating> | rel-tag | |
Title | <atom:title> <atom:subtitle> |
<itunes:subtitle> <title> |
<media:title> <title> |
nothing | <title> |
|
Show Concept |
|
|
|
A M3U file. |
|
need a new microformat |
Episode Concept |
|
|
|
A single URL line. |
|
need a new microformat |
Media Concept |
|
<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))
- An OWL ontology of MPEG-7 is available at http://rhizomik.net/ontologies/2005/03/Mpeg7-2001.owl -tmw
- 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:
Although, this can be done in other ways too. For example, using disposition hinting one could do something like:
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="..." /> | <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:
- http://www.bittorrent.com/protocol.html
- http://en.wikipedia.org/wiki/Bittorrent
- http://wiki.theory.org/BitTorrentFAQ
Creative Commons RDF
References:
DAAP
References:
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)
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:
- http://xiph.org/ogg/
- http://en.wikipedia.org/wiki/Ogg
- RFC 3533 - The Ogg Encapsulation Format Version 0
- RFC 3534 - The application/ogg Media Type
PLS
PLS is a playlist format.
References:
- http://gonze.com/playlists/playlist-format-survey.html#PLS
- http://en.wikipedia.org/wiki/PLS_(file_format)
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 separate media-metadata-issues document.
- See separate media-info-examples document.