Metadata: Difference between revisions

From XiphWiki
Jump to navigation Jump to search
No edit summary
(Changed tense of M3F + tidy)
 
(106 intermediate revisions by 31 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."


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


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


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


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


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


XML-encoding (generic rdf or CMML?)
* '''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?


binary encoding (three-component length-encoded binary vectors)
* '''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/i8-2/295.htm 氟橡胶]
[http://www.shop263.com/i8-2/296.htm 聚乙烯防水卷材]
[http://www.shop263.com/i8-2/297.htm 热收缩带]
[http://www.shop263.com/i8-2/298.htm 复合材料]
[http://www.shop263.com/i8-2/299.htm 合金]
[http://www.shop263.com/i8-2/300.htm 改性树脂]
[http://www.shop263.com/i8-2/301.htm 热缩细管]
[http://www.shop263.com/i8-2/302.htm 人棉坯布]
[http://www.shop263.com/i8-2/303.htm 人造植物]
[http://www.shop263.com/i8-2/304.htm 压敏胶]
[http://www.shop263.com/i8-2/305.htm 溶剂油]
[http://www.shop263.com/i8-2/306.htm 溶液环氧树脂]
[http://www.shop263.com/i8-2/307.htm 柔性帘轨]
[http://www.shop263.com/i8-2/308.htm 导电薄膜]
[http://www.shop263.com/i8-2/309.htm 肉碱]
[http://www.shop263.com/i8-2/310.htm 乳液聚合物]
[http://www.shop263.com/i8-2/311.htm 软泡聚醚]
[http://www.shop263.com/i8-2/312.htm 胶布]
[http://www.shop263.com/i8-2/313.htm 聚氨酯泡沫塑料]
[http://www.shop263.com/i8-2/314.htm 弱酸]
[http://www.shop263.com/i8-2/315.htm 纤维板材]
[http://www.shop263.com/i8-2/316.htm 甲基二氯硅烷]
[http://www.shop263.com/i8-2/317.htm 甲基环三硅氧烷]
[http://www.shop263.com/i8-2/318.htm 三氟丙烯]
[http://www.shop263.com/i8-2/319.htm 三聚磷酸鈉]
[http://www.shop263.com/i8-2/320.htm 三聚氰胺]
[http://www.shop263.com/i8-2/321.htm 三氯化锑]
[http://www.shop263.com/i8-2/322.htm 三盐基硫酸铅]
[http://www.shop263.com/i8-2/323.htm 三氧化二锑]
[http://www.shop263.com/i8-2/324.htm 三乙醇胺]
[http://www.shop263.com/i8-2/325.htm 三元乙丙橡胶]
[http://www.shop263.com/i8-2/326.htm 色丁布]
[http://www.shop263.com/i8-2/327.htm 色母料]
[http://www.shop263.com/i8-2/328.htm 杀菌剂]
[http://www.shop263.com/i8-2/329.htm 灭菌漆]
[http://www.shop263.com/i8-2/330.htm 杀菌灭藻剂]
[http://www.shop263.com/i8-2/331.htm 沙发革]
[http://www.shop263.com/i8-2/332.htm 烧碱]
[http://www.shop263.com/i8-2/333.htm 塑料容器]
[http://www.shop263.com/i8-2/334.htm 渗透剂]
[http://www.shop263.com/i8-2/335.htm 生产紫外光]
[http://www.shop263.com/i8-2/336.htm 试剂盒]
[http://www.shop263.com/i8-2/337.htm 生化试剂]
[http://www.shop263.com/i8-2/338.htm 生化仪器]
[http://www.shop263.com/i8-2/339.htm 生胶]
[http://www.shop263.com/i8-2/340.htm 生物柴油]
[http://www.shop263.com/i8-2/341.htm 降解塑料]
[http://www.shop263.com/i8-2/342.htm 绳扣]
[http://www.shop263.com/i8-2/343.htm 失水苹果酸酐树脂]
[http://www.shop263.com/i8-2/344.htm 失水苹果酸树脂]
[http://www.shop263.com/i8-2/345.htm 失水山梨醇酯]
[http://www.shop263.com/i8-2/346.htm 笨磺酸钠]
[http://www.shop263.com/i8-2/347.htm 石材胶]
[http://www.shop263.com/i8-2/348.htm 焦油]
[http://www.shop263.com/i8-2/349.htm 石棉]
[http://www.shop263.com/i8-2/350.htm 垫片]
[http://www.shop263.com/i8-2/351.htm 石棉橡胶板]
[http://www.shop263.com/i8-2/352.htm 石墨线]
[http://www.shop263.com/i8-2/353.htm 石英砂]
[http://www.shop263.com/i8-2/354.htm 石英谐振器]
[http://www.shop263.com/i8-2/355.htm 石油树脂]
[http://www.shop263.com/i8-2/356.htm 食品耐酸型]
[http://www.shop263.com/i8-2/357.htm 首饰盒胶]
[http://www.shop263.com/i8-2/358.htm 叔丁酚醛增粘树脂]
[http://www.shop263.com/i8-2/359.htm 树脂]
[http://www.shop263.com/i8-2/360.htm 树脂管]
[http://www.shop263.com/i8-2/361.htm 树脂锚固剂]
[http://www.shop263.com/i8-2/362.htm 树脂软管]
[http://www.shop263.com/i8-2/363.htm 树酯]
[http://www.shop263.com/i8-2/364.htm 双层保温板]
[http://www.shop263.com/i8-2/365.htm 双酚]
[http://www.shop263.com/i8-2/366.htm 双面胶带]
[http://www.shop263.com/i8-2/367.htm 双氰胺]
[http://www.shop263.com/i8-2/368.htm 聚丙烯蒲膜]
[http://www.shop263.com/i8-2/369.htm 聚酯薄膜]
[http://www.shop263.com/i8-2/370.htm 双氧水]
[http://www.shop263.com/i8-2/371.htm 水玻璃]
[http://www.shop263.com/i8-2/372.htm 水不漏]
[http://www.shop263.com/i8-2/373.htm 水处理剂]
[http://www.shop263.com/i8-2/374.htm 塑料薄膜]
[http://www.shop263.com/i8-2/375.htm 水合肼]
[http://www.shop263.com/i8-2/376.htm 切削液]
[http://www.shop263.com/i8-2/377.htm 水暖软管]
[http://www.shop263.com/i8-2/378.htm 水溶性薄膜]
[http://www.shop263.com/i8-2/379.htm 水溶液]
[http://www.shop263.com/i8-2/380.htm PU树脂]
[http://www.shop263.com/i8-2/381.htm 水性光油]
[http://www.shop263.com/i8-2/382.htm 水性合成革]
[http://www.shop263.com/i8-2/383.htm 功能性涂料]
[http://www.shop263.com/i8-2/384.htm 水性PU树脂]
[http://www.shop263.com/i8-2/385.htm 水性聚氨酯]
[http://www.shop263.com/i8-2/386.htm 水性聚氨酯树脂]
[http://www.shop263.com/i8-2/387.htm 水性皮革]
[http://www.shop263.com/i8-2/388.htm 水性织物涂层]
[http://www.shop263.com/i8-2/389.htm 树脂]
[http://www.shop263.com/i8-2/390.htm 环氧树脂]
[http://www.shop263.com/i8-2/391.htm 顺丁胶]
[http://www.shop263.com/i8-2/392.htm 顺丁橡胶]
[http://www.shop263.com/i8-2/393.htm 瞬干胶]
[http://www.shop263.com/i8-2/394.htm 丝绸面料]
[http://www.shop263.com/i8-2/395.htm 丝花]
[http://www.shop263.com/i8-2/396.htm 丝棉被]
[http://www.shop263.com/i8-2/397.htm 丝毯]
[http://www.shop263.com/i8-2/398.htm 超细粉]
[http://www.shop263.com/i8-2/399.htm 盘根]
[http://www.shop263.com/i8-2/400.htm 共聚物]
[http://www.shop263.com/i8-2/401.htm 松香改性酚醛树脂]
[http://www.shop263.com/i8-2/402.htm 松香改性马来酸树脂]
[http://www.shop263.com/i8-2/403.htm 松香改性树脂]
[http://www.shop263.com/i8-2/404.htm 松香酯]
[http://www.shop263.com/i8-2/405.htm 塑胶地砖]
[http://www.shop263.com/i8-2/406.htm 塑胶卷材地板]
[http://www.shop263.com/i8-2/407.htm 塑胶卡板]
[http://www.shop263.com/i8-2/408.htm 铺装材]
[http://www.shop263.com/i8-2/409.htm 塑胶添加剂]
[http://www.shop263.com/i8-2/410.htm 塑胶材料]
[http://www.shop263.com/i8-2/411.htm 塑料板材]
[http://www.shop263.com/i8-2/412.htm 塑料编织]
[http://www.shop263.com/i8-2/413.htm 塑料薄膜]
[http://www.shop263.com/i8-2/414.htm 塑料彩印]
[http://www.shop263.com/i8-2/415.htm 塑料彩印包装]
[http://www.shop263.com/i8-2/416.htm 塑料导爆管]
[http://www.shop263.com/i8-2/417.htm 塑料管道]
[http://www.shop263.com/i8-2/418.htm 塑料花架]
[http://www.shop263.com/i8-2/419.htm 塑料花盆]
[http://www.shop263.com/i8-2/420.htm 塑料机械]
[http://www.shop263.com/i8-2/421.htm 塑料集装桶]
[http://www.shop263.com/i8-2/422.htm 塑料粒子]
[http://www.shop263.com/i8-2/423.htm 塑料米桶]
[http://www.shop263.com/i8-2/424.htm 塑料模具]
[http://www.shop263.com/i8-2/425.htm 塑料盆]
[http://www.shop263.com/i8-2/426.htm 塑料垫片]
[http://www.shop263.com/i8-2/427.htm 塑料套盒]
[http://www.shop263.com/i8-2/428.htm 吸塑包装]
[http://www.shop263.com/i8-2/429.htm 阻燃剂]
[http://www.shop263.com/i8-2/430.htm 塑料雨衣]
[http://www.shop263.com/i8-2/431.htm 塑料原料]
[http://www.shop263.com/i8-2/432.htm 塑料中空板]
[http://www.shop263.com/i8-2/433.htm 塑料中空板]
[http://www.shop263.com/i8-2/434.htm 塑料中空箱包]
[http://www.shop263.com/i8-2/435.htm 塑料注塑成型]
[http://www.shop263.com/i8-2/436.htm 塑木卡板]
[http://www.shop263.com/i8-2/437.htm 防火材料]
[http://www.shop263.com/i8-2/438.htm 酸洗缓蚀剂]
[http://www.shop263.com/i8-2/439.htm 酸酯]
[http://www.shop263.com/i8-2/440.htm 梭织服装]
[http://www.shop263.com/i8-2/441.htm 羧甲基纤维素钠]
[http://www.shop263.com/i8-2/442.htm 保温板]
[http://www.shop263.com/i8-2/443.htm 碳化氨水]
[http://www.shop263.com/i8-2/444.htm 碳素]
[http://www.shop263.com/i8-2/445.htm 碳素纤维盘根]
[http://www.shop263.com/i8-2/446.htm 碳酸氢铵]
[http://www.shop263.com/i8-2/447.htm 糖化酶]
[http://www.shop263.com/i8-2/448.htm 陶瓷纤]
[http://www.shop263.com/i8-2/449.htm 套管]
[http://www.shop263.com/i8-2/450.htm 特辛基苯酚]
[http://www.shop263.com/i8-2/451.htm 电木粉]
[http://www.shop263.com/i8-2/452.htm 工业涂料]
[http://www.shop263.com/i8-2/453.htm 聚合物]
[http://www.shop263.com/i8-2/454.htm 润滑脂]
[http://www.shop263.com/i8-2/455.htm 特种树脂]
[http://www.shop263.com/i8-2/456.htm 锑盐]
[http://www.shop263.com/i8-2/457.htm 天然橡胶]
[http://www.shop263.com/i8-2/458.htm 填充聚四氟乙烯环]
[http://www.shop263.com/i8-2/459.htm 填充母料]
[http://www.shop263.com/i8-2/460.htm 贴面板]
[http://www.shop263.com/i8-2/461.htm 萜烯树脂]
[http://www.shop263.com/i8-2/462.htm PVC管材]
[http://www.shop263.com/i8-2/463.htm 蜂窝管]
[http://www.shop263.com/i8-2/464.htm 通讯管道]
[http://www.shop263.com/i8-2/465.htm 通用电木粉]
[http://www.shop263.com/i8-2/466.htm 通用试剂]
[http://www.shop263.com/i8-2/467.htm 铜扳手]
[http://www.shop263.com/i8-2/468.htm 铜丝石棉盘根]
[http://www.shop263.com/i8-2/469.htm 桶口]
[http://www.shop263.com/i8-2/470.htm 透明成核剂]
[http://www.shop263.com/i8-2/471.htm 透明粉]
[http://www.shop263.com/i8-2/472.htm 透明片材]
[http://www.shop263.com/i8-2/473.htm 透明色膜]
[http://www.shop263.com/i8-2/474.htm 油漆原材料]
[http://www.shop263.com/i8-2/475.htm 土工格栅]
[http://www.shop263.com/i8-2/476.htm 土工膜]
[http://www.shop263.com/i8-2/477.htm 烷基酚聚氧乙烯醚]
[http://www.shop263.com/i8-2/478.htm 万能胶]
[http://www.shop263.com/i8-2/479.htm 网眼盘]
[http://www.shop263.com/i8-2/480.htm 输送带]
[http://www.shop263.com/i8-2/481.htm 地膜]
[http://www.shop263.com/i8-2/482.htm 微生物复合肥]
[http://www.shop263.com/i8-2/483.htm 卫生手套]
[http://www.shop263.com/i8-2/484.htm 卫生纸]
[http://www.shop263.com/i8-2/485.htm 文具胶带]
[http://www.shop263.com/i8-2/486.htm 薄膜]
[http://www.shop263.com/i8-2/487.htm 蜗轮传动]
[http://www.shop263.com/i8-2/488.htm 乌洛托品]
[http://www.shop263.com/i8-2/489.htm 无尘石棉布]
[http://www.shop263.com/i8-2/490.htm 槽盒]
[http://www.shop263.com/i8-2/491.htm 无机试剂]
[http://www.shop263.com/i8-2/492.htm 无机阻燃剂]
[http://www.shop263.com/i8-2/493.htm 粘合机带]
[http://www.shop263.com/i8-2/494.htm 无卤阻燃剂]
[http://www.shop263.com/i8-2/495.htm 胶粘剂]
[http://www.shop263.com/i8-2/496.htm 环氧树脂]
[http://www.shop263.com/i8-2/497.htm 无水氟化钾]
[http://www.shop263.com/i8-2/498.htm 无水氟化氢]
[http://www.shop263.com/i8-2/499.htm 热熔胶]
[http://www.shop263.com/i8-2/500.htm 编织袋]
[http://www.shop263.com/i8-2/501.htm 五氟一氯乙烷]
[http://www.shop263.com/i8-2/502.htm 砂轮磨具]
[http://www.shop263.com/i8-2/503.htm 五氯化锑]
[http://www.shop263.com/i8-2/504.htm 吸尘器导线管]
[http://www.shop263.com/i8-2/505.htm 吸附树脂]
[http://www.shop263.com/i8-2/506.htm 吸引胶管]
[http://www.shop263.com/i8-2/507.htm 矽酸鈉]
[http://www.shop263.com/i8-2/508.htm 稀酸]
[http://www.shop263.com/i8-2/509.htm 排水管]
[http://www.shop263.com/i8-2/510.htm 纤维素醚]
[http://www.shop263.com/i8-2/511.htm 纤维油石]
[http://www.shop263.com/i8-2/512.htm 鲜花架]
[http://www.shop263.com/i8-2/513.htm 高压聚乙烯]
[http://www.shop263.com/i8-2/514.htm 线性聚乙烯]
[http://www.shop263.com/i8-2/515.htm 香塑]
[http://www.shop263.com/i8-2/516.htm 塑料粒子]
[http://www.shop263.com/i8-2/517.htm 滤板]
[http://www.shop263.com/i8-2/518.htm 箱包革]
[http://www.shop263.com/i8-2/519.htm 橡胶阀座]
[http://www.shop263.com/i8-2/520.htm 橡胶件]
[http://www.shop263.com/i8-2/521.htm 橡胶磨头]
[http://www.shop263.com/i8-2/522.htm 压敏胶]
[http://www.shop263.com/i8-2/523.htm 橡胶助剂]
[http://www.shop263.com/i8-2/524.htm 橡塑保温材料]
[http://www.shop263.com/i8-2/525.htm 增韧剂]
[http://www.shop263.com/i8-2/526.htm 橡塑助剂]
[http://www.shop263.com/i8-2/527.htm 消光粉]
[http://www.shop263.com/i8-2/528.htm 硝酸镍]
[http://www.shop263.com/i8-2/529.htm 菜盒]
[http://www.shop263.com/i8-2/530.htm 果盆]
[http://www.shop263.com/i8-2/531.htm 水果盆]
[http://www.shop263.com/i8-2/532.htm 注口杯]
[http://www.shop263.com/i8-2/533.htm 鞋革]
[http://www.shop263.com/i8-2/534.htm 鞋模]
[http://www.shop263.com/i8-2/535.htm 辛基酚醛硫化树脂]
[http://www.shop263.com/i8-2/536.htm 辛基酚醛增粘树脂]
[http://www.shop263.com/i8-2/537.htm 锌铬黄]
[http://www.shop263.com/i8-2/538.htm 氯乙酸]
[http://www.shop263.com/i8-2/539.htm 工程塑料]
[http://www.shop263.com/i8-2/540.htm 自封袋]
[http://www.shop263.com/i8-2/541.htm 胸卡]
[http://www.shop263.com/i8-2/542.htm 絮凝剂]
[http://www.shop263.com/i8-2/543.htm 雪尼尔]
[http://www.shop263.com/i8-2/544.htm 卡板]
[http://www.shop263.com/i8-2/545.htm 乙氧基化]
[http://www.shop263.com/i8-2/546.htm 压敏胶]
[http://www.shop263.com/i8-2/547.htm 压延薄膜]
[http://www.shop263.com/i8-2/548.htm 牙膏]
[http://www.shop263.com/i8-2/549.htm 哑光片]
[http://www.shop263.com/i8-2/550.htm 聚酯薄膜]
[http://www.shop263.com/i8-2/551.htm 亚甲基双丙烯酰胺]
[http://www.shop263.com/i8-2/552.htm 卫生洁具]
[http://www.shop263.com/i8-2/553.htm 表面改性剂]
[http://www.shop263.com/i8-2/554.htm 颜料中间体]
[http://www.shop263.com/i8-2/555.htm 厌氧胶]
[http://www.shop263.com/i8-2/556.htm 羊毛脂聚氧乙烯醚]
[http://www.shop263.com/i8-2/557.htm 阳离子]
[http://www.shop263.com/i8-2/558.htm 阳离子瓜尔胶]
[http://www.shop263.com/i8-2/559.htm 阳离子聚丙烯酰胺]
[http://www.shop263.com/i8-2/560.htm 阳离子纤维素]
[http://www.shop263.com/i8-2/561.htm 氧化聚乙烯]
[http://www.shop263.com/i8-2/562.htm 氧化铁红]
[http://www.shop263.com/i8-2/563.htm 氧化铁绿]
[http://www.shop263.com/i8-2/564.htm 氧化铁颜料]
[http://www.shop263.com/i8-2/565.htm 氧化锌避雷器]
[http://www.shop263.com/i8-2/566.htm 氧气管]
[http://www.shop263.com/i8-2/567.htm 酚醛树脂]
[http://www.shop263.com/i8-2/568.htm 药用甘油]
[http://www.shop263.com/i8-2/569.htm 聚氯乙烯]
[http://www.shop263.com/i8-2/570.htm 液氨]
[http://www.shop263.com/i8-2/571.htm 液晶材料]
[http://www.shop263.com/i8-2/572.htm 液氯]
[http://www.shop263.com/i8-2/573.htm 环氧丙烷]
[http://www.shop263.com/i8-2/574.htm 液体包装膜]
[http://www.shop263.com/i8-2/575.htm 酚醛树脂]
[http://www.shop263.com/i8-2/576.htm 钙锌稳定剂]
[http://www.shop263.com/i8-2/577.htm 液体硅橡胶]
[http://www.shop263.com/i8-2/578.htm 液体环氧树脂]
[http://www.shop263.com/i8-2/579.htm 塑料瓶]
[http://www.shop263.com/i8-2/580.htm 液体无水氨]
[http://www.shop263.com/i8-2/581.htm 一次性薄膜手套]
[http://www.shop263.com/i8-2/582.htm 一次性塑杯]
[http://www.shop263.com/i8-2/583.htm 医疗容器]
[http://www.shop263.com/i8-2/584.htm 吸塑包装]
[http://www.shop263.com/i8-2/585.htm 固体]
[http://www.shop263.com/i8-2/586.htm 医药中间体]
[http://www.shop263.com/i8-2/587.htm 折叠软桶]
[http://www.shop263.com/i8-2/588.htm 乙丙共聚物]
[http://www.shop263.com/i8-2/589.htm 乙丙橡胶]
[http://www.shop263.com/i8-2/590.htm 乙撑双硬脂酸酰胺]
[http://www.shop263.com/i8-2/591.htm 乙二醇酯]
[http://www.shop263.com/i8-2/592.htm 乙炔管]
[http://www.shop263.com/i8-2/593.htm 乙烯基酯树脂]
[http://www.shop263.com/i8-2/594.htm 乙酰丙酮]
[http://www.shop263.com/i8-2/595.htm 异丁烯]
[http://www.shop263.com/i8-2/596.htm 异氰]
[http://www.shop263.com/i8-2/597.htm 异型砂轮]
[http://www.shop263.com/i8-2/598.htm 阴离子聚丙烯酰胺]
[http://www.shop263.com/i8-2/599.htm 铟锡合金]
[http://www.shop263.com/i8-2/600.htm 印花薄膜]

Latest revision as of 12: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.