Metadata: Difference between revisions

From XiphWiki
Jump to navigation Jump to search
No edit summary
(Changed tense of M3F + tidy)
 
(73 intermediate revisions by 18 users not shown)
Line 1: Line 1:
==Motivation==
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 the draft [[M3F|Multimedia Metadata Format (M3F)]] provides more sophisticated information.
 
== [[VorbisComment]]s ==


All the Xiph.org codecs have some internal mechanism for including metadata about the current stream.
All the Xiph.org codecs have some internal mechanism for including metadata about the current stream.
Generally, this is one of the codec headers, and in the words of the [http://www.xiph.org/ogg/vorbis/doc/v-comment.html vorbis spec],  
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],  
"It is meant for short, text comments...much like someone jotting a quick note on the bottom of a CDR."
"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).
 
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, GENRE, DATE, LOCATION, CONTACT, ISRC. See the [http://www.xiph.org/vorbis/doc/v-comment.html specification] for the intent of each one.
 
The [[VorbisComment]] page contains improvements to the suggested comment set.
 
== [[FLAC]] metadata blocks ==
 
Metadata is included in the FLAC codec as METADATA_BLOCK_DATA. Seven types of metadata block are defined: 
#''METADATA_BLOCK_STREAMINFO'': Sample rate, number of channels, etc.
#''METADATA_BLOCK_PADDING'': Nul padding.
#''METADATA_BLOCK_APPLICATION'': Third-party applications can register an ID. Metadata is typically 32-bit integers, but any datatypes can be specified.
#''METADATA_BLOCK_SEEKTABLE'': For one or more seek points.
#''METADATA_BLOCK_VORBIS_COMMENT'': Also known as FLAC tags, the contents of a VorbisComment 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 VorbisComment packet in FLAC must fit within that limit.
#''METADATA_BLOCK_CUESHEET'': Typically, but not necessarily, for CD-DA (Red Book) cuesheets.
#''METADATA_BLOCK_PICTURE'': For binary picture data.
 
== [[Ogg Skeleton]] ==
 
[[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. The latest version, [[Ogg Skeleton 4]], also provides a keyframe index to enable faster seeking over high latency networks.
 
Ogg Skeleton 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.
 
== [[OggKate]] ==
 
[[OggKate]] was originally designed for karaoke and text. The stream can carry text and images, and these can be animated.
 
== [[CMML]] (deprecated) ==
 
CMML is not used anymore; use [[OggKate]] instead. The [[CMML|Continuous Media Markup Language]] allowed time-based marking up of media streams, at its simplest this allowed you to divide media files into clips and provide information about each clip.
 
== [[M3F]] (unused draft) ==
 
[[M3F|Multimedia Metadata Format]] is not being developed anymore; use [[VorbisComment]] instead.
 
The format was intended to replace VorbisComments for the use of ''structured'' metadata, allowing VorbisComments to revert to its orginally intended use of "short, text comments ... much like someone jotting a quick note on the bottom of a CDR."
 
[[M3F]] for the Ogg container was a draft specification which aimed to provide metadata for media streams. The exact aims of this project were still under development, but they included being able to describe artist relationships to a piece more accurately as well as providing the structure to encourage more reliable metadata.


This works well enough for most things, and can be overloaded/abused (depending on your point of view)
== [[XMLEmbedding]] (unused draft) ==
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.


* ''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.
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:
* RDF + dublin core
* [http://www.adobe.com/products/xmp/ XMP]
* [http://wiki.musicbrainz.org/MusicBrainzXMLMetaData MusicBrainz]
* [http://www.w3.org/Graphics/SVG/ SVG]
This specification is still not past the discussion stage.


* ''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?
== Aims of advanced metadata ==


* ''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.
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.


==Proposed Solutions==
* '''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.


RDF + dublin core
* '''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?


XML-encoding (generic rdf or CMML?)
* '''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.
[http://www.shop263.com/i-47/1.htm 建筑用泡沫填缝]
[http://www.shop263.com/i-47/2.htm 建筑装潢胶粘剂]
[http://www.shop263.com/i-47/3.htm 胶水]
[http://www.shop263.com/i-47/4.htm 胶粘]
[http://www.shop263.com/i-47/5.htm 胶粘带]
[http://www.shop263.com/i-47/6.htm 胶粘剂]
[http://www.shop263.com/i-47/7.htm 胶粘剂原料]
[http://www.shop263.com/i-47/8.htm 金刚石磨轮]
[http://www.shop263.com/i-47/9.htm 精密注塑件]
[http://www.shop263.com/i-47/10.htm 精细化学品]
[http://www.shop263.com/i-47/11.htm 桔色硅胶]
[http://www.shop263.com/i-47/12.htm 聚氨脂胶]
[http://www.shop263.com/i-47/13.htm 聚氨酯]
[http://www.shop263.com/i-47/14.htm 聚氨酯胶粘剂]
[http://www.shop263.com/i-47/15.htm 聚氨酯清漆]
[http://www.shop263.com/i-47/16.htm 聚氨酯树脂]
[http://www.shop263.com/i-47/17.htm 聚氨酯油墨连接料]
[http://www.shop263.com/i-47/18.htm 聚酯多元系列]
[http://www.shop263.com/i-47/19.htm 聚酯漆]
[http://www.shop263.com/i-47/20.htm 聚酯输送带]
[http://www.shop263.com/i-47/21.htm 绝缘电气胶带]
[http://www.shop263.com/i-47/22.htm 绝缘胶带]
[http://www.shop263.com/i-47/23.htm 抗冲改性剂]
[http://www.shop263.com/i-47/24.htm 空气过滤器用胶]
[http://www.shop263.com/i-47/25.htm 快干环保装饰胶]
[http://www.shop263.com/i-47/26.htm 蓝色硅胶]
[http://www.shop263.com/i-47/27.htm 镭射烟用衬纸]
[http://www.shop263.com/i-47/28.htm 冷裱膜系]
[http://www.shop263.com/i-47/29.htm 冷补胶]
[http://www.shop263.com/i-47/30.htm 离形胶带]
[http://www.shop263.com/i-47/31.htm 沥青漆]
[http://www.shop263.com/i-47/32.htm 邻苯二甲酰亚胺]
[http://www.shop263.com/i-47/33.htm 六甲基二硅氮烷]
[http://www.shop263.com/i-47/34.htm 六甲基二硅脲]
[http://www.shop263.com/i-47/35.htm 铝箔复合胶]
[http://www.shop263.com/i-47/36.htm 铝箔清漆]
[http://www.shop263.com/i-47/37.htm 铝箔纸]
[http://www.shop263.com/i-47/38.htm 铝型材表面处理药品]
[http://www.shop263.com/i-47/39.htm 氯丁酚醛环保强力胶]
[http://www.shop263.com/i-47/40.htm 氯丁万能胶]
[http://www.shop263.com/i-47/41.htm 氯化树脂]
[http://www.shop263.com/i-47/42.htm 氯化橡胶涂料]
[http://www.shop263.com/i-47/43.htm 螺纹密封胶]
[http://www.shop263.com/i-47/44.htm 螺纹锁固密封剂]
[http://www.shop263.com/i-47/45.htm 玛拉胶带]
[http://www.shop263.com/i-47/46.htm 锚杆钻机]
[http://www.shop263.com/i-47/47.htm 锚杆钻机玻璃钢支腿]
[http://www.shop263.com/i-47/48.htm 密封剂]
[http://www.shop263.com/i-47/49.htm 密封胶]
[http://www.shop263.com/i-47/50.htm 密封圈]
[http://www.shop263.com/i-47/51.htm 棉纸基双面胶粘带]
[http://www.shop263.com/i-47/52.htm 免水胶带]
[http://www.shop263.com/i-47/53.htm 民用胶粘带]
[http://www.shop263.com/i-47/54.htm 民用装饰涂料]
[http://www.shop263.com/i-47/55.htm 模具胶专用补强剂]
[http://www.shop263.com/i-47/56.htm 模温机]
[http://www.shop263.com/i-47/57.htm 木板胶]
[http://www.shop263.com/i-47/58.htm 木材湿接胶]
[http://www.shop263.com/i-47/59.htm 木材专用组装胶]
[http://www.shop263.com/i-47/60.htm 内墙腻子]
[http://www.shop263.com/i-47/61.htm 内外墙涂料]
[http://www.shop263.com/i-47/62.htm 纳米改性酚醛树脂]
[http://www.shop263.com/i-47/63.htm 耐高温阻燃片材]
[http://www.shop263.com/i-47/64.htm 尼龙输送带]
[http://www.shop263.com/i-47/65.htm 黏合剂]
[http://www.shop263.com/i-47/66.htm 尿布胶带]
[http://www.shop263.com/i-47/67.htm 脲醛胶]
[http://www.shop263.com/i-47/68.htm 脲醛脲粘剂]
[http://www.shop263.com/i-47/69.htm 脲醛树脂胶]
[http://www.shop263.com/i-47/70.htm 牛皮纸胶带]
[http://www.shop263.com/i-47/71.htm 牛皮纸再湿胶带]
[http://www.shop263.com/i-47/72.htm 蒎烯]
[http://www.shop263.com/i-47/73.htm 泡棉胶]
[http://www.shop263.com/i-47/74.htm 泡棉胶带]
[http://www.shop263.com/i-47/75.htm 喷胶]
[http://www.shop263.com/i-47/76.htm 批土]
[http://www.shop263.com/i-47/77.htm 皮革工业用双面胶带]
[http://www.shop263.com/i-47/78.htm 拼板胶]
[http://www.shop263.com/i-47/79.htm 平面密封剂]
[http://www.shop263.com/i-47/80.htm 普通输送带]
[http://www.shop263.com/i-47/81.htm 汽车密封胶]
[http://www.shop263.com/i-47/82.htm 汽车配线]
[http://www.shop263.com/i-47/83.htm 汽车刹车片]
[http://www.shop263.com/i-47/84.htm 汽车瞬间堵漏胶]
[http://www.shop263.com/i-47/85.htm 汽车通用胶]
[http://www.shop263.com/i-47/86.htm 强力装饰胶粘剂]
[http://www.shop263.com/i-47/87.htm 清洗剂]
[http://www.shop263.com/i-47/88.htm 氰基丙烯酸酯胶]
[http://www.shop263.com/i-47/89.htm 全息铝箔]
[http://www.shop263.com/i-47/90.htm 全息烟膜]
[http://www.shop263.com/i-47/91.htm 染料]
[http://www.shop263.com/i-47/92.htm 染料中间体]
[http://www.shop263.com/i-47/93.htm 热固性酚醛树脂]
[http://www.shop263.com/i-47/94.htm 热熔胶]
[http://www.shop263.com/i-47/95.htm 热熔压敏胶]
[http://www.shop263.com/i-47/96.htm 热熔粘合剂]
[http://www.shop263.com/i-47/97.htm 热塑性酚醛树脂]
[http://www.shop263.com/i-47/98.htm 日常用化工品]
[http://www.shop263.com/i-47/99.htm 双酚]
[http://www.shop263.com/i-47/100.htm 双酚A树脂单体]
[http://www.shop263.com/i-47/101.htm 双面胶]
[http://www.shop263.com/i-47/102.htm 双面胶带]
[http://www.shop263.com/i-47/103.htm 水晶胶]
[http://www.shop263.com/i-47/104.htm 水溶性复合胶]
[http://www.shop263.com/i-47/105.htm 水性聚氨酯胶]
[http://www.shop263.com/i-47/106.htm 树脂锚固剂]
[http://www.shop263.com/i-47/107.htm 瞬间固化强力胶]
[http://www.shop263.com/i-47/108.htm 瞬间胶]
[http://www.shop263.com/i-47/109.htm 瞬间强力胶]
[http://www.shop263.com/i-47/110.htm 四氢邻苯二甲酰亚胺]
[http://www.shop263.com/i-47/111.htm 松香丁苯胶]
[http://www.shop263.com/i-47/112.htm 塑胶]
[http://www.shop263.com/i-47/113.htm 塑料]
[http://www.shop263.com/i-47/114.htm 塑料包装]
[http://www.shop263.com/i-47/115.htm 塑料改性材料]
[http://www.shop263.com/i-47/116.htm 塑料容器]
[http://www.shop263.com/i-47/117.htm 塑料上光油]
[http://www.shop263.com/i-47/118.htm 酸性结构胶]
[http://www.shop263.com/i-47/119.htm 羧基丁苯胶乳]
[http://www.shop263.com/i-47/120.htm 太阳胶]
[http://www.shop263.com/i-47/121.htm 炭布]
[http://www.shop263.com/i-47/122.htm 炭绳]
[http://www.shop263.com/i-47/123.htm 炭毡]
[http://www.shop263.com/i-47/124.htm 特殊双面胶带]
[http://www.shop263.com/i-47/125.htm 特种助剂]
[http://www.shop263.com/i-47/126.htm 天燃气置换密封胶]
[http://www.shop263.com/i-47/127.htm 填缝剂]
[http://www.shop263.com/i-47/128.htm 萜烯树脂]
[http://www.shop263.com/i-47/129.htm 铜版]
[http://www.shop263.com/i-47/130.htm 透明玻胶]
[http://www.shop263.com/i-47/131.htm 涂料]
[http://www.shop263.com/i-47/132.htm 脱漆剂]
[http://www.shop263.com/i-47/133.htm 万吨级连续化萜烯树脂装置]
[http://www.shop263.com/i-47/134.htm 万能胶]
[http://www.shop263.com/i-47/135.htm 文具胶]
[http://www.shop263.com/i-47/136.htm 无纺布粘合剂]
[http://www.shop263.com/i-47/137.htm 无钴变色硅胶]
[http://www.shop263.com/i-47/138.htm 无机胶]
[http://www.shop263.com/i-47/139.htm 无醛水性高分子胶粘剂]
[http://www.shop263.com/i-47/140.htm 无三苯家俱用胶]
[http://www.shop263.com/i-47/141.htm 无三苯鞋用胶粘剂]
[http://www.shop263.com/i-47/142.htm 无三苯装饰万能胶]
[http://www.shop263.com/i-47/143.htm 细空球形硅胶]
[http://www.shop263.com/i-47/144.htm 细孔硅胶]
[http://www.shop263.com/i-47/145.htm 橡胶型压敏胶]
[http://www.shop263.com/i-47/146.htm 消磁线圈线束缠绕]
[http://www.shop263.com/i-47/147.htm 硝基各色醇酸磁漆]
[http://www.shop263.com/i-47/148.htm 硝基漆]
[http://www.shop263.com/i-47/149.htm 鞋用聚氨酯胶粘剂]
[http://www.shop263.com/i-47/150.htm 鞋用粘胶]
[http://www.shop263.com/i-47/151.htm 烟片胶]
[http://www.shop263.com/i-47/152.htm 颜料糊]
[http://www.shop263.com/i-47/153.htm 颜料染料]
[http://www.shop263.com/i-47/154.htm 厌氧胶]
[http://www.shop263.com/i-47/155.htm 厌氧密封胶粘剂]
[http://www.shop263.com/i-47/156.htm 腰果壳油改性酚醛树脂]
[http://www.shop263.com/i-47/157.htm 药水糊]
[http://www.shop263.com/i-47/158.htm 液晶]
[http://www.shop263.com/i-47/159.htm 医药产品]
[http://www.shop263.com/i-47/160.htm 医药中间体]
[http://www.shop263.com/i-47/161.htm 乙苯]
[http://www.shop263.com/i-47/162.htm 乙烯基树脂]
[http://www.shop263.com/i-47/163.htm 异氰酸酯]
[http://www.shop263.com/i-47/164.htm 印花粘合剂]
[http://www.shop263.com/i-47/165.htm 印染前处理]
[http://www.shop263.com/i-47/166.htm 印染助剂]
[http://www.shop263.com/i-47/167.htm 印刷用油墨]
[http://www.shop263.com/i-47/168.htm 荧光纸]
[http://www.shop263.com/i-47/169.htm 油墨]
[http://www.shop263.com/i-47/170.htm 有机硅材料]
[http://www.shop263.com/i-47/171.htm 有机硅产品]
[http://www.shop263.com/i-47/172.htm 有机硅胶]
[http://www.shop263.com/i-47/173.htm 有机硅密封胶]
[http://www.shop263.com/i-47/174.htm 有机无机颜料]
[http://www.shop263.com/i-47/175.htm 渔竿把柄材料]
[http://www.shop263.com/i-47/176.htm 圆柱型零件固持剂]
[http://www.shop263.com/i-47/177.htm 增粘树脂]
[http://www.shop263.com/i-47/178.htm 粘合剂]
[http://www.shop263.com/i-47/179.htm 真空炉加热室总成]
[http://www.shop263.com/i-47/180.htm 织物粘合专用胶]
[http://www.shop263.com/i-47/181.htm 植绒胶]
[http://www.shop263.com/i-47/182.htm 植物胶]
[http://www.shop263.com/i-47/183.htm 指接胶]
[http://www.shop263.com/i-47/184.htm 制鞋胶粘剂]
[http://www.shop263.com/i-47/185.htm 中空容器]
[http://www.shop263.com/i-47/186.htm 中温粘合剂]
[http://www.shop263.com/i-47/187.htm 中性硅酮密封胶]
[http://www.shop263.com/i-47/188.htm 中性硅酮耐候胶]
[http://www.shop263.com/i-47/189.htm 中性结构胶]
[http://www.shop263.com/i-47/190.htm 助剂]
[http://www.shop263.com/i-47/191.htm 转移膜]
[http://www.shop263.com/i-47/192.htm 装饰工程用双面胶带]
[http://www.shop263.com/i-47/193.htm 装饰胶]
[http://www.shop263.com/i-47/194.htm 装饰漆]
[http://www.shop263.com/i-47/195.htm 装饰五金材料]
[http://www.shop263.com/i-47/196.htm 装修漆]
[http://www.shop263.com/i-47/197.htm 自喷漆]
[http://www.shop263.com/i-47/198.htm 阻燃]
[http://www.shop263.com/i-47/199.htm 组合浆料]
[http://www.shop263.com/i-47/200.htm 组合聚醚]
[http://www.shop263.com/i-47/201.htm 溶剂型丙烯酸酯压敏胶剂]
[http://www.shop263.com/i-47/202.htm 乳胶漆]
[http://www.shop263.com/i-47/203.htm 乳液]
[http://www.shop263.com/i-47/204.htm 三甲氧基水杨酸]
[http://www.shop263.com/i-47/205.htm 三氧化二锑]
[http://www.shop263.com/i-47/206.htm 三元乙丙胶]
[http://www.shop263.com/i-47/207.htm 杀菌净手器]
[http://www.shop263.com/i-47/208.htm 刹车液]
[http://www.shop263.com/i-47/209.htm 云石胶]
[http://www.shop263.com/i-47/210.htm 树脂胶粘剂]
http://www.shop263.com/i-47/1.htm
http://www.shop263.com/i-47/2.htm
http://www.shop263.com/i-47/3.htm
http://www.shop263.com/i-47/4.htm
http://www.shop263.com/i-47/5.htm
http://www.shop263.com/i-47/6.htm
http://www.shop263.com/i-47/7.htm
http://www.shop263.com/i-47/8.htm
http://www.shop263.com/i-47/9.htm
http://www.shop263.com/i-47/10.htm
http://www.shop263.com/i-47/11.htm
http://www.shop263.com/i-47/12.htm
http://www.shop263.com/i-47/13.htm
http://www.shop263.com/i-47/14.htm
http://www.shop263.com/i-47/15.htm
http://www.shop263.com/i-47/16.htm
http://www.shop263.com/i-47/17.htm
http://www.shop263.com/i-47/18.htm
http://www.shop263.com/i-47/19.htm
http://www.shop263.com/i-47/20.htm
http://www.shop263.com/i-47/21.htm
http://www.shop263.com/i-47/22.htm
http://www.shop263.com/i-47/23.htm
http://www.shop263.com/i-47/24.htm
http://www.shop263.com/i-47/25.htm
http://www.shop263.com/i-47/26.htm
http://www.shop263.com/i-47/27.htm
http://www.shop263.com/i-47/28.htm
http://www.shop263.com/i-47/29.htm
http://www.shop263.com/i-47/30.htm
http://www.shop263.com/i-47/31.htm
http://www.shop263.com/i-47/32.htm
http://www.shop263.com/i-47/33.htm
http://www.shop263.com/i-47/34.htm
http://www.shop263.com/i-47/35.htm
http://www.shop263.com/i-47/36.htm
http://www.shop263.com/i-47/37.htm
http://www.shop263.com/i-47/38.htm
http://www.shop263.com/i-47/39.htm
http://www.shop263.com/i-47/40.htm
http://www.shop263.com/i-47/41.htm
http://www.shop263.com/i-47/42.htm
http://www.shop263.com/i-47/43.htm
http://www.shop263.com/i-47/44.htm
http://www.shop263.com/i-47/45.htm
http://www.shop263.com/i-47/46.htm
http://www.shop263.com/i-47/47.htm
http://www.shop263.com/i-47/48.htm
http://www.shop263.com/i-47/49.htm
http://www.shop263.com/i-47/50.htm
http://www.shop263.com/i-47/51.htm
http://www.shop263.com/i-47/52.htm
http://www.shop263.com/i-47/53.htm
http://www.shop263.com/i-47/54.htm
http://www.shop263.com/i-47/55.htm
http://www.shop263.com/i-47/56.htm
http://www.shop263.com/i-47/57.htm
http://www.shop263.com/i-47/58.htm
http://www.shop263.com/i-47/59.htm
http://www.shop263.com/i-47/60.htm
http://www.shop263.com/i-47/61.htm
http://www.shop263.com/i-47/62.htm
http://www.shop263.com/i-47/63.htm
http://www.shop263.com/i-47/64.htm
http://www.shop263.com/i-47/65.htm
http://www.shop263.com/i-47/66.htm
http://www.shop263.com/i-47/67.htm
http://www.shop263.com/i-47/68.htm
http://www.shop263.com/i-47/69.htm
http://www.shop263.com/i-47/70.htm
http://www.shop263.com/i-47/71.htm
http://www.shop263.com/i-47/72.htm
http://www.shop263.com/i-47/73.htm
http://www.shop263.com/i-47/74.htm
http://www.shop263.com/i-47/75.htm
http://www.shop263.com/i-47/76.htm
http://www.shop263.com/i-47/77.htm
http://www.shop263.com/i-47/78.htm
http://www.shop263.com/i-47/79.htm
http://www.shop263.com/i-47/80.htm
http://www.shop263.com/i-47/81.htm
http://www.shop263.com/i-47/82.htm
http://www.shop263.com/i-47/83.htm
http://www.shop263.com/i-47/84.htm
http://www.shop263.com/i-47/85.htm
http://www.shop263.com/i-47/86.htm
http://www.shop263.com/i-47/87.htm
http://www.shop263.com/i-47/88.htm
http://www.shop263.com/i-47/89.htm
http://www.shop263.com/i-47/90.htm
http://www.shop263.com/i-47/91.htm
http://www.shop263.com/i-47/92.htm
http://www.shop263.com/i-47/93.htm
http://www.shop263.com/i-47/94.htm
http://www.shop263.com/i-47/95.htm
http://www.shop263.com/i-47/96.htm
http://www.shop263.com/i-47/97.htm
http://www.shop263.com/i-47/98.htm
http://www.shop263.com/i-47/99.htm
http://www.shop263.com/i-47/100.htm
http://www.shop263.com/i-47/101.htm
http://www.shop263.com/i-47/102.htm
http://www.shop263.com/i-47/103.htm
http://www.shop263.com/i-47/104.htm
http://www.shop263.com/i-47/105.htm
http://www.shop263.com/i-47/106.htm
http://www.shop263.com/i-47/107.htm
http://www.shop263.com/i-47/108.htm
http://www.shop263.com/i-47/109.htm
http://www.shop263.com/i-47/110.htm
http://www.shop263.com/i-47/111.htm
http://www.shop263.com/i-47/112.htm
http://www.shop263.com/i-47/113.htm
http://www.shop263.com/i-47/114.htm
http://www.shop263.com/i-47/115.htm
http://www.shop263.com/i-47/116.htm
http://www.shop263.com/i-47/117.htm
http://www.shop263.com/i-47/118.htm
http://www.shop263.com/i-47/119.htm
http://www.shop263.com/i-47/120.htm
http://www.shop263.com/i-47/121.htm
http://www.shop263.com/i-47/122.htm
http://www.shop263.com/i-47/123.htm
http://www.shop263.com/i-47/124.htm
http://www.shop263.com/i-47/125.htm
http://www.shop263.com/i-47/126.htm
http://www.shop263.com/i-47/127.htm
http://www.shop263.com/i-47/128.htm
http://www.shop263.com/i-47/129.htm
http://www.shop263.com/i-47/130.htm
http://www.shop263.com/i-47/131.htm
http://www.shop263.com/i-47/132.htm
http://www.shop263.com/i-47/133.htm
http://www.shop263.com/i-47/134.htm
http://www.shop263.com/i-47/135.htm
http://www.shop263.com/i-47/136.htm
http://www.shop263.com/i-47/137.htm
http://www.shop263.com/i-47/138.htm
http://www.shop263.com/i-47/139.htm
http://www.shop263.com/i-47/140.htm
http://www.shop263.com/i-47/141.htm
http://www.shop263.com/i-47/142.htm
http://www.shop263.com/i-47/143.htm
http://www.shop263.com/i-47/144.htm
http://www.shop263.com/i-47/145.htm
http://www.shop263.com/i-47/146.htm
http://www.shop263.com/i-47/147.htm
http://www.shop263.com/i-47/148.htm
http://www.shop263.com/i-47/149.htm
http://www.shop263.com/i-47/150.htm
http://www.shop263.com/i-47/151.htm
http://www.shop263.com/i-47/152.htm
http://www.shop263.com/i-47/153.htm
http://www.shop263.com/i-47/154.htm
http://www.shop263.com/i-47/155.htm
http://www.shop263.com/i-47/156.htm
http://www.shop263.com/i-47/157.htm
http://www.shop263.com/i-47/158.htm
http://www.shop263.com/i-47/159.htm
http://www.shop263.com/i-47/160.htm
http://www.shop263.com/i-47/161.htm
http://www.shop263.com/i-47/162.htm
http://www.shop263.com/i-47/163.htm
http://www.shop263.com/i-47/164.htm
http://www.shop263.com/i-47/165.htm
http://www.shop263.com/i-47/166.htm
http://www.shop263.com/i-47/167.htm
http://www.shop263.com/i-47/168.htm
http://www.shop263.com/i-47/169.htm
http://www.shop263.com/i-47/170.htm
http://www.shop263.com/i-47/171.htm
http://www.shop263.com/i-47/172.htm
http://www.shop263.com/i-47/173.htm
http://www.shop263.com/i-47/174.htm
http://www.shop263.com/i-47/175.htm
http://www.shop263.com/i-47/176.htm
http://www.shop263.com/i-47/177.htm
http://www.shop263.com/i-47/178.htm
http://www.shop263.com/i-47/179.htm
http://www.shop263.com/i-47/180.htm
http://www.shop263.com/i-47/181.htm
http://www.shop263.com/i-47/182.htm
http://www.shop263.com/i-47/183.htm
http://www.shop263.com/i-47/184.htm
http://www.shop263.com/i-47/185.htm
http://www.shop263.com/i-47/186.htm
http://www.shop263.com/i-47/187.htm
http://www.shop263.com/i-47/188.htm
http://www.shop263.com/i-47/189.htm
http://www.shop263.com/i-47/190.htm
http://www.shop263.com/i-47/191.htm
http://www.shop263.com/i-47/192.htm
http://www.shop263.com/i-47/193.htm
http://www.shop263.com/i-47/194.htm
http://www.shop263.com/i-47/195.htm
http://www.shop263.com/i-47/196.htm
http://www.shop263.com/i-47/197.htm
http://www.shop263.com/i-47/198.htm
http://www.shop263.com/i-47/199.htm
http://www.shop263.com/i-47/200.htm
http://www.shop263.com/i-47/201.htm
http://www.shop263.com/i-47/202.htm
http://www.shop263.com/i-47/203.htm
http://www.shop263.com/i-47/204.htm
http://www.shop263.com/i-47/205.htm
http://www.shop263.com/i-47/206.htm
http://www.shop263.com/i-47/207.htm
http://www.shop263.com/i-47/208.htm
http://www.shop263.com/i-47/209.htm
http://www.shop263.com/i-47/210.htm

Latest revision as of 11:44, 24 July 2013

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 the draft Multimedia Metadata Format (M3F) provides more sophisticated information.

VorbisComments

All the Xiph.org codecs have some internal mechanism for including metadata about the current stream. Generally, this is one of the codec headers, and in the words of the vorbis spec, "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).

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, GENRE, DATE, LOCATION, CONTACT, ISRC. See the specification for the intent of each one.

The VorbisComment page contains improvements to the suggested comment set.

FLAC metadata blocks

Metadata is included in the FLAC codec as METADATA_BLOCK_DATA. Seven types of metadata block are defined:

  1. METADATA_BLOCK_STREAMINFO: Sample rate, number of channels, etc.
  2. METADATA_BLOCK_PADDING: Nul padding.
  3. METADATA_BLOCK_APPLICATION: Third-party applications can register an ID. Metadata is typically 32-bit integers, but any datatypes can be specified.
  4. METADATA_BLOCK_SEEKTABLE: For one or more seek points.
  5. METADATA_BLOCK_VORBIS_COMMENT: Also known as FLAC tags, the contents of a VorbisComment 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 VorbisComment packet in FLAC must fit within that limit.
  6. METADATA_BLOCK_CUESHEET: Typically, but not necessarily, for CD-DA (Red Book) cuesheets.
  7. METADATA_BLOCK_PICTURE: For binary picture data.

Ogg Skeleton

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. The latest version, Ogg Skeleton 4, also provides a keyframe index to enable faster seeking over high latency networks.

Ogg Skeleton 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.

OggKate

OggKate was originally designed for karaoke and text. The stream can carry text and images, and these can be animated.

CMML (deprecated)

CMML is not used anymore; use OggKate instead. The Continuous Media Markup Language allowed time-based marking up of media streams, at its simplest this allowed you to divide media files into clips and provide information about each clip.

M3F (unused draft)

Multimedia Metadata Format is not being developed anymore; use VorbisComment instead.

The format was intended to replace VorbisComments for the use of structured metadata, allowing VorbisComments to revert to its orginally intended use of "short, text comments ... much like someone jotting a quick note on the bottom of a CDR."

M3F for the Ogg container was a draft specification which aimed to provide metadata for media streams. The exact aims of this project were still under development, but they included being able to describe artist relationships to a piece more accurately as well as providing the structure to encourage more reliable metadata.

XMLEmbedding (unused draft)

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:

This specification is still not past the discussion stage.

Aims of advanced metadata

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.

  • 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.
  • 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?
  • 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.