https://wiki.xiph.org/api.php?action=feedcontributions&user=Aleksandersen&feedformat=atom
XiphWiki - User contributions [en]
2024-03-28T12:42:32Z
User contributions
MediaWiki 1.40.1
https://wiki.xiph.org/index.php?title=M3F&diff=8607
M3F
2008-02-26T11:34:56Z
<p>Aleksandersen: /* Examples */</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML, declaration, and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes.<br />
<br />
<code><pre><?xml encoding="UTF-8" version="1.0" ?></pre></code><br />
<br />
Encoding should default to Unicode/UTF-8. XML version should always use the oldest version were desired features are available, as per the XML specifications. Only when features not pressent in older XML versions are required should a newer version be used.<br />
<br />
In addition the XML attributes ‘base’ and ‘lang’ may be used. Refer to them with an ‘xml:’ prefix if used in any element except the XML declaration. The optional ‘base’ attribute defines the base URI for compleating relative URIs. This value must default to the current Ogg Container. (Basically all other URIs in the format is relative. The attribute is usefull for formats other than Ogg.) The attribute is inherited by all children. The optional ‘lang’ element describes the language of a resource using three letter ''ISO 639-3'' codes. Note that this element should only be used on the ‘resource’ element or in the XML declaration for easier software parsing. The attribute is inherited by all children and have no default value.<br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
====Languages====<br />
The ‘xml:lang’ can be used on any element, and it is inherited from parent elements. In the below example, the first title element inherits ‘eng’ as its language from the ‘resource‘ parent element. A player may present any title, but should prefer the global language (language of the ‘metadata’ element) or the user’s language, as specified by the player. If the player’s interface language (or possibly a dedicated metadata language option) is German (ISO 639-3:deu), than it should assume the user prefers the German title.<br />
<br />
<code><pre><resource […] xml:lang="eng"><br />
<title>The Science of Sleep</title><br />
<title xml:lang="deu">Anleitung zum Träumen</title><br />
<title xml:lang="ita">La science des rêves</title></resource></pre></code><br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘xml:id’ attribute. The ‘xml:id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource xml:id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
Note: It is good practise to include every resource in a stream as a resource element. This makes it easier to link and describe relationships with other resources. (Such as with films and subtitles; and music and albumart.)<br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded the original date of encoding should be preserved, and another date element should be added with the date of re-encoding.<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute must be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, ‘file’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
Note: The software version attribute is important for one reason; It makes it so much easier to find out what files needs to be re-encoded (from a huge collection) if there ever were a bug in a software release.<br />
<br />
=====Describing performers=====<br />
The ‘performers’ element describes by whom the resource was performed. The unrequired ‘sort’ attribute describes the preferred performer for listing. (This sorting attribute was included for backwards compatibility with music library managers/players that lists only one artist's name.)<br />
<br />
<code><pre><performers sort="White Stripes, The"><br />
[…]</performers></pre></code><br />
<br />
The optional ‘person’ child element describes an performer. The ‘name’ child element describes the performer’s name.<br />
<code><pre><performers><br />
<person><br />
<name>Jack White</name></person></performers></pre></code><br />
<br />
======Musicans======<br />
The required ‘musician’ child element has no value. The optional ‘instrument’ child element describes the instrument used by the performer, with one of the following values ‘wind’, ‘lamellophone’, ‘percussion, ‘string’, ‘voice’, ‘electronic’, and ‘keyboard’. Two additional value to this child element is ‘vocal’, and ‘lead-vocal’.<br />
<br />
<code><pre><performers><br />
<person><br />
<name>Jack White</name><br />
<musician /><br />
<instrument>string</instrument><br />
<instrument>keyboard</instrument><br />
<instrument>lead-vocal</instrument></person></performers></pre></code><br />
<br />
Note: When searching for ‘Jack White’ as a guitarist the above example should suffice as a guitar is grouped under string instrument. This should be considered when implementing the above elements in search engines.<br />
<br />
======Actors======<br />
The required ‘actor’ child element’s optional ‘portrait’ attribute describes a fictional name an actors portraits in a movie (his role).<br />
<code><pre><performers><br />
<person><br />
<name>Gael García Bernal</name><br />
<actor portrait="Stéphane Miroux" /></person></performers></pre></code><br />
<br />
======Other and organisations======<br />
Optional person elements can contain ‘director’, ‘produser‘, and ‘writer’.<br />
<code><pre><performers><br />
<person><br />
<name>Michel Gondry</name><br />
<director /></person></performers></pre></code><br />
<br />
The ‘organisation’ child element describes organisations involved in the production of the resource. The optional ‘uri’ attribute describes the organisation using an (unique?) URI.<br />
<code><pre><performers><br />
<organisation uri="http://partizan.com/">Partizan</organisation></performers></pre></code><br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources such as song lyrics and film subtitles in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
Note: When displaying durations in players; it might be better to convert days to hours, and visa versa. This recommendation does not specify in which cases this should be done. Duration and time is presented in different ways according to local variation (and user preference). Though displaying a shortened (lave out the null values) full time according to local variations will provably be the best way. Example: ‘2 days, 23 hours, and 18 seconds.’ OR a converted to days ‘2,96 days.’ Displaying ‘2:23::18:’ (same value as previous examples) may be confusing to users who are not used to this format. Even though it is the shortest way to display the full duration.<br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
==Examples==<br />
<br />
See [[M3F example|Multimedia Metadata Format example page]].<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=8606
M3F
2008-02-26T11:34:42Z
<p>Aleksandersen: Added a link to the example page.</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML, declaration, and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes.<br />
<br />
<code><pre><?xml encoding="UTF-8" version="1.0" ?></pre></code><br />
<br />
Encoding should default to Unicode/UTF-8. XML version should always use the oldest version were desired features are available, as per the XML specifications. Only when features not pressent in older XML versions are required should a newer version be used.<br />
<br />
In addition the XML attributes ‘base’ and ‘lang’ may be used. Refer to them with an ‘xml:’ prefix if used in any element except the XML declaration. The optional ‘base’ attribute defines the base URI for compleating relative URIs. This value must default to the current Ogg Container. (Basically all other URIs in the format is relative. The attribute is usefull for formats other than Ogg.) The attribute is inherited by all children. The optional ‘lang’ element describes the language of a resource using three letter ''ISO 639-3'' codes. Note that this element should only be used on the ‘resource’ element or in the XML declaration for easier software parsing. The attribute is inherited by all children and have no default value.<br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
====Languages====<br />
The ‘xml:lang’ can be used on any element, and it is inherited from parent elements. In the below example, the first title element inherits ‘eng’ as its language from the ‘resource‘ parent element. A player may present any title, but should prefer the global language (language of the ‘metadata’ element) or the user’s language, as specified by the player. If the player’s interface language (or possibly a dedicated metadata language option) is German (ISO 639-3:deu), than it should assume the user prefers the German title.<br />
<br />
<code><pre><resource […] xml:lang="eng"><br />
<title>The Science of Sleep</title><br />
<title xml:lang="deu">Anleitung zum Träumen</title><br />
<title xml:lang="ita">La science des rêves</title></resource></pre></code><br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘xml:id’ attribute. The ‘xml:id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource xml:id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
Note: It is good practise to include every resource in a stream as a resource element. This makes it easier to link and describe relationships with other resources. (Such as with films and subtitles; and music and albumart.)<br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded the original date of encoding should be preserved, and another date element should be added with the date of re-encoding.<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute must be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, ‘file’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
Note: The software version attribute is important for one reason; It makes it so much easier to find out what files needs to be re-encoded (from a huge collection) if there ever were a bug in a software release.<br />
<br />
=====Describing performers=====<br />
The ‘performers’ element describes by whom the resource was performed. The unrequired ‘sort’ attribute describes the preferred performer for listing. (This sorting attribute was included for backwards compatibility with music library managers/players that lists only one artist's name.)<br />
<br />
<code><pre><performers sort="White Stripes, The"><br />
[…]</performers></pre></code><br />
<br />
The optional ‘person’ child element describes an performer. The ‘name’ child element describes the performer’s name.<br />
<code><pre><performers><br />
<person><br />
<name>Jack White</name></person></performers></pre></code><br />
<br />
======Musicans======<br />
The required ‘musician’ child element has no value. The optional ‘instrument’ child element describes the instrument used by the performer, with one of the following values ‘wind’, ‘lamellophone’, ‘percussion, ‘string’, ‘voice’, ‘electronic’, and ‘keyboard’. Two additional value to this child element is ‘vocal’, and ‘lead-vocal’.<br />
<br />
<code><pre><performers><br />
<person><br />
<name>Jack White</name><br />
<musician /><br />
<instrument>string</instrument><br />
<instrument>keyboard</instrument><br />
<instrument>lead-vocal</instrument></person></performers></pre></code><br />
<br />
Note: When searching for ‘Jack White’ as a guitarist the above example should suffice as a guitar is grouped under string instrument. This should be considered when implementing the above elements in search engines.<br />
<br />
======Actors======<br />
The required ‘actor’ child element’s optional ‘portrait’ attribute describes a fictional name an actors portraits in a movie (his role).<br />
<code><pre><performers><br />
<person><br />
<name>Gael García Bernal</name><br />
<actor portrait="Stéphane Miroux" /></person></performers></pre></code><br />
<br />
======Other and organisations======<br />
Optional person elements can contain ‘director’, ‘produser‘, and ‘writer’.<br />
<code><pre><performers><br />
<person><br />
<name>Michel Gondry</name><br />
<director /></person></performers></pre></code><br />
<br />
The ‘organisation’ child element describes organisations involved in the production of the resource. The optional ‘uri’ attribute describes the organisation using an (unique?) URI.<br />
<code><pre><performers><br />
<organisation uri="http://partizan.com/">Partizan</organisation></performers></pre></code><br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources such as song lyrics and film subtitles in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
Note: When displaying durations in players; it might be better to convert days to hours, and visa versa. This recommendation does not specify in which cases this should be done. Duration and time is presented in different ways according to local variation (and user preference). Though displaying a shortened (lave out the null values) full time according to local variations will provably be the best way. Example: ‘2 days, 23 hours, and 18 seconds.’ OR a converted to days ‘2,96 days.’ Displaying ‘2:23::18:’ (same value as previous examples) may be confusing to users who are not used to this format. Even though it is the shortest way to display the full duration.<br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
==Examples==<br />
<br />
See [[M3F example]]Multimedia Metadata Format example page]].<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F_example&diff=8605
M3F example
2008-02-26T11:32:50Z
<p>Aleksandersen: Extending the example.</p>
<hr />
<div>Full example of a [[M3F|Multimedia Metadata Format]] file.<br />
<br />
<code><pre><?xml encoding="UTF-8" version="1.0"?><br />
<metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
<resource oggserial="0×EXAMPLE" type="video/theora" xml:lang="eng" xml:id="example-movie"><br />
<title>The Science of Sleep</title><br />
<title xml:lang="deu">Anleitung zum Träumen</title><br />
<title xml:lang="ita">La science des rêves</title><br />
<tagline>Close your eyes. Open your heart.</tagline><br />
<audience context="artistic" language="mild" sexual="sexact"/><br />
<encoding><br />
<date>2010-01-21T23:41:2+0100</date><br />
<source media="dvd" uri="http://www.imdb.com/title/tt0354899/"/><br />
<software title="Theora Maker" version="1.2" uri="http://example.tld/theoramaker/"/><br />
</encoding><br />
<performers><br />
<person><br />
<name>Gael García Bernal</name><br />
<actor portrait="Stéphane Miroux"/><br />
</person><br />
<person><br />
<name>Charlotte Gainsbourg</name><br />
<actor portrait="Stéphanie"/><br />
</person><br />
<person><br />
<name>Emma de Caunes</name><br />
<actor portrait="Zoé"/><br />
</person><br />
<person><br />
<name>Alain Chabat</name><br />
<actor portrait="Guy"/><br />
</person><br />
<person><br />
<name>Michel Gondry</name><br />
<director/><br />
<writer/><br />
</person><br />
<organisation uri="http://partizan.com/">Partizan</organisation><br />
</performers><br />
<recording><br />
<date>2006-08-26</date><br />
<duration>:01:45:16:</duration><br />
<location>Italy</location><br />
<location>France</location><br />
</recording><br />
<rights><br />
<date>2006-08-26</date><br />
<license>© 2006 Partizan. All distribution rights reserved.</license><br />
</rights><br />
</resource><br />
</metadata></pre></code></div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F_example&diff=8604
M3F example
2008-02-26T11:27:29Z
<p>Aleksandersen: </p>
<hr />
<div>Full example of a [[M3F|Multimedia Metadata Format]] file.<br />
<br />
<code><pre><?xml encoding="UTF-8" version="1.0"?><br />
<metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
<resource oggserial="0×EXAMPLE" type="video/theora" xml:lang="eng" xml:id="example-movie"><br />
<title>The Science of Sleep</title><br />
<title xml:lang="deu">Anleitung zum Träumen</title><br />
<title xml:lang="ita">La science des rêves</title><br />
<audience context="artistic" language="mild" sexual="sexact"/><br />
<encoding><br />
<date>2010-01-21T23:41:2+0100</date><br />
<source media="dvd" uri="http://www.imdb.com/title/tt0354899/"/><br />
<software title="Theora Maker" version="1.2" uri="http://example.tld/theoramaker/"/><br />
</encoding><br />
<performers><br />
<person><br />
<name>Gael García Bernal</name><br />
<actor portrait="Stéphane Miroux"/><br />
</person><br />
<person><br />
<name>Charlotte Gainsbourg</name><br />
<actor portrait="Stéphanie"/><br />
</person><br />
<person><br />
<name>Emma de Caunes</name><br />
<actor portrait="Zoé"/><br />
</person><br />
<person><br />
<name>Alain Chabat</name><br />
<actor portrait="Guy"/><br />
</person><br />
<person><br />
<name>Michel Gondry</name><br />
<director/><br />
<writer/><br />
</person><br />
</performers><br />
</resource><br />
</metadata></pre></code></div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=8603
M3F
2008-02-26T11:11:06Z
<p>Aleksandersen: /* Addressing the media resource */ id attribute changed to xml:id</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML, declaration, and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes.<br />
<br />
<code><pre><?xml encoding="UTF-8" version="1.0" ?></pre></code><br />
<br />
Encoding should default to Unicode/UTF-8. XML version should always use the oldest version were desired features are available, as per the XML specifications. Only when features not pressent in older XML versions are required should a newer version be used.<br />
<br />
In addition the XML attributes ‘base’ and ‘lang’ may be used. Refer to them with an ‘xml:’ prefix if used in any element except the XML declaration. The optional ‘base’ attribute defines the base URI for compleating relative URIs. This value must default to the current Ogg Container. (Basically all other URIs in the format is relative. The attribute is usefull for formats other than Ogg.) The attribute is inherited by all children. The optional ‘lang’ element describes the language of a resource using three letter ''ISO 639-3'' codes. Note that this element should only be used on the ‘resource’ element or in the XML declaration for easier software parsing. The attribute is inherited by all children and have no default value.<br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
====Languages====<br />
The ‘xml:lang’ can be used on any element, and it is inherited from parent elements. In the below example, the first title element inherits ‘eng’ as its language from the ‘resource‘ parent element. A player may present any title, but should prefer the global language (language of the ‘metadata’ element) or the user’s language, as specified by the player. If the player’s interface language (or possibly a dedicated metadata language option) is German (ISO 639-3:deu), than it should assume the user prefers the German title.<br />
<br />
<code><pre><resource […] xml:lang="eng"><br />
<title>The Science of Sleep</title><br />
<title xml:lang="deu">Anleitung zum Träumen</title><br />
<title xml:lang="ita">La science des rêves</title></resource></pre></code><br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘xml:id’ attribute. The ‘xml:id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource xml:id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
Note: It is good practise to include every resource in a stream as a resource element. This makes it easier to link and describe relationships with other resources. (Such as with films and subtitles; and music and albumart.)<br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded the original date of encoding should be preserved, and another date element should be added with the date of re-encoding.<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute must be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, ‘file’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
Note: The software version attribute is important for one reason; It makes it so much easier to find out what files needs to be re-encoded (from a huge collection) if there ever were a bug in a software release.<br />
<br />
=====Describing performers=====<br />
The ‘performers’ element describes by whom the resource was performed. The unrequired ‘sort’ attribute describes the preferred performer for listing. (This sorting attribute was included for backwards compatibility with music library managers/players that lists only one artist's name.)<br />
<br />
<code><pre><performers sort="White Stripes, The"><br />
[…]</performers></pre></code><br />
<br />
The optional ‘person’ child element describes an performer. The ‘name’ child element describes the performer’s name.<br />
<code><pre><performers><br />
<person><br />
<name>Jack White</name></person></performers></pre></code><br />
<br />
======Musicans======<br />
The required ‘musician’ child element has no value. The optional ‘instrument’ child element describes the instrument used by the performer, with one of the following values ‘wind’, ‘lamellophone’, ‘percussion, ‘string’, ‘voice’, ‘electronic’, and ‘keyboard’. Two additional value to this child element is ‘vocal’, and ‘lead-vocal’.<br />
<br />
<code><pre><performers><br />
<person><br />
<name>Jack White</name><br />
<musician /><br />
<instrument>string</instrument><br />
<instrument>keyboard</instrument><br />
<instrument>lead-vocal</instrument></person></performers></pre></code><br />
<br />
Note: When searching for ‘Jack White’ as a guitarist the above example should suffice as a guitar is grouped under string instrument. This should be considered when implementing the above elements in search engines.<br />
<br />
======Actors======<br />
The required ‘actor’ child element’s optional ‘portrait’ attribute describes a fictional name an actors portraits in a movie (his role).<br />
<code><pre><performers><br />
<person><br />
<name>Gael García Bernal</name><br />
<actor portrait="Stéphane Miroux" /></person></performers></pre></code><br />
<br />
======Other and organisations======<br />
Optional person elements can contain ‘director’, ‘produser‘, and ‘writer’.<br />
<code><pre><performers><br />
<person><br />
<name>Michel Gondry</name><br />
<director /></person></performers></pre></code><br />
<br />
The ‘organisation’ child element describes organisations involved in the production of the resource. The optional ‘uri’ attribute describes the organisation using an (unique?) URI.<br />
<code><pre><performers><br />
<organisation uri="http://partizan.com/">Partizan</organisation></performers></pre></code><br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources such as song lyrics and film subtitles in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
Note: When displaying durations in players; it might be better to convert days to hours, and visa versa. This recommendation does not specify in which cases this should be done. Duration and time is presented in different ways according to local variation (and user preference). Though displaying a shortened (lave out the null values) full time according to local variations will provably be the best way. Example: ‘2 days, 23 hours, and 18 seconds.’ OR a converted to days ‘2,96 days.’ Displaying ‘2:23::18:’ (same value as previous examples) may be confusing to users who are not used to this format. Even though it is the shortest way to display the full duration.<br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=8193
M3F
2008-01-26T22:43:06Z
<p>Aleksandersen: /* Describing recordings */ Major changes to duratinon.</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML, declaration, and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes.<br />
<br />
<code><pre><?xml encoding="UTF-8" version="1.0" ?></pre></code><br />
<br />
Encoding should default to Unicode/UTF-8. XML version should always use the oldest version were desired features are available, as per the XML specifications. Only when features not pressent in older XML versions are required should a newer version be used.<br />
<br />
In addition the XML attributes ‘base’ and ‘lang’ may be used. Refer to them with an ‘xml:’ prefix if used in any element except the XML declaration. The optional ‘base’ attribute defines the base URI for compleating relative URIs. This value must default to the current Ogg Container. (Basically all other URIs in the format is relative. The attribute is usefull for formats other than Ogg.) The attribute is inherited by all children. The optional ‘lang’ element describes the language of a resource using three letter ''ISO 639-3'' codes. Note that this element should only be used on the ‘resource’ element or in the XML declaration for easier software parsing. The attribute is inherited by all children and have no default value.<br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
====Languages====<br />
The ‘xml:lang’ can be used on any element, and it is inherited from parent elements. In the below example, the first title element inherits ‘eng’ as its language from the ‘resource‘ parent element. A player may present any title, but should prefer the global language (language of the ‘metadata’ element) or the user’s language, as specified by the player. If the player’s interface language (or possibly a dedicated metadata language option) is German (ISO 639-3:deu), than it should assume the user prefers the German title.<br />
<br />
<code><pre><resource […] xml:lang="eng"><br />
<title>The Science of Sleep</title><br />
<title xml:lang="deu">Anleitung zum Träumen</title><br />
<title xml:lang="ita">La science des rêves</title></resource></pre></code><br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
Note: It is good practise to include every resource in a stream as a resource element. This makes it easier to link and describe relationships with other resources. (Such as with films and subtitles; and music and albumart.)<br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded the original date of encoding should be preserved, and another date element should be added with the date of re-encoding.<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute must be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, ‘file’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
Note: The software version attribute is important for one reason; It makes it so much easier to find out what files needs to be re-encoded (from a huge collection) if there ever were a bug in a software release.<br />
<br />
=====Describing performers=====<br />
The ‘performers’ element describes by whom the resource was performed. The unrequired ‘sort’ attribute describes the preferred performer for listing. (This sorting attribute was included for backwards compatibility with music library managers/players that lists only one artist's name.)<br />
<br />
<code><pre><performers sort="White Stripes, The"><br />
[…]</performers></pre></code><br />
<br />
The optional ‘person’ child element describes an performer. The ‘name’ child element describes the performer’s name.<br />
<code><pre><performers><br />
<person><br />
<name>Jack White</name></person></performers></pre></code><br />
<br />
======Musicans======<br />
The required ‘musician’ child element has no value. The optional ‘instrument’ child element describes the instrument used by the performer, with one of the following values ‘wind’, ‘lamellophone’, ‘percussion, ‘string’, ‘voice’, ‘electronic’, and ‘keyboard’. Two additional value to this child element is ‘vocal’, and ‘lead-vocal’.<br />
<br />
<code><pre><performers><br />
<person><br />
<name>Jack White</name><br />
<musician /><br />
<instrument>string</instrument><br />
<instrument>keyboard</instrument><br />
<instrument>lead-vocal</instrument></person></performers></pre></code><br />
<br />
Note: When searching for ‘Jack White’ as a guitarist the above example should suffice as a guitar is grouped under string instrument. This should be considered when implementing the above elements in search engines.<br />
<br />
======Actors======<br />
The required ‘actor’ child element’s optional ‘portrait’ attribute describes a fictional name an actors portraits in a movie (his role).<br />
<code><pre><performers><br />
<person><br />
<name>Gael García Bernal</name><br />
<actor portrait="Stéphane Miroux" /></person></performers></pre></code><br />
<br />
======Other and organisations======<br />
Optional person elements can contain ‘director’, ‘produser‘, and ‘writer’.<br />
<code><pre><performers><br />
<person><br />
<name>Michel Gondry</name><br />
<director /></person></performers></pre></code><br />
<br />
The ‘organisation’ child element describes organisations involved in the production of the resource. The optional ‘uri’ attribute describes the organisation using an (unique?) URI.<br />
<code><pre><performers><br />
<organisation uri="http://partizan.com/">Partizan</organisation></performers></pre></code><br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources such as song lyrics and film subtitles in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
Note: When displaying durations in players; it might be better to convert days to hours, and visa versa. This recommendation does not specify in which cases this should be done. Duration and time is presented in different ways according to local variation (and user preference). Though displaying a shortened (lave out the null values) full time according to local variations will provably be the best way. Example: ‘2 days, 23 hours, and 18 seconds.’ OR a converted to days ‘2,96 days.’ Displaying ‘2:23::18:’ (same value as previous examples) may be confusing to users who are not used to this format. Even though it is the shortest way to display the full duration.<br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=8192
M3F
2008-01-26T22:16:29Z
<p>Aleksandersen: /* Describing titles, subtitles, and taglines */</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML, declaration, and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes.<br />
<br />
<code><pre><?xml encoding="UTF-8" version="1.0" ?></pre></code><br />
<br />
Encoding should default to Unicode/UTF-8. XML version should always use the oldest version were desired features are available, as per the XML specifications. Only when features not pressent in older XML versions are required should a newer version be used.<br />
<br />
In addition the XML attributes ‘base’ and ‘lang’ may be used. Refer to them with an ‘xml:’ prefix if used in any element except the XML declaration. The optional ‘base’ attribute defines the base URI for compleating relative URIs. This value must default to the current Ogg Container. (Basically all other URIs in the format is relative. The attribute is usefull for formats other than Ogg.) The attribute is inherited by all children. The optional ‘lang’ element describes the language of a resource using three letter ''ISO 639-3'' codes. Note that this element should only be used on the ‘resource’ element or in the XML declaration for easier software parsing. The attribute is inherited by all children and have no default value.<br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
====Languages====<br />
The ‘xml:lang’ can be used on any element, and it is inherited from parent elements. In the below example, the first title element inherits ‘eng’ as its language from the ‘resource‘ parent element. A player may present any title, but should prefer the global language (language of the ‘metadata’ element) or the user’s language, as specified by the player. If the player’s interface language (or possibly a dedicated metadata language option) is German (ISO 639-3:deu), than it should assume the user prefers the German title.<br />
<br />
<code><pre><resource […] xml:lang="eng"><br />
<title>The Science of Sleep</title><br />
<title xml:lang="deu">Anleitung zum Träumen</title><br />
<title xml:lang="ita">La science des rêves</title></resource></pre></code><br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
Note: It is good practise to include every resource in a stream as a resource element. This makes it easier to link and describe relationships with other resources. (Such as with films and subtitles; and music and albumart.)<br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded the original date of encoding should be preserved, and another date element should be added with the date of re-encoding.<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute must be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, ‘file’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
Note: The software version attribute is important for one reason; It makes it so much easier to find out what files needs to be re-encoded (from a huge collection) if there ever were a bug in a software release.<br />
<br />
=====Describing performers=====<br />
The ‘performers’ element describes by whom the resource was performed. The unrequired ‘sort’ attribute describes the preferred performer for listing. (This sorting attribute was included for backwards compatibility with music library managers/players that lists only one artist's name.)<br />
<br />
<code><pre><performers sort="White Stripes, The"><br />
[…]</performers></pre></code><br />
<br />
The optional ‘person’ child element describes an performer. The ‘name’ child element describes the performer’s name.<br />
<code><pre><performers><br />
<person><br />
<name>Jack White</name></person></performers></pre></code><br />
<br />
======Musicans======<br />
The required ‘musician’ child element has no value. The optional ‘instrument’ child element describes the instrument used by the performer, with one of the following values ‘wind’, ‘lamellophone’, ‘percussion, ‘string’, ‘voice’, ‘electronic’, and ‘keyboard’. Two additional value to this child element is ‘vocal’, and ‘lead-vocal’.<br />
<br />
<code><pre><performers><br />
<person><br />
<name>Jack White</name><br />
<musician /><br />
<instrument>string</instrument><br />
<instrument>keyboard</instrument><br />
<instrument>lead-vocal</instrument></person></performers></pre></code><br />
<br />
Note: When searching for ‘Jack White’ as a guitarist the above example should suffice as a guitar is grouped under string instrument. This should be considered when implementing the above elements in search engines.<br />
<br />
======Actors======<br />
The required ‘actor’ child element’s optional ‘portrait’ attribute describes a fictional name an actors portraits in a movie (his role).<br />
<code><pre><performers><br />
<person><br />
<name>Gael García Bernal</name><br />
<actor portrait="Stéphane Miroux" /></person></performers></pre></code><br />
<br />
======Other and organisations======<br />
Optional person elements can contain ‘director’, ‘produser‘, and ‘writer’.<br />
<code><pre><performers><br />
<person><br />
<name>Michel Gondry</name><br />
<director /></person></performers></pre></code><br />
<br />
The ‘organisation’ child element describes organisations involved in the production of the resource. The optional ‘uri’ attribute describes the organisation using an (unique?) URI.<br />
<code><pre><performers><br />
<organisation uri="http://partizan.com/">Partizan</organisation></performers></pre></code><br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources such as song lyrics and film subtitles in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=8191
M3F
2008-01-26T22:12:17Z
<p>Aleksandersen: /* Describing performers */</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML, declaration, and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes.<br />
<br />
<code><pre><?xml encoding="UTF-8" version="1.0" ?></pre></code><br />
<br />
Encoding should default to Unicode/UTF-8. XML version should always use the oldest version were desired features are available, as per the XML specifications. Only when features not pressent in older XML versions are required should a newer version be used.<br />
<br />
In addition the XML attributes ‘base’ and ‘lang’ may be used. Refer to them with an ‘xml:’ prefix if used in any element except the XML declaration. The optional ‘base’ attribute defines the base URI for compleating relative URIs. This value must default to the current Ogg Container. (Basically all other URIs in the format is relative. The attribute is usefull for formats other than Ogg.) The attribute is inherited by all children. The optional ‘lang’ element describes the language of a resource using three letter ''ISO 639-3'' codes. Note that this element should only be used on the ‘resource’ element or in the XML declaration for easier software parsing. The attribute is inherited by all children and have no default value.<br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
====Languages====<br />
The ‘xml:lang’ can be used on any element, and it is inherited from parent elements. In the below example, the first title element inherits ‘eng’ as its language from the ‘resource‘ parent element. A player may present any title, but should prefer the global language (language of the ‘metadata’ element) or the user’s language, as specified by the player. If the player’s interface language (or possibly a dedicated metadata language option) is German (ISO 639-3:deu), than it should assume the user prefers the German title.<br />
<br />
<code><pre><resource […] xml:lang="eng"><br />
<title>The Science of Sleep</title><br />
<title xml:lang="deu">Anleitung zum Träumen</title><br />
<title xml:lang="ita">La science des rêves</title></resource></pre></code><br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
Note: It is good practise to include every resource in a stream as a resource element. This makes it easier to link and describe relationships with other resources. (Such as with films and subtitles; and music and albumart.)<br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded the original date of encoding should be preserved, and another date element should be added with the date of re-encoding.<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute must be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, ‘file’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
Note: The software version attribute is important for one reason; It makes it so much easier to find out what files needs to be re-encoded (from a huge collection) if there ever were a bug in a software release.<br />
<br />
=====Describing performers=====<br />
The ‘performers’ element describes by whom the resource was performed. The unrequired ‘sort’ attribute describes the preferred performer for listing. (This sorting attribute was included for backwards compatibility with music library managers/players that lists only one artist's name.)<br />
<br />
<code><pre><performers sort="White Stripes, The"><br />
[…]</performers></pre></code><br />
<br />
The optional ‘person’ child element describes an performer. The ‘name’ child element describes the performer’s name.<br />
<code><pre><performers><br />
<person><br />
<name>Jack White</name></person></performers></pre></code><br />
<br />
======Musicans======<br />
The required ‘musician’ child element has no value. The optional ‘instrument’ child element describes the instrument used by the performer, with one of the following values ‘wind’, ‘lamellophone’, ‘percussion, ‘string’, ‘voice’, ‘electronic’, and ‘keyboard’. Two additional value to this child element is ‘vocal’, and ‘lead-vocal’.<br />
<br />
<code><pre><performers><br />
<person><br />
<name>Jack White</name><br />
<musician /><br />
<instrument>string</instrument><br />
<instrument>keyboard</instrument><br />
<instrument>lead-vocal</instrument></person></performers></pre></code><br />
<br />
Note: When searching for ‘Jack White’ as a guitarist the above example should suffice as a guitar is grouped under string instrument. This should be considered when implementing the above elements in search engines.<br />
<br />
======Actors======<br />
The required ‘actor’ child element’s optional ‘portrait’ attribute describes a fictional name an actors portraits in a movie (his role).<br />
<code><pre><performers><br />
<person><br />
<name>Gael García Bernal</name><br />
<actor portrait="Stéphane Miroux" /></person></performers></pre></code><br />
<br />
======Other and organisations======<br />
Optional person elements can contain ‘director’, ‘produser‘, and ‘writer’.<br />
<code><pre><performers><br />
<person><br />
<name>Michel Gondry</name><br />
<director /></person></performers></pre></code><br />
<br />
The ‘organisation’ child element describes organisations involved in the production of the resource. The optional ‘uri’ attribute describes the organisation using an (unique?) URI.<br />
<code><pre><performers><br />
<organisation uri="http://partizan.com/">Partizan</organisation></performers></pre></code><br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources such as song lyrics and film subtitles in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=8190
M3F
2008-01-26T22:04:49Z
<p>Aleksandersen: /* Describing performers */</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML, declaration, and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes.<br />
<br />
<code><pre><?xml encoding="UTF-8" version="1.0" ?></pre></code><br />
<br />
Encoding should default to Unicode/UTF-8. XML version should always use the oldest version were desired features are available, as per the XML specifications. Only when features not pressent in older XML versions are required should a newer version be used.<br />
<br />
In addition the XML attributes ‘base’ and ‘lang’ may be used. Refer to them with an ‘xml:’ prefix if used in any element except the XML declaration. The optional ‘base’ attribute defines the base URI for compleating relative URIs. This value must default to the current Ogg Container. (Basically all other URIs in the format is relative. The attribute is usefull for formats other than Ogg.) The attribute is inherited by all children. The optional ‘lang’ element describes the language of a resource using three letter ''ISO 639-3'' codes. Note that this element should only be used on the ‘resource’ element or in the XML declaration for easier software parsing. The attribute is inherited by all children and have no default value.<br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
====Languages====<br />
The ‘xml:lang’ can be used on any element, and it is inherited from parent elements. In the below example, the first title element inherits ‘eng’ as its language from the ‘resource‘ parent element. A player may present any title, but should prefer the global language (language of the ‘metadata’ element) or the user’s language, as specified by the player. If the player’s interface language (or possibly a dedicated metadata language option) is German (ISO 639-3:deu), than it should assume the user prefers the German title.<br />
<br />
<code><pre><resource […] xml:lang="eng"><br />
<title>The Science of Sleep</title><br />
<title xml:lang="deu">Anleitung zum Träumen</title><br />
<title xml:lang="ita">La science des rêves</title></resource></pre></code><br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
Note: It is good practise to include every resource in a stream as a resource element. This makes it easier to link and describe relationships with other resources. (Such as with films and subtitles; and music and albumart.)<br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded the original date of encoding should be preserved, and another date element should be added with the date of re-encoding.<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute must be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, ‘file’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
Note: The software version attribute is important for one reason; It makes it so much easier to find out what files needs to be re-encoded (from a huge collection) if there ever were a bug in a software release.<br />
<br />
=====Describing performers=====<br />
The ‘performers’ element describes by whom the resource was performed. The unrequired ‘sort’ attribute describes the preferred performer for listing. (This sorting attribute was included for backwards compatibility with music library managers/players that lists only one artist's name.)<br />
<br />
<code><pre><performers sort="White Stripes, The"><br />
[…]</performers></pre></code><br />
<br />
The optional ‘person’ child element describes an performer. The ‘name’ child element describes the performer’s name.<br />
<code><pre><performers><br />
<person><br />
<name>Jack White</name></person></performers></pre></code><br />
<br />
======Musicans======<br />
The required ‘musician’ child element has no value. The optional ‘instrument’ child element describes the instrument used by the performer, with one of the following values ‘wind’, ‘lamellophone’, ‘percussion, ‘string’, ‘voice’, ‘electronic’, and ‘keyboard’. Two additional value to this child element is ‘vocal’, and ‘lead-vocal’.<br />
<br />
<code><pre><performers><br />
<person><br />
<name>Jack White</name><br />
<musician /><br />
<instrument>string</instrument><br />
<instrument>keyboard</instrument><br />
<instrument>lead-vocal</instrument></person></performers></pre></code><br />
<br />
Note: When searching for ‘Jack White’ as a guitarist the above example should suffice as a guitar is grouped under string instrument. This should be considered when implementing the above elements in search engines.<br />
<br />
======Actors======<br />
The required ‘actor’ child element’s optional ‘portrait’ attribute describes a fictional name an actors portraits in a movie (his role).<br />
<code><pre><performers><br />
<person><br />
<name>Gael García Bernal</name><br />
<actor portrait="Stéphane Miroux" /></person></performers></pre></code><br />
<br />
======Other and organisations======<br />
The optional ‘role’ attribute is a space separated list of roles in films with one or more of the following values ‘actor’, ‘director’, and ‘producer’. '''(NEEDS WORK)'''. The optional ‘as’ attribute describes the name of the character as whom the performer played in a film.<br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources such as song lyrics and film subtitles in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=8189
M3F
2008-01-26T22:03:56Z
<p>Aleksandersen: /* Describing performers */</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML, declaration, and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes.<br />
<br />
<code><pre><?xml encoding="UTF-8" version="1.0" ?></pre></code><br />
<br />
Encoding should default to Unicode/UTF-8. XML version should always use the oldest version were desired features are available, as per the XML specifications. Only when features not pressent in older XML versions are required should a newer version be used.<br />
<br />
In addition the XML attributes ‘base’ and ‘lang’ may be used. Refer to them with an ‘xml:’ prefix if used in any element except the XML declaration. The optional ‘base’ attribute defines the base URI for compleating relative URIs. This value must default to the current Ogg Container. (Basically all other URIs in the format is relative. The attribute is usefull for formats other than Ogg.) The attribute is inherited by all children. The optional ‘lang’ element describes the language of a resource using three letter ''ISO 639-3'' codes. Note that this element should only be used on the ‘resource’ element or in the XML declaration for easier software parsing. The attribute is inherited by all children and have no default value.<br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
====Languages====<br />
The ‘xml:lang’ can be used on any element, and it is inherited from parent elements. In the below example, the first title element inherits ‘eng’ as its language from the ‘resource‘ parent element. A player may present any title, but should prefer the global language (language of the ‘metadata’ element) or the user’s language, as specified by the player. If the player’s interface language (or possibly a dedicated metadata language option) is German (ISO 639-3:deu), than it should assume the user prefers the German title.<br />
<br />
<code><pre><resource […] xml:lang="eng"><br />
<title>The Science of Sleep</title><br />
<title xml:lang="deu">Anleitung zum Träumen</title><br />
<title xml:lang="ita">La science des rêves</title></resource></pre></code><br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
Note: It is good practise to include every resource in a stream as a resource element. This makes it easier to link and describe relationships with other resources. (Such as with films and subtitles; and music and albumart.)<br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded the original date of encoding should be preserved, and another date element should be added with the date of re-encoding.<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute must be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, ‘file’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
Note: The software version attribute is important for one reason; It makes it so much easier to find out what files needs to be re-encoded (from a huge collection) if there ever were a bug in a software release.<br />
<br />
=====Describing performers=====<br />
The ‘performers’ element describes by whom the resource was performed. The unrequired ‘sort’ attribute describes the preferred performer for listing. (This sorting attribute was included for backwards compatibility with music library managers/players that lists only one artist's name.)<br />
<br />
<code><pre><performers sort="White Stripes, The"><br />
[…]</performers></pre></code><br />
<br />
The optional ‘person’ element describes an performer. The ‘name’ child element describes the performer’s name.<br />
<code><pre><performers><br />
<person><br />
<name>Jack White</name></person></pre></code><br />
<br />
======Musicans======<br />
The required ‘musician’ child element has no value. The optional ‘instrument’ child element describes the instrument used by the performer, with one of the following values ‘wind’, ‘lamellophone’, ‘percussion, ‘string’, ‘voice’, ‘electronic’, and ‘keyboard’. Two additional value to this child element is ‘vocal’, and ‘lead-vocal’.<br />
<br />
<code><pre><performers><br />
<person><br />
<name>Jack White</name><br />
<musician /><br />
<instrument>string</instrument><br />
<instrument>keyboard</instrument><br />
<instrument>lead-vocal</instrument></person></pre></code><br />
<br />
Note: When searching for ‘Jack White’ as a guitarist the above example should suffice as a guitar is grouped under string instrument. This should be considered when implementing the above elements in search engines.<br />
<br />
======Actors======<br />
The required ‘actor’ child element’s optional ‘portrait’ attribute describes a fictional name an actors portraits in a movie (his role).<br />
<code><pre><performers><br />
<person><br />
<name>Gael García Bernal</name><br />
<actor portrait="Stéphane Miroux" /></person></pre></code><br />
<br />
======Other and organisations======<br />
The optional ‘role’ attribute is a space separated list of roles in films with one or more of the following values ‘actor’, ‘director’, and ‘producer’. '''(NEEDS WORK)'''. The optional ‘as’ attribute describes the name of the character as whom the performer played in a film.<br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources such as song lyrics and film subtitles in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=8188
M3F
2008-01-26T22:02:41Z
<p>Aleksandersen: /* Actors */</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML, declaration, and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes.<br />
<br />
<code><pre><?xml encoding="UTF-8" version="1.0" ?></pre></code><br />
<br />
Encoding should default to Unicode/UTF-8. XML version should always use the oldest version were desired features are available, as per the XML specifications. Only when features not pressent in older XML versions are required should a newer version be used.<br />
<br />
In addition the XML attributes ‘base’ and ‘lang’ may be used. Refer to them with an ‘xml:’ prefix if used in any element except the XML declaration. The optional ‘base’ attribute defines the base URI for compleating relative URIs. This value must default to the current Ogg Container. (Basically all other URIs in the format is relative. The attribute is usefull for formats other than Ogg.) The attribute is inherited by all children. The optional ‘lang’ element describes the language of a resource using three letter ''ISO 639-3'' codes. Note that this element should only be used on the ‘resource’ element or in the XML declaration for easier software parsing. The attribute is inherited by all children and have no default value.<br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
====Languages====<br />
The ‘xml:lang’ can be used on any element, and it is inherited from parent elements. In the below example, the first title element inherits ‘eng’ as its language from the ‘resource‘ parent element. A player may present any title, but should prefer the global language (language of the ‘metadata’ element) or the user’s language, as specified by the player. If the player’s interface language (or possibly a dedicated metadata language option) is German (ISO 639-3:deu), than it should assume the user prefers the German title.<br />
<br />
<code><pre><resource […] xml:lang="eng"><br />
<title>The Science of Sleep</title><br />
<title xml:lang="deu">Anleitung zum Träumen</title><br />
<title xml:lang="ita">La science des rêves</title></resource></pre></code><br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
Note: It is good practise to include every resource in a stream as a resource element. This makes it easier to link and describe relationships with other resources. (Such as with films and subtitles; and music and albumart.)<br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded the original date of encoding should be preserved, and another date element should be added with the date of re-encoding.<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute must be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, ‘file’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
Note: The software version attribute is important for one reason; It makes it so much easier to find out what files needs to be re-encoded (from a huge collection) if there ever were a bug in a software release.<br />
<br />
=====Describing performers=====<br />
The ‘performers’ element describes by whom the resource was performed. The unrequired ‘sort’ attribute describes the preferred performer for listing. (This sorting attribute was included for backwards compatibility with music library managers/players that lists only one artist's name.)<br />
<br />
<code><pre><performers sort="White Stripes, The"><br />
[…]</performers></pre></code><br />
<br />
The optional ‘person’ element describes an performer. The ‘name’ child element describes the performer’s name.<br />
<code><pre><person><br />
<name>Jack White</name></person></pre></code><br />
<br />
======Musicans======<br />
The required ‘musician’ child element has no value. The optional ‘instrument’ child element describes the instrument used by the performer, with one of the following values ‘wind’, ‘lamellophone’, ‘percussion, ‘string’, ‘voice’, ‘electronic’, and ‘keyboard’. Two additional value to this child element is ‘vocal’, and ‘lead-vocal’.<br />
<br />
<code><pre><person><br />
<name>Jack White</name><br />
<musician /><br />
<instrument>string</instrument><br />
<instrument>keyboard</instrument><br />
<instrument>lead-vocal</instrument></person></pre></code><br />
<br />
Note: When searching for ‘Jack White’ as a guitarist the above example should suffice as a guitar is grouped under string instrument. This should be considered when implementing the above elements in search engines.<br />
<br />
======Actors======<br />
The required ‘actor’ child element’s optional ‘portrait’ attribute describes a fictional name an actors portraits in a movie (his role).<br />
<code><pre><person><br />
<name>Gael García Bernal</name><br />
<actor portrait="Stéphane Miroux" /></person></pre></code><br />
<br />
======Other and organisations======<br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources such as song lyrics and film subtitles in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=8187
M3F
2008-01-26T22:01:43Z
<p>Aleksandersen: /* Describing performers */</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML, declaration, and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes.<br />
<br />
<code><pre><?xml encoding="UTF-8" version="1.0" ?></pre></code><br />
<br />
Encoding should default to Unicode/UTF-8. XML version should always use the oldest version were desired features are available, as per the XML specifications. Only when features not pressent in older XML versions are required should a newer version be used.<br />
<br />
In addition the XML attributes ‘base’ and ‘lang’ may be used. Refer to them with an ‘xml:’ prefix if used in any element except the XML declaration. The optional ‘base’ attribute defines the base URI for compleating relative URIs. This value must default to the current Ogg Container. (Basically all other URIs in the format is relative. The attribute is usefull for formats other than Ogg.) The attribute is inherited by all children. The optional ‘lang’ element describes the language of a resource using three letter ''ISO 639-3'' codes. Note that this element should only be used on the ‘resource’ element or in the XML declaration for easier software parsing. The attribute is inherited by all children and have no default value.<br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
====Languages====<br />
The ‘xml:lang’ can be used on any element, and it is inherited from parent elements. In the below example, the first title element inherits ‘eng’ as its language from the ‘resource‘ parent element. A player may present any title, but should prefer the global language (language of the ‘metadata’ element) or the user’s language, as specified by the player. If the player’s interface language (or possibly a dedicated metadata language option) is German (ISO 639-3:deu), than it should assume the user prefers the German title.<br />
<br />
<code><pre><resource […] xml:lang="eng"><br />
<title>The Science of Sleep</title><br />
<title xml:lang="deu">Anleitung zum Träumen</title><br />
<title xml:lang="ita">La science des rêves</title></resource></pre></code><br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
Note: It is good practise to include every resource in a stream as a resource element. This makes it easier to link and describe relationships with other resources. (Such as with films and subtitles; and music and albumart.)<br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded the original date of encoding should be preserved, and another date element should be added with the date of re-encoding.<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute must be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, ‘file’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
Note: The software version attribute is important for one reason; It makes it so much easier to find out what files needs to be re-encoded (from a huge collection) if there ever were a bug in a software release.<br />
<br />
=====Describing performers=====<br />
The ‘performers’ element describes by whom the resource was performed. The unrequired ‘sort’ attribute describes the preferred performer for listing. (This sorting attribute was included for backwards compatibility with music library managers/players that lists only one artist's name.)<br />
<br />
<code><pre><performers sort="White Stripes, The"><br />
[…]</performers></pre></code><br />
<br />
The optional ‘person’ element describes an performer. The ‘name’ child element describes the performer’s name.<br />
<code><pre><person><br />
<name>Jack White</name></person></pre></code><br />
<br />
======Musicans======<br />
The required ‘musician’ child element has no value. The optional ‘instrument’ child element describes the instrument used by the performer, with one of the following values ‘wind’, ‘lamellophone’, ‘percussion, ‘string’, ‘voice’, ‘electronic’, and ‘keyboard’. Two additional value to this child element is ‘vocal’, and ‘lead-vocal’.<br />
<br />
<code><pre><person><br />
<name>Jack White</name><br />
<musician /><br />
<instrument>string</instrument><br />
<instrument>keyboard</instrument><br />
<instrument>lead-vocal</instrument></person></pre></code><br />
<br />
Note: When searching for ‘Jack White’ as a guitarist the above example should suffice as a guitar is grouped under string instrument. This should be considered when implementing the above elements in search engines.<br />
<br />
======Actors======<br />
The optional ‘role’ attribute is a space separated list of roles in films with one or more of the following values ‘actor’, ‘director’, and ‘producer’. '''(NEEDS WORK)'''. The optional ‘as’ attribute describes the name of the character as whom the performer played in a film.<br />
<br />
The required ‘actor’ child element’s optional ‘portrait’ attribute describes a fictional name an actors portraits in a movie (his role).<br />
<code><pre><person><br />
<name>Gael García Bernal</name><br />
<actor portrait="Stéphane Miroux" /></person></pre></code><br />
<br />
======Other and organisations======<br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources such as song lyrics and film subtitles in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=8186
M3F
2008-01-26T21:55:35Z
<p>Aleksandersen: /* Describing performers */ Closing tags</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML, declaration, and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes.<br />
<br />
<code><pre><?xml encoding="UTF-8" version="1.0" ?></pre></code><br />
<br />
Encoding should default to Unicode/UTF-8. XML version should always use the oldest version were desired features are available, as per the XML specifications. Only when features not pressent in older XML versions are required should a newer version be used.<br />
<br />
In addition the XML attributes ‘base’ and ‘lang’ may be used. Refer to them with an ‘xml:’ prefix if used in any element except the XML declaration. The optional ‘base’ attribute defines the base URI for compleating relative URIs. This value must default to the current Ogg Container. (Basically all other URIs in the format is relative. The attribute is usefull for formats other than Ogg.) The attribute is inherited by all children. The optional ‘lang’ element describes the language of a resource using three letter ''ISO 639-3'' codes. Note that this element should only be used on the ‘resource’ element or in the XML declaration for easier software parsing. The attribute is inherited by all children and have no default value.<br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
====Languages====<br />
The ‘xml:lang’ can be used on any element, and it is inherited from parent elements. In the below example, the first title element inherits ‘eng’ as its language from the ‘resource‘ parent element. A player may present any title, but should prefer the global language (language of the ‘metadata’ element) or the user’s language, as specified by the player. If the player’s interface language (or possibly a dedicated metadata language option) is German (ISO 639-3:deu), than it should assume the user prefers the German title.<br />
<br />
<code><pre><resource […] xml:lang="eng"><br />
<title>The Science of Sleep</title><br />
<title xml:lang="deu">Anleitung zum Träumen</title><br />
<title xml:lang="ita">La science des rêves</title></resource></pre></code><br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
Note: It is good practise to include every resource in a stream as a resource element. This makes it easier to link and describe relationships with other resources. (Such as with films and subtitles; and music and albumart.)<br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded the original date of encoding should be preserved, and another date element should be added with the date of re-encoding.<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute must be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, ‘file’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
Note: The software version attribute is important for one reason; It makes it so much easier to find out what files needs to be re-encoded (from a huge collection) if there ever were a bug in a software release.<br />
<br />
=====Describing performers=====<br />
The ‘performers’ element describes by whom the resource was performed. The unrequired ‘sort’ attribute describes the preferred performer for listing. (This sorting attribute was included for backwards compatibility with music library managers/players that lists only one artist's name.)<br />
<br />
<code><pre><performers sort="White Stripes, The"><br />
[…]</performers></pre></code><br />
<br />
The optional ‘person’ element describes an performer. The ‘name’ child element describes the performer’s name.<br />
<code><pre><person><br />
<name>Jack White</name></person></pre></code><br />
<br />
======Musicans======<br />
The optional ‘instrument’ child element describes the instrument used by the performer, with one of the following values ‘wind’, ‘lamellophone’, ‘percussion, ‘string’, ‘voice’, ‘electronic’, and ‘keyboard’. Two additional value to this child element is ‘vocal’, and ‘lead-vocal’. The value can be blank (<code><pre><instrument /></pre></code>) an indicates that the person is an musician even when the instrument is unknown.<br />
<br />
<code><pre><person><br />
<name>Jack White</name><br />
<instrument>string</instrument><br />
<instrument>keyboard</instrument><br />
<instrument>lead-vocal</instrument></person></pre></code><br />
<br />
Note: When searching for ‘Jack White’ as a guitarist the above example should suffice as a guitar is grouped under string instrument. This should be considered when implementing the above elements in search engines.<br />
<br />
======Actors======<br />
The optional ‘role’ attribute is a space separated list of roles in films with one or more of the following values ‘actor’, ‘director’, and ‘producer’. '''(NEEDS WORK)'''. The optional ‘as’ attribute describes the name of the character as whom the performer played in a film.<br />
<br />
The required ‘actor’ child element has no value. The ‘portrait’ child element describes a fictional name an actors portraits in a movie (his role). The ‘portrait’ child element cannot have no value.<br />
<code><pre><person><br />
<name>Gael García Bernal</name><br />
<actor /><br />
<portrait>Stéphane Miroux</portrait></person></pre></code><br />
<br />
======Other and organisations======<br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources such as song lyrics and film subtitles in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=8185
M3F
2008-01-26T21:54:14Z
<p>Aleksandersen: /* Describing performers */</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML, declaration, and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes.<br />
<br />
<code><pre><?xml encoding="UTF-8" version="1.0" ?></pre></code><br />
<br />
Encoding should default to Unicode/UTF-8. XML version should always use the oldest version were desired features are available, as per the XML specifications. Only when features not pressent in older XML versions are required should a newer version be used.<br />
<br />
In addition the XML attributes ‘base’ and ‘lang’ may be used. Refer to them with an ‘xml:’ prefix if used in any element except the XML declaration. The optional ‘base’ attribute defines the base URI for compleating relative URIs. This value must default to the current Ogg Container. (Basically all other URIs in the format is relative. The attribute is usefull for formats other than Ogg.) The attribute is inherited by all children. The optional ‘lang’ element describes the language of a resource using three letter ''ISO 639-3'' codes. Note that this element should only be used on the ‘resource’ element or in the XML declaration for easier software parsing. The attribute is inherited by all children and have no default value.<br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
====Languages====<br />
The ‘xml:lang’ can be used on any element, and it is inherited from parent elements. In the below example, the first title element inherits ‘eng’ as its language from the ‘resource‘ parent element. A player may present any title, but should prefer the global language (language of the ‘metadata’ element) or the user’s language, as specified by the player. If the player’s interface language (or possibly a dedicated metadata language option) is German (ISO 639-3:deu), than it should assume the user prefers the German title.<br />
<br />
<code><pre><resource […] xml:lang="eng"><br />
<title>The Science of Sleep</title><br />
<title xml:lang="deu">Anleitung zum Träumen</title><br />
<title xml:lang="ita">La science des rêves</title></resource></pre></code><br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
Note: It is good practise to include every resource in a stream as a resource element. This makes it easier to link and describe relationships with other resources. (Such as with films and subtitles; and music and albumart.)<br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded the original date of encoding should be preserved, and another date element should be added with the date of re-encoding.<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute must be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, ‘file’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
Note: The software version attribute is important for one reason; It makes it so much easier to find out what files needs to be re-encoded (from a huge collection) if there ever were a bug in a software release.<br />
<br />
=====Describing performers=====<br />
The ‘performers’ element describes by whom the resource was performed. The unrequired ‘sort’ attribute describes the preferred performer for listing. (This sorting attribute was included for backwards compatibility with music library managers/players that lists only one artist's name.)<br />
<br />
<code><pre><performers sort="White Stripes, The"><br />
[…]</performers></pre></code><br />
<br />
The optional ‘person’ element describes an performer. The ‘name’ child element describes the performer’s name.<br />
<code><pre><person><br />
<name>Jack White</name></person><br />
<br />
======Musicans======<br />
The optional ‘instrument’ child element describes the instrument used by the performer, with one of the following values ‘wind’, ‘lamellophone’, ‘percussion, ‘string’, ‘voice’, ‘electronic’, and ‘keyboard’. Two additional value to this child element is ‘vocal’, and ‘lead-vocal’. The value can be blank (<code><pre><instrument /></pre></code>) an indicates that the person is an musician even when the instrument is unknown.<br />
<br />
<code><pre><person><br />
<name>Jack White</name><br />
<instrument>string</instrument><br />
<instrument>keyboard</instrument><br />
<instrument>lead-vocal</instrument></person></pre></code><br />
<br />
Note: When searching for ‘Jack White’ as a guitarist the above example should suffice as a guitar is grouped under string instrument. This should be considered when implementing the above elements in search engines.<br />
<br />
======Actors======<br />
The optional ‘role’ attribute is a space separated list of roles in films with one or more of the following values ‘actor’, ‘director’, and ‘producer’. '''(NEEDS WORK)'''. The optional ‘as’ attribute describes the name of the character as whom the performer played in a film.<br />
<br />
The required ‘actor’ child element has no value. The ‘portrait’ child element describes a fictional name an actors portraits in a movie (his role). The ‘portrait’ child element cannot have no value.<br />
<code><pre><person><br />
<name>Gael García Bernal</name><br />
<actor /><br />
<portrait>Stéphane Miroux</portrait></person></pre></code><br />
<br />
======Other and organisations======<br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources such as song lyrics and film subtitles in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=Talk:M3F&diff=8170
Talk:M3F
2008-01-26T16:14:58Z
<p>Aleksandersen: Languages</p>
<hr />
<div>I still feel there's something not quite right about having instruments<br />
on the same level as roles/contributions rather than one level below.<br />
To me it seems that if an actor plays a part then their character has<br />
the same type of relationship to their role as an actor as an instrument<br />
has to a musician's role as an instrumentalist.<br />
<br />
Source is a bit weak currently. If it's going to use a fixed vocabularly<br />
it needs at least 'other' in addition to 'unknown'. Also a little ill-defined<br />
in a way; you might have ripped it off a CD or encoded from FLAC,<br />
but where was it before that? I can see this might be useful for<br />
organising music collections though. [[User:Imalone|Imalone]] 04:16, 4 December 2007 (PST)<br />
<br />
== Categories to be free-form? ==<br />
<br />
Should category's sort attribute and the genere element be free-form or use fixed values? I think at least for the sort attribute a fixed vocabulary could be usefull. To provide a fixed, basic sorting mechanism. But what sorts of music are there? Should we use some major music publication's fixed categories?<br />
<br />
== Languages ==<br />
<br />
Can they be specified as a space separated list of languages? I could not figure out from the XML specifications.<br />
<br />
The Science of Sleep (example title) is English, so the title element should be xml:lang="eng". But how to deal with the fact that this title is also used in Scandinavian languages? It is not a Scandinavian languag, but the title is used in Scandinavian contries. So … I actually have no idea how to deal with this. Maybe implement the same specifications as used in the HTTP/1.1 specification? They use a lang;q=N,lang;q=N operator to sort multiple languages by priority.</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=8169
M3F
2008-01-26T15:59:38Z
<p>Aleksandersen: /* Languages */</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML, declaration, and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes.<br />
<br />
<code><pre><?xml encoding="UTF-8" version="1.0" ?></pre></code><br />
<br />
Encoding should default to Unicode/UTF-8. XML version should always use the oldest version were desired features are available, as per the XML specifications. Only when features not pressent in older XML versions are required should a newer version be used.<br />
<br />
In addition the XML attributes ‘base’ and ‘lang’ may be used. Refer to them with an ‘xml:’ prefix if used in any element except the XML declaration. The optional ‘base’ attribute defines the base URI for compleating relative URIs. This value must default to the current Ogg Container. (Basically all other URIs in the format is relative. The attribute is usefull for formats other than Ogg.) The attribute is inherited by all children. The optional ‘lang’ element describes the language of a resource using three letter ''ISO 639-3'' codes. Note that this element should only be used on the ‘resource’ element or in the XML declaration for easier software parsing. The attribute is inherited by all children and have no default value.<br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
====Languages====<br />
The ‘xml:lang’ can be used on any element, and it is inherited from parent elements. In the below example, the first title element inherits ‘eng’ as its language from the ‘resource‘ parent element. A player may present any title, but should prefer the global language (language of the ‘metadata’ element) or the user’s language, as specified by the player. If the player’s interface language (or possibly a dedicated metadata language option) is German (ISO 639-3:deu), than it should assume the user prefers the German title.<br />
<br />
<code><pre><resource […] xml:lang="eng"><br />
<title>The Science of Sleep</title><br />
<title xml:lang="deu">Anleitung zum Träumen</title><br />
<title xml:lang="ita">La science des rêves</title></resource></pre></code><br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
Note: It is good practise to include every resource in a stream as a resource element. This makes it easier to link and describe relationships with other resources. (Such as with films and subtitles; and music and albumart.)<br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded the original date of encoding should be preserved, and another date element should be added with the date of re-encoding.<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute must be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, ‘file’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
Note: The software version attribute is important for one reason; It makes it so much easier to find out what files needs to be re-encoded (from a huge collection) if there ever were a bug in a software release.<br />
<br />
=====Describing performers=====<br />
The ‘performer’ element describes by whom the resource was performed. The required ‘sort’ attribute describes the preferred performer for listing. (This sorting attribute was included for backwards compatibility with music library managers/players that lists only one artist's name.)<br />
<br />
<code><pre><performer sort="White Stripes, The"><br />
[…]</performer></pre></code><br />
<br />
The optional ‘person’ element describes . The optional ‘instrument’ attribute is a space separated list of instruments with one or more of the following values ‘wind’, ‘lamellophone’, ‘percussion, ‘string’, ‘voice’, ‘electronic’, and ‘keyboard’. Two additional value to this attribute is ‘vocal’, and ‘lead-vocal’. The optional ‘role’ attribute is a space separated list of roles in films with one or more of the following values ‘actor’, ‘director’, and ‘producer’. '''(NEEDS WORK)'''. The optional ‘as’ attribute describes the name of the character as whom the performer played in a film.<br />
<br />
<code><pre><performer sort="White Stripes, The"><br />
<person instrument="string keyboard lead-vocal">Jack White</person><br />
<person instrument="percussion vocal">Meg White</person><br />
</performer></pre></code><br />
<br />
Note: When searching for ‘Jack White’ as a guitarist the above example should suffice as a guitar is grouped under string instrument. This should be considered when implementing the above elements in search engines.<br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources such as song lyrics and film subtitles in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=8168
M3F
2008-01-26T15:56:33Z
<p>Aleksandersen: /* XML, declaration, and name spaces */ Dealing with languages</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML, declaration, and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes.<br />
<br />
<code><pre><?xml encoding="UTF-8" version="1.0" ?></pre></code><br />
<br />
Encoding should default to Unicode/UTF-8. XML version should always use the oldest version were desired features are available, as per the XML specifications. Only when features not pressent in older XML versions are required should a newer version be used.<br />
<br />
In addition the XML attributes ‘base’ and ‘lang’ may be used. Refer to them with an ‘xml:’ prefix if used in any element except the XML declaration. The optional ‘base’ attribute defines the base URI for compleating relative URIs. This value must default to the current Ogg Container. (Basically all other URIs in the format is relative. The attribute is usefull for formats other than Ogg.) The attribute is inherited by all children. The optional ‘lang’ element describes the language of a resource using three letter ''ISO 639-3'' codes. Note that this element should only be used on the ‘resource’ element or in the XML declaration for easier software parsing. The attribute is inherited by all children and have no default value.<br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
====Languages====<br />
The ‘xml:lang’ can be used on any element, and it is inherited from parent elements. In the below example, the first title element inherits ‘eng’ as its language from the ‘resource‘ parent element. A player may present any title, but should prefer the global language (language of the ‘metadata’ element) or the user’s language, as specified by the player.<br />
<br />
<code><pre><resource […] xml:lang="eng"><br />
<title>The Science of Sleep</title><br />
<title xml:lang="dau">Anleitung zum Träumen</title><br />
<title xml:lang="ita">La science des rêves</title></resource></pre></code><br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
Note: It is good practise to include every resource in a stream as a resource element. This makes it easier to link and describe relationships with other resources. (Such as with films and subtitles; and music and albumart.)<br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded the original date of encoding should be preserved, and another date element should be added with the date of re-encoding.<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute must be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, ‘file’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
Note: The software version attribute is important for one reason; It makes it so much easier to find out what files needs to be re-encoded (from a huge collection) if there ever were a bug in a software release.<br />
<br />
=====Describing performers=====<br />
The ‘performer’ element describes by whom the resource was performed. The required ‘sort’ attribute describes the preferred performer for listing. (This sorting attribute was included for backwards compatibility with music library managers/players that lists only one artist's name.)<br />
<br />
<code><pre><performer sort="White Stripes, The"><br />
[…]</performer></pre></code><br />
<br />
The optional ‘person’ element describes . The optional ‘instrument’ attribute is a space separated list of instruments with one or more of the following values ‘wind’, ‘lamellophone’, ‘percussion, ‘string’, ‘voice’, ‘electronic’, and ‘keyboard’. Two additional value to this attribute is ‘vocal’, and ‘lead-vocal’. The optional ‘role’ attribute is a space separated list of roles in films with one or more of the following values ‘actor’, ‘director’, and ‘producer’. '''(NEEDS WORK)'''. The optional ‘as’ attribute describes the name of the character as whom the performer played in a film.<br />
<br />
<code><pre><performer sort="White Stripes, The"><br />
<person instrument="string keyboard lead-vocal">Jack White</person><br />
<person instrument="percussion vocal">Meg White</person><br />
</performer></pre></code><br />
<br />
Note: When searching for ‘Jack White’ as a guitarist the above example should suffice as a guitar is grouped under string instrument. This should be considered when implementing the above elements in search engines.<br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources such as song lyrics and film subtitles in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=Talk:M3F&diff=8071
Talk:M3F
2007-12-25T16:54:01Z
<p>Aleksandersen: /* Categories to be free-form? */</p>
<hr />
<div>I still feel there's something not quite right about having instruments<br />
on the same level as roles/contributions rather than one level below.<br />
To me it seems that if an actor plays a part then their character has<br />
the same type of relationship to their role as an actor as an instrument<br />
has to a musician's role as an instrumentalist.<br />
<br />
Source is a bit weak currently. If it's going to use a fixed vocabularly<br />
it needs at least 'other' in addition to 'unknown'. Also a little ill-defined<br />
in a way; you might have ripped it off a CD or encoded from FLAC,<br />
but where was it before that? I can see this might be useful for<br />
organising music collections though. [[User:Imalone|Imalone]] 04:16, 4 December 2007 (PST)<br />
<br />
== Categories to be free-form? ==<br />
<br />
Should category's sort attribute and the genere element be free-form or use fixed values? I think at least for the sort attribute a fixed vocabulary could be usefull. To provide a fixed, basic sorting mechanism. But what sorts of music are there? Should we use some major music publication's fixed categories?</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=Talk:M3F&diff=8070
Talk:M3F
2007-12-25T16:53:14Z
<p>Aleksandersen: Categories to be free-form?</p>
<hr />
<div>I still feel there's something not quite right about having instruments<br />
on the same level as roles/contributions rather than one level below.<br />
To me it seems that if an actor plays a part then their character has<br />
the same type of relationship to their role as an actor as an instrument<br />
has to a musician's role as an instrumentalist.<br />
<br />
Source is a bit weak currently. If it's going to use a fixed vocabularly<br />
it needs at least 'other' in addition to 'unknown'. Also a little ill-defined<br />
in a way; you might have ripped it off a CD or encoded from FLAC,<br />
but where was it before that? I can see this might be useful for<br />
organising music collections though. [[User:Imalone|Imalone]] 04:16, 4 December 2007 (PST)<br />
<br />
== Categories to be free-form? ==<br />
<br />
Should category's sort attribute and the genere element be free-form or use fixed values? I think at least for the sort attribute a fixed vocabulary could be usefull. To provide a fixed, basic sorting mechanism.</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=Metadata&diff=8069
Metadata
2007-12-25T16:50:55Z
<p>Aleksandersen: /* M3F */</p>
<hr />
<div>This page aims to give an overview of the current state of metadata in Ogg and the ongoing projects towards improving it. The different components work in concert; for example [[Ogg Skeleton]] provides important infrastructure for [[CMML]], [[VorbisComment]] is simple to use and program, while [[M3F|Multimedia Metadata Format (M3F)]] provides more sophisticated information. There is ongoing discussion on implementing [[M3F]] for the Ogg container.<br />
<br />
==[[VorbisComment|Vorbiscomments]]==<br />
All the Xiph.org codecs have some internal mechanism for including metadata about the current stream.<br />
Generally, this is one of the codec headers, and in the words of the [http://www.xiph.org/vorbis/doc/v-comment.html vorbis spec], <br />
"It is meant for short, text comments ... much like someone jotting a quick note on the bottom of a CDR." A single Vorbiscomment can store upto 2^64 bytes (16 exabytes).<br />
<br />
Vorbiscomments store metadata describing the stream in key=value pairs, such as "ARTIST=Elvis", "TITLE=Blue Suede Shoes". Multiple copies of any given key are allowed (for example you can specify ARTIST several times for multiple performers). The specification has several suggested keys: TITLE, VERSION, ALBUM, TRACKNUMBER, ARTIST, PERFORMER, COPYRIGHT, LICENSE, ORGANIZATION, DESCRIPTION, DATE, LOCATION, CONTACT, ISRC. See the [http://www.xiph.org/vorbis/doc/v-comment.html specification] for the intent of each one.<br />
<br />
The [[VorbisComment]] page contains improvements to the suggested comment set.<br />
<br />
== [[FLAC]] metadata blocks ==<br />
Metadata is included in the FLAC codec as METADATA_BLOCK_DATA. Seven types of metadata block are defined: <br />
#''METADATA_BLOCK_STREAMINFO'': Sample rate, number of channels, etc.<br />
#''METADATA_BLOCK_PADDING'': Nul padding.<br />
#''METADATA_BLOCK_APPLICATION'': Third-party applications can register an ID. Metadata is typically 32-bit integers, but any datatypes can be specified.<br />
#''METADATA_BLOCK_SEEKTABLE'': For one or more seek points.<br />
#''METADATA_BLOCK_VORBIS_COMMENT'': Also known as FLAC tags, the contents of a Vorbis comment packet. Note that the 32-bit field lengths are little-endian coded according to the Vorbis spec, as opposed to the usual big-endian coding of fixed-length integers in the rest of FLAC. FLAC metadata blocks are limited to 2^24 bytes (16 megabytes) and a Vorbis comment packet in FLAC must fit within that limit.<br />
#''METADATA_BLOCK_CUESHEET'': Typically, but not necessarily, for CD-DA (Red Book) cuesheets.<br />
#''METADATA_BLOCK_PICTURE'': For binary picture data.<br />
<br />
==[[Ogg Skeleton]]==<br />
[[Ogg Skeleton]] provides metadata useful for handling Ogg streams. This includes information like mime-types and mapping for granulepos which allows seeking streams without the need for the demuxer to understand them.<br />
<br />
Ogg Skeleton also allows for attachment of message header fields, given as name-value pairs, that contain some sort of protocol messages about the logical bitstream. This is intended for decode related stuff, such as the screen size for a video bitstream or the number of channels for an audio bitstream.<br />
<br />
==[[CMML]]==<br />
The [[CMML|Continuous Media Markup Language]] allows time-based marking up of media streams, at its simplest this allows you to divide media files into clips and provide information about each clip.<br />
<br />
==[[M3F]]==<br />
'''[[M3F|Multimedia Metadata Format]]''' for the Ogg container aims to provide metadata for media streams. The exact aims of this project are still under development, but they include being able to describe artist relationships to a piece more accurately as well as providing the structure to encourage more reliable metadata.<br />
<br />
The format is intended to replace Vorbiscomments for the use of ''structured'' metadata, allowing Vorbis comments to revert to its orginally intended use of "short, text comments ... much like someone jotting a quick note on the bottom of a CDR."<br />
<br />
==[[XMLEmbedding]]==<br />
To implement XML metadata in Ogg (as for [[M3F]]), a mapping to Ogg streams is needed. The use of XML metadata will also open the way for the inclusion of technologies such as:<br />
* RDF + dublin core<br />
* [http://www.adobe.com/products/xmp/ XMP])<br />
* [http://wiki.musicbrainz.org/MusicBrainzXMLMetaData MusicBrainz]<br />
* [http://www.w3.org/Graphics/SVG/ SVG]<br />
<br />
==Aims of advanced metadata==<br />
Vorbiscomments work well enough for most things, and can be overloaded/abused (depending on your point of view) for most other things. But there are three major requirements that point to the design of an external metadata format; one that can be interleaved with the other streams in a container.<br />
<br />
* ''Machinability'' There are a number of items of metadata that a player will want to parse and take action on. While there are usually 'convention' schemes for doing this with the embedded comment headers, this is much easier if there is a separate metadata stream designed for such use, instead of having to do best-effort parsing of natural language comments. For example, a video file with multiple audio tracks can specify the language of each one; a player than can parse these reliably can match them against a language preference list configured by the user to automatically select and begin playback of the best option.<br />
<br />
* ''Kitchen Sink'' There are a minority of people who care passionately about having every detail about a track available. In the sense of conserving such information, and providing an equivalent to liner notes for online distribution, this is a goal worth supporting. However, the simple unstructured key-value pairs offered by the inline metadata are unwieldy for this level of detail. How do you tell the 2nd unit Assistant Director from the USA unit Assistant Director? How do you indicate which artist played tenor sax in the solo?<br />
<br />
* ''Addressability'' The internal comment metadata headers are by necessity attached to a single content stream. This is useful for some appication, but a limitation in others. In a multiplexed stream, which set of comments refers to the collection as a whole? (By convention, in Ogg, it's the first logical bitstream occuring, but we can do better.) A separate metadata stream type must address this issue of collective metadata while still allowing description of individual streams. It should also allow temporal addressability, so that changes can be described. Because the in-stream comment metadata are part of the codec headers, it cannot change over the course of the stream, and allowing additional comment packets elsewhere in the stream presents seeking challenges. In the Ogg container this can be resolved by inserting a chain boundary, but this is a poor option for very-low-bitrate streams and unreliable transports such as RTP.</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=8068
M3F
2007-12-25T16:49:50Z
<p>Aleksandersen: /* XML, declaration, and name spaces */ Clarifying XML version and encoding.</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML, declaration, and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes.<br />
<br />
<code><pre><?xml encoding="UTF-8" version="1.0" ?></pre></code><br />
<br />
Encoding should default to Unicode/UTF-8. XML version should always use the oldest version were desired features are available, as per the XML specifications. Only when features not pressent in older XML versions are required should a newer version be used.<br />
<br />
In addition the XML attributes ‘base’ and ‘lang’ may be used. Refer to them with an ‘xml:’ prefix if used in any element except the XML declaration. The optional ‘base’ attribute defines the base URI for compleating relative URIs. This value must default to the current Ogg Container. (Basically all other URIs in the format is relative. The attribute is usefull for formats other than Ogg.) The attribute is inherited by all children. The optional ‘lang’ element describes the language of a resource using ''ISO 639-2'' codes. Note that this element should only be used on the ‘resource’ element or in the XML declaration for easier software parsing. The attribute is inherited by all children and have no default value.<br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
Note: It is good practise to include every resource in a stream as a resource element. This makes it easier to link and describe relationships with other resources. (Such as with films and subtitles; and music and albumart.)<br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded the original date of encoding should be preserved, and another date element should be added with the date of re-encoding.<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute must be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, ‘file’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
Note: The software version attribute is important for one reason; It makes it so much easier to find out what files needs to be re-encoded (from a huge collection) if there ever were a bug in a software release.<br />
<br />
=====Describing performers=====<br />
The ‘performer’ element describes by whom the resource was performed. The required ‘sort’ attribute describes the preferred performer for listing. (This sorting attribute was included for backwards compatibility with music library managers/players that lists only one artist's name.)<br />
<br />
<code><pre><performer sort="White Stripes, The"><br />
[…]</performer></pre></code><br />
<br />
The optional ‘person’ element describes . The optional ‘instrument’ attribute is a space separated list of instruments with one or more of the following values ‘wind’, ‘lamellophone’, ‘percussion, ‘string’, ‘voice’, ‘electronic’, and ‘keyboard’. Two additional value to this attribute is ‘vocal’, and ‘lead-vocal’. The optional ‘role’ attribute is a space separated list of roles in films with one or more of the following values ‘actor’, ‘director’, and ‘producer’. '''(NEEDS WORK)'''. The optional ‘as’ attribute describes the name of the character as whom the performer played in a film.<br />
<br />
<code><pre><performer sort="White Stripes, The"><br />
<person instrument="string keyboard lead-vocal">Jack White</person><br />
<person instrument="percussion vocal">Meg White</person><br />
</performer></pre></code><br />
<br />
Note: When searching for ‘Jack White’ as a guitarist the above example should suffice as a guitar is grouped under string instrument. This should be considered when implementing the above elements in search engines.<br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources such as song lyrics and film subtitles in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7946
M3F
2007-12-05T20:29:55Z
<p>Aleksandersen: /* XML, declaration, and name spaces */</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML, declaration, and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes.<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
In addition the XML attributes ‘base’ and ‘lang’ may be used. Refer to them with an ‘xml:’ prefix if used in any element except the XML declaration. The optional ‘base’ attribute defines the base URI for compleating relative URIs. This value must default to the current Ogg Container. (Basically all other URIs in the format is relative. The attribute is usefull for formats other than Ogg.) The attribute is inherited by all children. The optional ‘lang’ element describes the language of a resource using ''ISO 639-2'' codes. Note that this element should only be used on the ‘resource’ element or in the XML declaration for easier software parsing. The attribute is inherited by all children and have no default value.<br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
Note: It is good practise to include every resource in a stream as a resource element. This makes it easier to link and describe relationships with other resources. (Such as with films and subtitles; and music and albumart.)<br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded the original date of encoding should be preserved, and another date element should be added with the date of re-encoding.<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute must be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, ‘file’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
Note: The software version attribute is important for one reason; It makes it so much easier to find out what files needs to be re-encoded (from a huge collection) if there ever were a bug in a software release.<br />
<br />
=====Describing performers=====<br />
The ‘performer’ element describes by whom the resource was performed. The required ‘sort’ attribute describes the preferred performer for listing. (This sorting attribute was included for backwards compatibility with music library managers/players that lists only one artist's name.)<br />
<br />
<code><pre><performer sort="White Stripes, The"><br />
[…]</performer></pre></code><br />
<br />
The optional ‘person’ element describes . The optional ‘instrument’ attribute is a space separated list of instruments with one or more of the following values ‘wind’, ‘lamellophone’, ‘percussion, ‘string’, ‘voice’, ‘electronic’, and ‘keyboard’. Two additional value to this attribute is ‘vocal’, and ‘lead-vocal’. The optional ‘role’ attribute is a space separated list of roles in films with one or more of the following values ‘actor’, ‘director’, and ‘producer’. '''(NEEDS WORK)'''. The optional ‘as’ attribute describes the name of the character as whom the performer played in a film.<br />
<br />
<code><pre><performer sort="White Stripes, The"><br />
<person instrument="string keyboard lead-vocal">Jack White</person><br />
<person instrument="percussion vocal">Meg White</person><br />
</performer></pre></code><br />
<br />
Note: When searching for ‘Jack White’ as a guitarist the above example should suffice as a guitar is grouped under string instrument. This should be considered when implementing the above elements in search engines.<br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources such as song lyrics and film subtitles in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7936
M3F
2007-12-05T16:12:23Z
<p>Aleksandersen: /* XML, declaration, and name spaces */ Languages and URI compleation</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML, declaration, and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes.<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
In addition the XML attributes ‘base’ and ‘lang’ may be used. Refer to them with an ‘xml:’ prefix if used in any element except the XML declaration. The optional ‘base’ attribute defines the base URI for compleating relative URIs. This value must default to the current Ogg Container. (Basically all other URIs in the format is relative. The attribute is usefull for formats other than Ogg.) The attribute is inherited by all children. The optional ‘lang’ element describes the language of a resource using ''ISO 639-2'' codes. Note that this element should only be used on the ‘resource’ element or in the XML declaration for easier software parsing. The attribute is inherited by all children.<br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
Note: It is good practise to include every resource in a stream as a resource element. This makes it easier to link and describe relationships with other resources. (Such as with films and subtitles; and music and albumart.)<br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded the original date of encoding should be preserved, and another date element should be added with the date of re-encoding.<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute must be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, ‘file’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
Note: The software version attribute is important for one reason; It makes it so much easier to find out what files needs to be re-encoded (from a huge collection) if there ever were a bug in a software release.<br />
<br />
=====Describing performers=====<br />
The ‘performer’ element describes by whom the resource was performed. The required ‘sort’ attribute describes the preferred performer for listing. (This sorting attribute was included for backwards compatibility with music library managers/players that lists only one artist's name.)<br />
<br />
<code><pre><performer sort="White Stripes, The"><br />
[…]</performer></pre></code><br />
<br />
The optional ‘person’ element describes . The optional ‘instrument’ attribute is a space separated list of instruments with one or more of the following values ‘wind’, ‘lamellophone’, ‘percussion, ‘string’, ‘voice’, ‘electronic’, and ‘keyboard’. Two additional value to this attribute is ‘vocal’, and ‘lead-vocal’. The optional ‘role’ attribute is a space separated list of roles in films with one or more of the following values ‘actor’, ‘director’, and ‘producer’. '''(NEEDS WORK)'''. The optional ‘as’ attribute describes the name of the character as whom the performer played in a film.<br />
<br />
<code><pre><performer sort="White Stripes, The"><br />
<person instrument="string keyboard lead-vocal">Jack White</person><br />
<person instrument="percussion vocal">Meg White</person><br />
</performer></pre></code><br />
<br />
Note: When searching for ‘Jack White’ as a guitarist the above example should suffice as a guitar is grouped under string instrument. This should be considered when implementing the above elements in search engines.<br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources such as song lyrics and film subtitles in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7935
M3F
2007-12-05T16:03:02Z
<p>Aleksandersen: /* XML declaration and name spaces */</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML, declaration, and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes.<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
Note: It is good practise to include every resource in a stream as a resource element. This makes it easier to link and describe relationships with other resources. (Such as with films and subtitles; and music and albumart.)<br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded the original date of encoding should be preserved, and another date element should be added with the date of re-encoding.<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute must be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, ‘file’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
Note: The software version attribute is important for one reason; It makes it so much easier to find out what files needs to be re-encoded (from a huge collection) if there ever were a bug in a software release.<br />
<br />
=====Describing performers=====<br />
The ‘performer’ element describes by whom the resource was performed. The required ‘sort’ attribute describes the preferred performer for listing. (This sorting attribute was included for backwards compatibility with music library managers/players that lists only one artist's name.)<br />
<br />
<code><pre><performer sort="White Stripes, The"><br />
[…]</performer></pre></code><br />
<br />
The optional ‘person’ element describes . The optional ‘instrument’ attribute is a space separated list of instruments with one or more of the following values ‘wind’, ‘lamellophone’, ‘percussion, ‘string’, ‘voice’, ‘electronic’, and ‘keyboard’. Two additional value to this attribute is ‘vocal’, and ‘lead-vocal’. The optional ‘role’ attribute is a space separated list of roles in films with one or more of the following values ‘actor’, ‘director’, and ‘producer’. '''(NEEDS WORK)'''. The optional ‘as’ attribute describes the name of the character as whom the performer played in a film.<br />
<br />
<code><pre><performer sort="White Stripes, The"><br />
<person instrument="string keyboard lead-vocal">Jack White</person><br />
<person instrument="percussion vocal">Meg White</person><br />
</performer></pre></code><br />
<br />
Note: When searching for ‘Jack White’ as a guitarist the above example should suffice as a guitar is grouped under string instrument. This should be considered when implementing the above elements in search engines.<br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources such as song lyrics and film subtitles in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7883
M3F
2007-11-28T01:21:50Z
<p>Aleksandersen: /* Describing encodings */</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg Container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML declaration and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes; as shown in the below example:<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
Note: It is good practise to include every resource in a stream as a resource element. This makes it easier to link and describe relationships with other resources. (Such as with films and subtitles; and music and albumart.)<br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded the original date of encoding should be preserved, and another date element should be added with the date of re-encoding.<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute must be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, ‘file’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
Note: The software version attribute is important for one reason; It makes it so much easier to find out what files needs to be re-encoded (from a huge collection) if there ever were a bug in a software release.<br />
<br />
=====Describing performers=====<br />
The ‘performer’ element describes by whom the resource was performed. The required ‘sort’ attribute describes the preferred performer for listing. (This sorting attribute was included for backwards compatibility with music library managers/players that lists only one artist's name.)<br />
<br />
<code><pre><performer sort="White Stripes, The"><br />
[…]</performer></pre></code><br />
<br />
The optional ‘person’ element describes . The optional ‘instrument’ attribute is a space separated list of instruments with one or more of the following values ‘wind’, ‘lamellophone’, ‘percussion, ‘string’, ‘voice’, ‘electronic’, and ‘keyboard’. Two additional value to this attribute is ‘vocal’, and ‘lead-vocal’. The optional ‘role’ attribute is a space separated list of roles in films with one or more of the following values ‘actor’, ‘director’, and ‘producer’. '''(NEEDS WORK)'''. The optional ‘as’ attribute describes the name of the character as whom the performer played in a film.<br />
<br />
<code><pre><performer sort="White Stripes, The"><br />
<person instrument="string keyboard lead-vocal">Jack White</person><br />
<person instrument="percussion vocal">Meg White</person><br />
</performer></pre></code><br />
<br />
Note: When searching for ‘Jack White’ as a guitarist the above example should suffice as a guitar is grouped under string instrument. This should be considered when implementing the above elements in search engines.<br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources such as song lyrics and film subtitles in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7882
M3F
2007-11-28T01:20:53Z
<p>Aleksandersen: /* Describing encodings */</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg Container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML declaration and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes; as shown in the below example:<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
Note: It is good practise to include every resource in a stream as a resource element. This makes it easier to link and describe relationships with other resources. (Such as with films and subtitles; and music and albumart.)<br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded another date element should be added with the new date..<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute must be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, ‘file’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
Note: The software version attribute is important for one reason; It makes it so much easier to find out what files needs to be re-encoded (from a huge collection) if there ever were a bug in a software release.<br />
<br />
=====Describing performers=====<br />
The ‘performer’ element describes by whom the resource was performed. The required ‘sort’ attribute describes the preferred performer for listing. (This sorting attribute was included for backwards compatibility with music library managers/players that lists only one artist's name.)<br />
<br />
<code><pre><performer sort="White Stripes, The"><br />
[…]</performer></pre></code><br />
<br />
The optional ‘person’ element describes . The optional ‘instrument’ attribute is a space separated list of instruments with one or more of the following values ‘wind’, ‘lamellophone’, ‘percussion, ‘string’, ‘voice’, ‘electronic’, and ‘keyboard’. Two additional value to this attribute is ‘vocal’, and ‘lead-vocal’. The optional ‘role’ attribute is a space separated list of roles in films with one or more of the following values ‘actor’, ‘director’, and ‘producer’. '''(NEEDS WORK)'''. The optional ‘as’ attribute describes the name of the character as whom the performer played in a film.<br />
<br />
<code><pre><performer sort="White Stripes, The"><br />
<person instrument="string keyboard lead-vocal">Jack White</person><br />
<person instrument="percussion vocal">Meg White</person><br />
</performer></pre></code><br />
<br />
Note: When searching for ‘Jack White’ as a guitarist the above example should suffice as a guitar is grouped under string instrument. This should be considered when implementing the above elements in search engines.<br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources such as song lyrics and film subtitles in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7881
M3F
2007-11-28T01:19:37Z
<p>Aleksandersen: /* Addressing the media resource */</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg Container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML declaration and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes; as shown in the below example:<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
Note: It is good practise to include every resource in a stream as a resource element. This makes it easier to link and describe relationships with other resources. (Such as with films and subtitles; and music and albumart.)<br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded another date element should be added with the new date..<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute should be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
Note: The software version attribute is important for one reason; It makes it so much easier to find out what files needs to be re-encoded (from a huge collection) if there ever were a bug in a software release.<br />
<br />
=====Describing performers=====<br />
The ‘performer’ element describes by whom the resource was performed. The required ‘sort’ attribute describes the preferred performer for listing. (This sorting attribute was included for backwards compatibility with music library managers/players that lists only one artist's name.)<br />
<br />
<code><pre><performer sort="White Stripes, The"><br />
[…]</performer></pre></code><br />
<br />
The optional ‘person’ element describes . The optional ‘instrument’ attribute is a space separated list of instruments with one or more of the following values ‘wind’, ‘lamellophone’, ‘percussion, ‘string’, ‘voice’, ‘electronic’, and ‘keyboard’. Two additional value to this attribute is ‘vocal’, and ‘lead-vocal’. The optional ‘role’ attribute is a space separated list of roles in films with one or more of the following values ‘actor’, ‘director’, and ‘producer’. '''(NEEDS WORK)'''. The optional ‘as’ attribute describes the name of the character as whom the performer played in a film.<br />
<br />
<code><pre><performer sort="White Stripes, The"><br />
<person instrument="string keyboard lead-vocal">Jack White</person><br />
<person instrument="percussion vocal">Meg White</person><br />
</performer></pre></code><br />
<br />
Note: When searching for ‘Jack White’ as a guitarist the above example should suffice as a guitar is grouped under string instrument. This should be considered when implementing the above elements in search engines.<br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources such as song lyrics and film subtitles in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7880
M3F
2007-11-28T01:16:56Z
<p>Aleksandersen: /* Describing encodings */</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg Container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML declaration and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes; as shown in the below example:<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded another date element should be added with the new date..<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute should be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
Note: The software version attribute is important for one reason; It makes it so much easier to find out what files needs to be re-encoded (from a huge collection) if there ever were a bug in a software release.<br />
<br />
=====Describing performers=====<br />
The ‘performer’ element describes by whom the resource was performed. The required ‘sort’ attribute describes the preferred performer for listing. (This sorting attribute was included for backwards compatibility with music library managers/players that lists only one artist's name.)<br />
<br />
<code><pre><performer sort="White Stripes, The"><br />
[…]</performer></pre></code><br />
<br />
The optional ‘person’ element describes . The optional ‘instrument’ attribute is a space separated list of instruments with one or more of the following values ‘wind’, ‘lamellophone’, ‘percussion, ‘string’, ‘voice’, ‘electronic’, and ‘keyboard’. Two additional value to this attribute is ‘vocal’, and ‘lead-vocal’. The optional ‘role’ attribute is a space separated list of roles in films with one or more of the following values ‘actor’, ‘director’, and ‘producer’. '''(NEEDS WORK)'''. The optional ‘as’ attribute describes the name of the character as whom the performer played in a film.<br />
<br />
<code><pre><performer sort="White Stripes, The"><br />
<person instrument="string keyboard lead-vocal">Jack White</person><br />
<person instrument="percussion vocal">Meg White</person><br />
</performer></pre></code><br />
<br />
Note: When searching for ‘Jack White’ as a guitarist the above example should suffice as a guitar is grouped under string instrument. This should be considered when implementing the above elements in search engines.<br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources such as song lyrics and film subtitles in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7879
M3F
2007-11-28T01:11:11Z
<p>Aleksandersen: </p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg Container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML declaration and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes; as shown in the below example:<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded another date element should be added with the new date..<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute should be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
=====Describing performers=====<br />
The ‘performer’ element describes by whom the resource was performed. The required ‘sort’ attribute describes the preferred performer for listing. (This sorting attribute was included for backwards compatibility with music library managers/players that lists only one artist's name.)<br />
<br />
<code><pre><performer sort="White Stripes, The"><br />
[…]</performer></pre></code><br />
<br />
The optional ‘person’ element describes . The optional ‘instrument’ attribute is a space separated list of instruments with one or more of the following values ‘wind’, ‘lamellophone’, ‘percussion, ‘string’, ‘voice’, ‘electronic’, and ‘keyboard’. Two additional value to this attribute is ‘vocal’, and ‘lead-vocal’. The optional ‘role’ attribute is a space separated list of roles in films with one or more of the following values ‘actor’, ‘director’, and ‘producer’. '''(NEEDS WORK)'''. The optional ‘as’ attribute describes the name of the character as whom the performer played in a film.<br />
<br />
<code><pre><performer sort="White Stripes, The"><br />
<person instrument="string keyboard lead-vocal">Jack White</person><br />
<person instrument="percussion vocal">Meg White</person><br />
</performer></pre></code><br />
<br />
Note: When searching for ‘Jack White’ as a guitarist the above example should suffice as a guitar is grouped under string instrument. This should be considered when implementing the above elements in search engines.<br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources such as song lyrics and film subtitles in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7878
M3F
2007-11-28T01:08:24Z
<p>Aleksandersen: /* Describing performers */ Performes for films and music, DONE!</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg Container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
'''HELP IS NEEDED!!''' See the ogg-dev email list or contribute directly to the wiki.<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML declaration and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes; as shown in the below example:<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded another date element should be added with the new date..<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute should be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
=====Describing performers=====<br />
The ‘performer’ element describes by whom the resource was performed. The required ‘sort’ attribute describes the preferred performer for listing. (This sorting attribute was included for backwards compatibility with music library managers/players that lists only one artist's name.)<br />
<br />
<code><pre><performer sort="White Stripes, The"><br />
[…]</performer></pre></code><br />
<br />
The optional ‘person’ element describes . The optional ‘instrument’ attribute is a space separated list of instruments with one or more of the following values ‘wind’, ‘lamellophone’, ‘percussion, ‘string’, ‘voice’, ‘electronic’, and ‘keyboard’. Two additional value to this attribute is ‘vocal’, and ‘lead-vocal’. The optional ‘role’ attribute is a space separated list of roles in films with one or more of the following values ‘actor’, ‘director’, and ‘producer’. '''(NEEDS WORK)'''. The optional ‘as’ attribute describes the name of the character as whom the performer played in a film.<br />
<br />
<code><pre><performer sort="White Stripes, The"><br />
<person instrument="string keyboard lead-vocal">Jack White</person><br />
<person instrument="percussion vocal">Meg White</person><br />
</performer></pre></code><br />
<br />
Note: When searching for ‘Jack White’ as a guitarist the above example should suffice as a guitar is grouped under string instrument. This should be considered when implementing the above elements in search engines.<br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources such as song lyrics and film subtitles in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7877
M3F
2007-11-28T00:48:45Z
<p>Aleksandersen: /* Describing encodings */</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg Container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
'''HELP IS NEEDED!!''' See the ogg-dev email list or contribute directly to the wiki.<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML declaration and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes; as shown in the below example:<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded another date element should be added with the new date..<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute should be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
=====Describing performers=====<br />
The ‘performers’ element describes by whom the resource was performed. The required ‘’<br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources such as song lyrics and film subtitles in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7876
M3F
2007-11-28T00:46:48Z
<p>Aleksandersen: /* Describing related texts (lyrics and subtitles) */</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg Container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
'''HELP IS NEEDED!!''' See the ogg-dev email list or contribute directly to the wiki.<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML declaration and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes; as shown in the below example:<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded another date element should be added with the new date..<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute should be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources such as song lyrics and film subtitles in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7875
M3F
2007-11-28T00:46:11Z
<p>Aleksandersen: /* Describing encodings */ Lyrcis and subtitles, this way!</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg Container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
'''HELP IS NEEDED!!''' See the ogg-dev email list or contribute directly to the wiki.<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML declaration and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes; as shown in the below example:<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded another date element should be added with the new date..<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute should be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
=====Describing related texts (lyrics and subtitles)=====<br />
The ‘texts’ element links media resources with CMML text resources (such as song lyrics and film subtitles) in the stream. The required ‘uri’ must point to another resource's id attribute or an external web URL resource. The optional ‘type’ attribute specifies the MIME type of external resource. )It is not encouraged to use the type nor URL option. Keep things in the stream, so to speak.)<br />
<br />
<code><pre><texts uri="#example-text-resource" /></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7874
M3F
2007-11-28T00:40:51Z
<p>Aleksandersen: /* Describing collections */</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg Container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
'''HELP IS NEEDED!!''' See the ogg-dev email list or contribute directly to the wiki.<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML declaration and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes; as shown in the below example:<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded another date element should be added with the new date..<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute should be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7873
M3F
2007-11-28T00:40:27Z
<p>Aleksandersen: /* Describing categories */</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg Container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
'''HELP IS NEEDED!!''' See the ogg-dev email list or contribute directly to the wiki.<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML declaration and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes; as shown in the below example:<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded another date element should be added with the new date..<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute should be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7872
M3F
2007-11-28T00:39:00Z
<p>Aleksandersen: </p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg Container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
'''HELP IS NEEDED!!''' See the ogg-dev email list or contribute directly to the wiki.<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML declaration and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes; as shown in the below example:<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded another date element should be added with the new date..<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute should be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7871
M3F
2007-11-28T00:30:52Z
<p>Aleksandersen: /* Describing the media resource */ Introducing the ‘category’ element for sorting by genres for films and music.</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg Container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
'''HELP IS NEEDED!!''' See the ogg-dev email list or contribute directly to the wiki.<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML declaration and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes; as shown in the below example:<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing categories=====<br />
The ‘category’ element describes the listing genre of the resource. The required ‘sort’ attribute describes the preferred genre for listing.<br />
<br />
<code><pre><category sort="metal"><br />
[…]</category></pre></code><br />
<br />
The optional ‘genre’ child element describes more in-depth sorting for the resource.<br />
<br />
<code><pre><category sort="metal"><br />
<genre>symphonic metal</genre><br />
<genre>goth metal</genre><br />
</category></pre></code><br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded another date element should be added with the new date..<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute should be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
====Describing an audio resource====<br />
====Describing a image resource====<br />
====Describing a text resource====<br />
====Describing a video resource====<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7870
M3F
2007-11-28T00:18:30Z
<p>Aleksandersen: /* Describing audiences */</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg Container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
'''HELP IS NEEDED!!''' See the ogg-dev email list or contribute directly to the wiki.<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML declaration and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes; as shown in the below example:<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing audiences=====<br />
The ‘audience’ element is a self-regulated filtering mechanism intended for parental control and self-regulated filtering. The optional ‘nudity’ attribute is a space separated list with one or more of the following values ‘breasts’, ‘buttocks’, and ‘genitals’. The optional ‘sexual’ attribute is a space separated list of with one or more for the following values ‘kissing’, ‘sexact’, ‘touching’, ‘sexlanguage’, ‘erections’ and ‘erotica’. The optional ‘violence’ attribute is a space separated list with one or more of the following values ‘rape’, ‘human-injury’, ‘animal-injury’, ‘anime-injury’, ‘human-blod’, ‘animal-blod’, ‘anime-blod’, ‘human-torture’, ‘animal-torture’, and ‘anime-torture’. The optional ‘language’ atribute is a space separated list with one or more of the following values ‘vulgar’, ’swear’, and ‘mild’. The optional ‘harmful’ attribute is a space separated list with one or more of the following values ‘tobacco’, ‘alcohol’, ‘drug’, ‘weapons’, ‘example-dangerous’, ‘horror’, and ‘discrimination’. The required ‘context’ attribute is a space separated list with one or more of the following values ‘artistic’, ‘educational’, ‘medical’, ’sports’ and ‘news context’.<br />
<br />
<code><pre><audience context="education" language="mild" nudity="sexact kissing" […] /></pre></code><br />
<br />
Note: The filters are based on ''Internet Content Ration Associations''' (ICRA) work. See their [http://www.icra.org/label/generator/ label generator] for full meaning of values.<br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded another date element should be added with the new date..<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute should be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
====Describing an audio resource====<br />
====Describing a image resource====<br />
====Describing a text resource====<br />
====Describing a video resource====<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7869
M3F
2007-11-27T23:48:44Z
<p>Aleksandersen: /* Addressing the media resource */ Added ‘uri’ attribute to make it work with more formats.</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg Container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
'''HELP IS NEEDED!!''' See the ogg-dev email list or contribute directly to the wiki.<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML declaration and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes; as shown in the below example:<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
The ‘uri’ attribute may be used in stead of ‘oggserial’. For ogg serials the URI would be ‘urn:oggserial:#0×EXAMPLE’. (Other container and native file formats may specify any URI that works with that format.)<br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded another date element should be added with the new date..<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute should be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
====Describing an audio resource====<br />
====Describing a image resource====<br />
====Describing a text resource====<br />
====Describing a video resource====<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7828
M3F
2007-11-25T23:37:57Z
<p>Aleksandersen: /* Describing collections */</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg Container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
'''HELP IS NEEDED!!''' See the ogg-dev email list or contribute directly to the wiki.<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML declaration and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes; as shown in the below example:<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
Note that CD singles are indeed collections too.<br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded another date element should be added with the new date..<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute should be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
====Describing an audio resource====<br />
====Describing a image resource====<br />
====Describing a text resource====<br />
====Describing a video resource====<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7827
M3F
2007-11-25T23:26:03Z
<p>Aleksandersen: /* Describing collections */</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg Container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
'''HELP IS NEEDED!!''' See the ogg-dev email list or contribute directly to the wiki.<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML declaration and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes; as shown in the below example:<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource. The optional ‘type’ attribute should be the MIME type of the image resource. The attribute should not be used when linking to other internal resources; but is encurraged when linking to external resources (such as web URLs).<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded another date element should be added with the new date..<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute should be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
====Describing an audio resource====<br />
====Describing a image resource====<br />
====Describing a text resource====<br />
====Describing a video resource====<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7826
M3F
2007-11-25T23:22:20Z
<p>Aleksandersen: /* Describing the media resource */ Introducing the ‘collection’ element.</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg Container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
'''HELP IS NEEDED!!''' See the ogg-dev email list or contribute directly to the wiki.<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML declaration and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes; as shown in the below example:<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing collections=====<br />
Media resources may appear in collections (DVD set boxes, CD albums, etc.). The ‘collection’ element describes the resources relation and order/place in collections. The optional ‘date’ attribute describes the date the collection was made publicly available (its ‘release date’). The optional ‘track’ attribute describes the resource's order/place in the collection. The optional ‘tracks’ attribute describes the total number of resources in the collection. The optional ‘uri’ attribute should uniquely identify the collection as a whole.<br />
<br />
<code><pre><collection date="2019-01-15" track="2" tracks="12" uri="urn:x-isrc:0123456789"><br />
[…]</collection></pre></code><br />
<br />
The optional ‘artwork’ child element links the collection to a image resource. The required ‘uri’ attribute should either be a resource's ‘id’ attribute value with a ‘#’ prefix (as below) or a web URL resource.<br />
<br />
<code><pre><collection><br />
<artwork uri="#embedded-image" /><br />
</collection></pre></code><br />
<br />
The optional ‘title’, ‘subtitle’, and ‘tagline’ child elements function as the ‘resource:title’ element.<br />
<br />
<code><pre><collection><br />
<title>Great Audio VI</title><br />
<tagline>Music that rocks you!</tagline><br />
</collection></pre></code><br />
<br />
=====Describing encodings=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded another date element should be added with the new date..<br />
<br />
<code><pre><encoding><br />
<date>2019-01-21</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute should be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the media.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
====Describing an audio resource====<br />
====Describing a image resource====<br />
====Describing a text resource====<br />
====Describing a video resource====<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7825
M3F
2007-11-25T23:06:16Z
<p>Aleksandersen: /* Describing recordings */</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg Container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
'''HELP IS NEEDED!!''' See the ogg-dev email list or contribute directly to the wiki.<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML declaration and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes; as shown in the below example:<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing encoding=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded another date element should be added with the new date..<br />
<br />
<code><pre><encoding><br />
<date>2018-10-25</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute should be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the CD.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘recording’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
====Describing an audio resource====<br />
====Describing a image resource====<br />
====Describing a text resource====<br />
====Describing a video resource====<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7824
M3F
2007-11-25T23:02:06Z
<p>Aleksandersen: /* Describing recordings */ Introducing ‘duration’ element.</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg Container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
'''HELP IS NEEDED!!''' See the ogg-dev email list or contribute directly to the wiki.<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML declaration and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes; as shown in the below example:<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing encoding=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded another date element should be added with the new date..<br />
<br />
<code><pre><encoding><br />
<date>2018-10-25</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute should be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the CD.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘rights’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘duration’ child element describes how long the recording lasts. This value must be specified as a colon separated value containing days:hours:minutes:seconds:milliseconds. When the value is low enough to not use a field it should be left blank or have the value zero (‘0’). The below examples says zero days, zero hours, seven minutes, four seconds, and 54 milliseconds.<br />
<br />
<code><pre><recording><br />
<duration>::07:04:54</duration><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
====Describing an audio resource====<br />
====Describing a image resource====<br />
====Describing a text resource====<br />
====Describing a video resource====<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7823
M3F
2007-11-25T22:54:20Z
<p>Aleksandersen: /* Describing titles */</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg Container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
'''HELP IS NEEDED!!''' See the ogg-dev email list or contribute directly to the wiki.<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML declaration and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes; as shown in the below example:<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing encoding=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded another date element should be added with the new date..<br />
<br />
<code><pre><encoding><br />
<date>2018-10-25</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute should be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the CD.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘rights’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles, subtitles, and taglines=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
====Describing an audio resource====<br />
====Describing a image resource====<br />
====Describing a text resource====<br />
====Describing a video resource====<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7822
M3F
2007-11-25T22:50:33Z
<p>Aleksandersen: /* Describing the media resource */ Introducing the ‘title’, ‘subtitle’, and ‘tagline’ elements.</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg Container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
'''HELP IS NEEDED!!''' See the ogg-dev email list or contribute directly to the wiki.<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML declaration and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes; as shown in the below example:<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing encoding=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded another date element should be added with the new date..<br />
<br />
<code><pre><encoding><br />
<date>2018-10-25</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute should be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the CD.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘rights’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
=====Describing titles=====<br />
The ‘title’ element describes the resource's title.<br />
<br />
<code><pre><title>Awesome Audio Track</title></pre></code><br />
<br />
The ‘subtitle’ element describes secondary title.<br />
<br />
<code><pre><subtitle>The Sound of Music</subtitle></pre></code><br />
<br />
The ‘tagline’ element describes promotional taglines and slogans.<br />
<br />
<code><pre><tagline>Get to the real sound!</tagline></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
====Describing an audio resource====<br />
====Describing a image resource====<br />
====Describing a text resource====<br />
====Describing a video resource====<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7821
M3F
2007-11-25T22:43:19Z
<p>Aleksandersen: Removed deprecated example. (Finally got to that part!)</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg Container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
'''HELP IS NEEDED!!''' See the ogg-dev email list or contribute directly to the wiki.<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML declaration and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes; as shown in the below example:<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing encoding=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded another date element should be added with the new date..<br />
<br />
<code><pre><encoding><br />
<date>2018-10-25</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute should be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the CD.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘rights’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
====Describing an audio resource====<br />
====Describing a image resource====<br />
====Describing a text resource====<br />
====Describing a video resource====<br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7820
M3F
2007-11-25T22:42:27Z
<p>Aleksandersen: /* History */</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg Container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
'''HELP IS NEEDED!!''' See the ogg-dev email list or contribute directly to the wiki.<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML declaration and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes; as shown in the below example:<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing encoding=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded another date element should be added with the new date..<br />
<br />
<code><pre><encoding><br />
<date>2018-10-25</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute should be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the CD.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘rights’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
====Describing an audio resource====<br />
====Describing a image resource====<br />
====Describing a text resource====<br />
====Describing a video resource====<br />
<br />
===Full example===<br />
(Deprecated. Will be updated later.)<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" lang="en" base="./" ?><br />
<metadata xmlns="http://xmlns.xiph.org/media-metadata/0.1/"><br />
<video type="video/theora" /><br />
<image type="application/svg+xml" /><br />
<text type="text/plain" /><br />
<audio type="audio/flac" oggserial="audio.flac"><br />
<title>Sink To the Bottom</title><br />
<collection track="2" tracks="12" date="1996-10-01" uri="urn:x-isrc:0123456789"><br />
<title>Fountains of Wayne</title><br />
<artwork uri="#embedded-image" /></collection><br />
<collection track="1" tracks="1" date="1997"><br />
<title>Sink To the Bottom</title></collection><br />
<entities><br />
<person role="vocal">Chris Collingwood</person><br />
<person role="instrument vocal" title="base">Adam Schlesinger</person><br />
<person role="vocal instrument" title="guitar and vocals">Jody Porter</person><br />
<person role="instruments" title="drums">Brian Young</person><br />
<organisation role="ensemble">Some People in the Background</organisation><br />
<person role="producer">Person behind the Glass Wall</person><br />
<organisation role="label" uri="http://recording-people.com/">Recording Company</organisation></entities><br />
<rights date="2018">℗ 2008 Recording Company. All distribution rights reserved.</rights><br />
<duration>23:04:01</duration><br />
<date>2007-01-08</date><br />
<location>China, Earth</location><br />
<encoding><br />
<date>2009-02-17</date><br />
<quality compression="8" /><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /></encoding></audio></metadata></pre></code><br />
<br />
==History==<br />
* 2007-11-25 – Began work with simplifying the format.<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7819
M3F
2007-11-25T22:39:15Z
<p>Aleksandersen: /* Describing recordings */</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg Container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
'''HELP IS NEEDED!!''' See the ogg-dev email list or contribute directly to the wiki.<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML declaration and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes; as shown in the below example:<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing encoding=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded another date element should be added with the new date..<br />
<br />
<code><pre><encoding><br />
<date>2018-10-25</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute should be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the CD.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘rights’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording></pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording></pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
====Describing an audio resource====<br />
====Describing a image resource====<br />
====Describing a text resource====<br />
====Describing a video resource====<br />
<br />
===Full example===<br />
(Deprecated. Will be updated later.)<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" lang="en" base="./" ?><br />
<metadata xmlns="http://xmlns.xiph.org/media-metadata/0.1/"><br />
<video type="video/theora" /><br />
<image type="application/svg+xml" /><br />
<text type="text/plain" /><br />
<audio type="audio/flac" oggserial="audio.flac"><br />
<title>Sink To the Bottom</title><br />
<collection track="2" tracks="12" date="1996-10-01" uri="urn:x-isrc:0123456789"><br />
<title>Fountains of Wayne</title><br />
<artwork uri="#embedded-image" /></collection><br />
<collection track="1" tracks="1" date="1997"><br />
<title>Sink To the Bottom</title></collection><br />
<entities><br />
<person role="vocal">Chris Collingwood</person><br />
<person role="instrument vocal" title="base">Adam Schlesinger</person><br />
<person role="vocal instrument" title="guitar and vocals">Jody Porter</person><br />
<person role="instruments" title="drums">Brian Young</person><br />
<organisation role="ensemble">Some People in the Background</organisation><br />
<person role="producer">Person behind the Glass Wall</person><br />
<organisation role="label" uri="http://recording-people.com/">Recording Company</organisation></entities><br />
<rights date="2018">℗ 2008 Recording Company. All distribution rights reserved.</rights><br />
<duration>23:04:01</duration><br />
<date>2007-01-08</date><br />
<location>China, Earth</location><br />
<encoding><br />
<date>2009-02-17</date><br />
<quality compression="8" /><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /></encoding></audio></metadata></pre></code><br />
<br />
==History==<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen
https://wiki.xiph.org/index.php?title=M3F&diff=7818
M3F
2007-11-25T22:38:45Z
<p>Aleksandersen: /* Describing the media resource */ Introduces ‘recording’ element.</p>
<hr />
<div>{{draft}}<br />
<br />
See other [[Metadata|suggested metadata methods]].<br />
<br />
This document describes the '''proposed''' ''Multimedia Metadata Format'' (M3F) for the Ogg Container. The format is built on the Extensible Markup Language (XML). It is intended to describe any kind of multimedia (audio, video, text, images, …) that can reside in an [[Ogg|Ogg container]].<br />
<br />
'''HELP IS NEEDED!!''' See the ogg-dev email list or contribute directly to the wiki.<br />
<br />
==Format description==<br />
''Multimedia Metadata Format'' documents describe media resources in Ogg containers and stream. The format can link resources with one another for media players that support rendering multiple kinds of media. (Such as audio tracks and albumart; and video and commentary audio overlays.)<br />
<br />
No element except ‘metadata’ is required. But some elements have required attributes.<br />
<br />
All dates must be formatted as ''ISO 8601:2000 &ndash; International Date and Time Format''.<br />
<br />
===XML declaration and name spaces===<br />
A metadata document must have a standard XML declaration on the very first line. The XML deceleration must contain the ‘version’ and ‘encoding’ attributes; as shown in the below example:<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" ?></pre></code><br />
<br />
The ‘metadata’ element is required as the top level container. It must contain at least one XML name space defining the format via the ‘xmlns’ attribute. (The URL used in the example is not the final address as no name space have been created yet.)<br />
<br />
<code><pre><metadata xmlns="http://xmlns.xiph.org/metadata/0.1/"><br />
[…]</metadata></pre></code><br />
<br />
The '''Multimedia Metadata Format''' can be extended by including multiple XML name spaces to the ‘metadata’ element. As with any other XML format: Software may not add, modify, or expect elements and attributes not defined by a XML name space.<br />
<br />
===Addressing the media resource===<br />
Media resources in the stream is described as ‘resource’ children of the ‘metadata’ element. Each resource element must have a ‘oggserial’ linking it to the correct chunk in the stream. It must also have a ‘type’ attribute with the native MIME type of the resource.<br />
<br />
<code><pre><resource oggserial="0×EXAMPLE" type="audio/vorbis"><br />
[…]</resource></pre></code><br />
<br />
Resource elements can also have an optional unique ‘id’ attribute. The ‘id’ attribute is used as a label when the resource needs to be addressed by another resource element.<br />
<br />
<code><pre><resource id="unique-resource-id" […]><br />
[…]</resource></pre></code><br />
<br />
===Describing the media resource===<br />
There are many children elements of the ‘resource’ element. All are optional and everyone can be used with any resource. Though media type spesific children are grouped together. These children does not make much sense with all media types<br />
<br />
=====Describing encoding=====<br />
The ‘encoding’ element describes the encoding or digitalization of the resource.<br />
<br />
<code><pre><encoding><br />
[…]</encoding></pre></code><br />
<br />
The optional ‘date’ child element describes when the last file encoding happen. When the file is re-encoded another date element should be added with the new date..<br />
<br />
<code><pre><encoding><br />
<date>2018-10-25</date><br />
</encoding></pre></code><br />
<br />
The optional ‘source’ child element describes the original media source for the encoding. The required ‘media’ attribute should be either ‘cd’, ‘dvd’, ‘tape’, ‘web-stream’, ‘tv-stream’, ‘radio-stream’, or ‘unknown’. The optional ‘uri’ attribute should uniquely identify the CD.<br />
<br />
<code><pre><encoding><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
</encoding></pre></code><br />
<br />
The optional ‘software’ child element describes the softwares used for the encoding. The optional ‘title’ attribute describes the software name. The optional ‘version’ attribute describes the software version. The required ‘uri’ attribute should uniquely identify the software (and version).<br />
<br />
<code><pre><encoding><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /><br />
</encoding></pre></code><br />
<br />
=====Describing recordings=====<br />
The ‘rights’ element describes recording conditions.<br />
<br />
<code><pre><recording><br />
[…]</recording></pre></code><br />
<br />
The optional ‘date’ child element describes when the recording was made.<br />
<br />
<code><pre><recording><br />
<date>2018-10-17</date><br />
</recording</pre></code><br />
<br />
The optional ‘location’ child element describes when the recording was made in a human readable-way. The optional ‘lat’ and ‘long’ attributes are the machine-readable latitude and longitude position of the recording.<br />
<br />
<code><pre><recording><br />
<location lat="22.20N" long="114.11E">Hong Kong, China, Earth</location><br />
</recording</pre></code><br />
<br />
=====Describing rights=====<br />
The ‘rights’ element describes the Copyright and license status of the resource.<br />
<br />
<code><pre><rights><br />
[…]</rights></pre></code><br />
<br />
The optional ‘date’ child element describes when the Copyright were put in place. This is especially useful when determining when a work's Copyright expires.<br />
<br />
<code><pre><rights><br />
<date>2018-10-20</date><br />
</rights></pre></code><br />
<br />
The optional ‘license’ child element is a short and human-readable version of the full license.<br />
<br />
<code><pre><rights><br />
<license>© 2018 Recording Company. All distribution rights reserved.</license><br />
</rights></pre></code><br />
<br />
The optional ‘link’ child element can point to any URI via it's ‘uri’ attribute where a full version of the license is available. This means it can be pointed to a ‘resource’ element via it's ‘id’ attribute as well!<br />
<br />
<code><pre><rights><br />
<link type="text/html" uri="http://licenses.record-company.com/artist.html" /><br />
</rights></pre></code><br />
<br />
Below are media type specific children of the ‘resource’ element. The elements are grouped by the media type they describe.<br />
<br />
====Describing an audio resource====<br />
====Describing a image resource====<br />
====Describing a text resource====<br />
====Describing a video resource====<br />
<br />
===Full example===<br />
(Deprecated. Will be updated later.)<br />
<br />
<code><pre><?xml version="1.0" encoding="UTF-8" lang="en" base="./" ?><br />
<metadata xmlns="http://xmlns.xiph.org/media-metadata/0.1/"><br />
<video type="video/theora" /><br />
<image type="application/svg+xml" /><br />
<text type="text/plain" /><br />
<audio type="audio/flac" oggserial="audio.flac"><br />
<title>Sink To the Bottom</title><br />
<collection track="2" tracks="12" date="1996-10-01" uri="urn:x-isrc:0123456789"><br />
<title>Fountains of Wayne</title><br />
<artwork uri="#embedded-image" /></collection><br />
<collection track="1" tracks="1" date="1997"><br />
<title>Sink To the Bottom</title></collection><br />
<entities><br />
<person role="vocal">Chris Collingwood</person><br />
<person role="instrument vocal" title="base">Adam Schlesinger</person><br />
<person role="vocal instrument" title="guitar and vocals">Jody Porter</person><br />
<person role="instruments" title="drums">Brian Young</person><br />
<organisation role="ensemble">Some People in the Background</organisation><br />
<person role="producer">Person behind the Glass Wall</person><br />
<organisation role="label" uri="http://recording-people.com/">Recording Company</organisation></entities><br />
<rights date="2018">℗ 2008 Recording Company. All distribution rights reserved.</rights><br />
<duration>23:04:01</duration><br />
<date>2007-01-08</date><br />
<location>China, Earth</location><br />
<encoding><br />
<date>2009-02-17</date><br />
<quality compression="8" /><br />
<source media="cd" uri="urn:x-isrc:0123456789" /><br />
<software title="flac" version="2.2" uri="http://xiph.org/flac/" /></encoding></audio></metadata></pre></code><br />
<br />
==History==<br />
* 2007-09-08 – Wiki page created based on original format and suggestsion from the email list.<br />
* 2007-09-06 – Format suggested on Xiph's ogg-dev email list by [[User:Aleksandersen|Daniel Aleksandersen]].</div>
Aleksandersen