Difference between revisions of "Metadata"

From XiphWiki
Jump to navigation Jump to search
(Changed tense of M3F + tidy)
 
(110 intermediate revisions by 34 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.
  
This works well enough for most things, and can be overloaded/abused (depending on your point of view)
+
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.
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.
+
== [[OggKate]] ==
  
* ''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?
+
[[OggKate]] was originally designed for karaoke and text. The stream can carry text and images, and these can be animated.
  
* ''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.
+
== [[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) ==
  
[http://www.shop263.com 化工]
+
[[M3F|Multimedia Metadata Format]] is not being developed anymore; use [[VorbisComment]] instead.
[http://www.shop263.com/downsoft/275.htm 中铬黄]
 
[http://www.shop263.com/downsoft/276.htm 柠檬黄]
 
[http://www.shop263.com/downsoft/277.htm 发泡剂]
 
[http://www.shop263.com/downsoft/278.htm 絮凝剂]
 
[http://www.shop263.com/downsoft/279.htm PVC]
 
[http://www.shop263.com/downsoft/280.htm PVC树脂]
 
[http://www.shop263.com/downsoft/281.htm 氨基硅油]
 
[http://www.shop263.com/downsoft/282.htm 氨基磺酸]
 
[http://www.shop263.com/downsoft/283.htm 氨基磺酸铵]
 
[http://www.shop263.com/downsoft/284.htm 氨基磺酸胍]
 
[http://www.shop263.com/downsoft/285.htm 氨基磺酸镍]
 
[http://www.shop263.com/downsoft/286.htm 氨基葡萄糖硫酸盐]
 
[http://www.shop263.com/downsoft/287.htm 氨基树脂]
 
[http://www.shop263.com/downsoft/288.htm 氨基水杨酸]
 
[http://www.shop263.com/downsoft/289.htm 氨基乙酸]
 
[http://www.shop263.com/downsoft/290.htm 贲亭酸甲酯]
 
[http://www.shop263.com/downsoft/291.htm 苯并咪唑酮]
 
[http://www.shop263.com/downsoft/292.htm 苯酐]
 
[http://www.shop263.com/downsoft/293.htm 苯磺酰胺]
 
[http://www.shop263.com/downsoft/294.htm 苯甲醚]
 
[http://www.shop263.com/downsoft/295.htm 吡虫啉]
 
[http://www.shop263.com/downsoft/296.htm 吡啶三唑酮]
 
[http://www.shop263.com/downsoft/297.htm 吡啶羧酸铬]
 
[http://www.shop263.com/downsoft/298.htm 铋锭]
 
[http://www.shop263.com/downsoft/299.htm 铋盐]
 
[http://www.shop263.com/downsoft/300.htm 合金]
 
[http://www.shop263.com/downsoft/301.htm 蓖麻油]
 
[http://www.shop263.com/downsoft/302.htm 冰醋酸]
 
[http://www.shop263.com/downsoft/303.htm 冰晶石]
 
[http://www.shop263.com/downsoft/304.htm 丙二醇]
 
[http://www.shop263.com/downsoft/305.htm 丙酸钙]
 
[http://www.shop263.com/downsoft/306.htm 丙烯酸丁脂]
 
[http://www.shop263.com/downsoft/307.htm 丙烯酸树脂]
 
[http://www.shop263.com/downsoft/308.htm 丙橡胶]
 
[http://www.shop263.com/downsoft/309.htm 丙溴磷]
 
[http://www.shop263.com/downsoft/310.htm 波纹管材]
 
[http://www.shop263.com/downsoft/311.htm 锂辉石]
 
[http://www.shop263.com/downsoft/312.htm 玻璃胶]
 
[http://www.shop263.com/downsoft/313.htm 不溶性硫磺]
 
[http://www.shop263.com/downsoft/314.htm 草甘膦]
 
[http://www.shop263.com/downsoft/315.htm 草酸]
 
[http://www.shop263.com/downsoft/316.htm 草酸二乙酯]
 
[http://www.shop263.com/downsoft/317.htm 草酸铁]
 
[http://www.shop263.com/downsoft/318.htm 草酸钴]
 
[http://www.shop263.com/downsoft/319.htm 草酸钠]
 
[http://www.shop263.com/downsoft/320.htm 长链二元酸]
 
[http://www.shop263.com/downsoft/321.htm 长石粉]
 
[http://www.shop263.com/downsoft/322.htm 常温氟碳涂料]
 
[http://www.shop263.com/downsoft/323.htm 超低铁硫化碱]
 
[http://www.shop263.com/downsoft/324.htm 超微细粉体]
 
[http://www.shop263.com/downsoft/325.htm 超细粉体]
 
[http://www.shop263.com/downsoft/326.htm 二氧化锆]
 
[http://www.shop263.com/downsoft/327.htm 活性锌粉]
 
[http://www.shop263.com/downsoft/328.htm 超细硫酸钡]
 
[http://www.shop263.com/downsoft/329.htm 超细氧化锆]
 
[http://www.shop263.com/downsoft/330.htm 沉淀硫酸钡]
 
[http://www.shop263.com/downsoft/331.htm 沉淀碳酸钡]
 
[http://www.shop263.com/downsoft/332.htm 赤磷]
 
[http://www.shop263.com/downsoft/333.htm 盐钾]
 
[http://www.shop263.com/downsoft/334.htm 锤纹剂]
 
[http://www.shop263.com/downsoft/335.htm 纯碱]
 
[http://www.shop263.com/downsoft/336.htm 纯金属铟粉]
 
[http://www.shop263.com/downsoft/337.htm 纯净水]
 
[http://www.shop263.com/downsoft/338.htm 纯氩]
 
[http://www.shop263.com/downsoft/339.htm 醇醚]
 
[http://www.shop263.com/downsoft/340.htm 醇醚酯]
 
[http://www.shop263.com/downsoft/341.htm 醇酸树脂]
 
[http://www.shop263.com/downsoft/342.htm 磁性材料]
 
[http://www.shop263.com/downsoft/343.htm 二氧化锰]
 
[http://www.shop263.com/downsoft/344.htm 次磷酸钠]
 
[http://www.shop263.com/downsoft/345.htm 次氯]
 
[http://www.shop263.com/downsoft/346.htm 亚硫酸钠]
 
[http://www.shop263.com/downsoft/347.htm 次氯酸钠]
 
[http://www.shop263.com/downsoft/348.htm 促进剂]
 
[http://www.shop263.com/downsoft/349.htm 橡胶促进剂]
 
[http://www.shop263.com/downsoft/350.htm 对异丙基苯硫酚]
 
[http://www.shop263.com/downsoft/351.htm 多聚磷酸]
 
[http://www.shop263.com/downsoft/352.htm 多聚磷酸钠]
 
[http://www.shop263.com/downsoft/353.htm 复合肥]
 
[http://www.shop263.com/downsoft/354.htm 蒽醌]
 
[http://www.shop263.com/downsoft/355.htm 二氨基蒽醌]
 
[http://www.shop263.com/downsoft/356.htm 乙酰]
 
[http://www.shop263.com/downsoft/357.htm 二丙酮醇]
 
[http://www.shop263.com/downsoft/358.htm 二丁酯]
 
[http://www.shop263.com/downsoft/359.htm 二甲苯]
 
[http://www.shop263.com/downsoft/360.htm 电子化学品]
 
[http://www.shop263.com/downsoft/361.htm 氟锆酸]
 
[http://www.shop263.com/downsoft/362.htm 氟锆酸钾]
 
[http://www.shop263.com/downsoft/363.htm 氟化物]
 
[http://www.shop263.com/downsoft/364.htm 氟化盐]
 
[http://www.shop263.com/downsoft/365.htm 氟磷酸]
 
[http://www.shop263.com/downsoft/366.htm 氟铝酸]
 
[http://www.shop263.com/downsoft/367.htm 氟铝酸钾]
 
[http://www.shop263.com/downsoft/368.htm 氟硼酸]
 
[http://www.shop263.com/downsoft/369.htm 氟硼酸铵]
 
[http://www.shop263.com/downsoft/370.htm 氟硼酸钾]
 
[http://www.shop263.com/downsoft/371.htm 氟硼酸钠]
 
[http://www.shop263.com/downsoft/372.htm 氟硼酸铅]
 
[http://www.shop263.com/downsoft/373.htm 氟硼酸亚锡]
 
[http://www.shop263.com/downsoft/374.htm 氟硼酸]
 
[http://www.shop263.com/downsoft/375.htm 氟气]
 
[http://www.shop263.com/downsoft/376.htm 氟氢化物]
 
[http://www.shop263.com/downsoft/377.htm 氟树脂]
 
[http://www.shop263.com/downsoft/378.htm 氟钛酸]
 
[http://www.shop263.com/downsoft/379.htm 氟钛酸钾]
 
[http://www.shop263.com/downsoft/380.htm 氟钛酸盐]
 
[http://www.shop263.com/downsoft/381.htm 氟碳漆]
 
[http://www.shop263.com/downsoft/382.htm 氟盐]
 
[http://www.shop263.com/downsoft/383.htm 氟制冷剂]
 
[http://www.shop263.com/downsoft/384.htm 腐植酸]
 
[http://www.shop263.com/downsoft/385.htm 玻璃澄清剂]
 
[http://www.shop263.com/downsoft/386.htm 复混肥]
 
[http://www.shop263.com/downsoft/387.htm 过磷酸钙]
 
[http://www.shop263.com/downsoft/388.htm 氯化稀土]
 
[http://www.shop263.com/downsoft/389.htm 钙镁磷肥]
 
[http://www.shop263.com/downsoft/390.htm 干电池用碳棒]
 
[http://www.shop263.com/downsoft/391.htm 高纯超净氢氟酸]
 
[http://www.shop263.com/downsoft/392.htm 次氯酸钠]
 
[http://www.shop263.com/downsoft/393.htm 硫酸锆]
 
[http://www.shop263.com/downsoft/394.htm 氯氧化锆]
 
[http://www.shop263.com/downsoft/395.htm 高纯氢]
 
[http://www.shop263.com/downsoft/396.htm 三氧化钼]
 
[http://www.shop263.com/downsoft/397.htm 高纯砷]
 
[http://www.shop263.com/downsoft/398.htm 碳酸锆]
 
[http://www.shop263.com/downsoft/399.htm 盐酸]
 
[http://www.shop263.com/downsoft/400.htm 氧化钼]
 
[http://www.shop263.com/downsoft/401.htm 高纯铟锭]
 
[http://www.shop263.com/downsoft/402.htm 铝粉浆]
 
[http://www.shop263.com/downsoft/403.htm 涂料]
 
[http://www.shop263.com/downsoft/404.htm 高碘酸]
 
[http://www.shop263.com/downsoft/405.htm 高碘酸钾]
 
[http://www.shop263.com/downsoft/406.htm 高碘酸钠]
 
[http://www.shop263.com/downsoft/407.htm 高氯化聚乙烯]
 
[http://www.shop263.com/downsoft/408.htm 酸盐]
 
[http://www.shop263.com/downsoft/409.htm 高锰酸钾]
 
[http://www.shop263.com/downsoft/410.htm 高锰酸钠]
 
[http://www.shop263.com/downsoft/411.htm 高能环保电池]
 
[http://www.shop263.com/downsoft/412.htm 高吸收铬鞣剂]
 
[http://www.shop263.com/downsoft/413.htm 生物复合肥]
 
[http://www.shop263.com/downsoft/414.htm 水处理剂]
 
[http://www.shop263.com/downsoft/415.htm 锆氟酸钾]
 
[http://www.shop263.com/downsoft/416.htm 钙]
 
[http://www.shop263.com/downsoft/417.htm 硝酸钡]
 
[http://www.shop263.com/downsoft/418.htm 铬矾]
 
[http://www.shop263.com/downsoft/419.htm 铬粉]
 
[http://www.shop263.com/downsoft/420.htm 铬明矾]
 
[http://www.shop263.com/downsoft/421.htm 铬鞣剂]
 
[http://www.shop263.com/downsoft/422.htm 铬酸酐]
 
[http://www.shop263.com/downsoft/423.htm 铬酸酐粉]
 
[http://www.shop263.com/downsoft/424.htm 铬酸钾]
 
[http://www.shop263.com/downsoft/425.htm 铬铁]
 
[http://www.shop263.com/downsoft/426.htm 铬铁矿]
 
[http://www.shop263.com/downsoft/427.htm 庚酮]
 
[http://www.shop263.com/downsoft/428.htm 工业氨水]
 
[http://www.shop263.com/downsoft/429.htm 工业纯碱]
 
[http://www.shop263.com/downsoft/430.htm 铬酸酐]
 
[http://www.shop263.com/downsoft/431.htm 工业萘]
 
[http://www.shop263.com/downsoft/432.htm 工业氢氟酸]
 
[http://www.shop263.com/downsoft/433.htm 氢氧化钡]
 
[http://www.shop263.com/downsoft/434.htm 无水醋酸钠]
 
[http://www.shop263.com/downsoft/435.htm 硝酸钡]
 
[http://www.shop263.com/downsoft/436.htm 工业溴]
 
[http://www.shop263.com/downsoft/437.htm 功夫酸]
 
[http://www.shop263.com/downsoft/438.htm 汞触媒]
 
[http://www.shop263.com/downsoft/439.htm 钴镍]
 
[http://www.shop263.com/downsoft/440.htm 氰化钾]
 
[http://www.shop263.com/downsoft/441.htm 钴盐]
 
[http://www.shop263.com/downsoft/442.htm 固色剂]
 
[http://www.shop263.com/downsoft/443.htm 聚合硫酸铁]
 
[http://www.shop263.com/downsoft/444.htm 氯化钙]
 
[http://www.shop263.com/downsoft/445.htm 氰化钠]
 
[http://www.shop263.com/downsoft/446.htm 烧碱]
 
[http://www.shop263.com/downsoft/447.htm 硅灰粉]
 
[http://www.shop263.com/downsoft/448.htm 硅灰石]
 
[http://www.shop263.com/downsoft/449.htm 硅胶]
 
[http://www.shop263.com/downsoft/450.htm 硅胶干燥剂]
 
[http://www.shop263.com/downsoft/451.htm 脱漆剂]
 
[http://www.shop263.com/downsoft/452.htm 硅酸甲酯]
 
[http://www.shop263.com/downsoft/453.htm 硅酸钾]
 
[http://www.shop263.com/downsoft/454.htm 吸附剂]
 
[http://www.shop263.com/downsoft/455.htm 硅酸钠]
 
[http://www.shop263.com/downsoft/456.htm 硅酸铅]
 
[http://www.shop263.com/downsoft/457.htm 硅酸乙酯]
 
[http://www.shop263.com/downsoft/458.htm 硅烷]
 
[http://www.shop263.com/downsoft/459.htm 硅烷偶联剂]
 
[http://www.shop263.com/downsoft/460.htm 硅橡胶]
 
[http://www.shop263.com/downsoft/461.htm 硅油]
 
[http://www.shop263.com/downsoft/462.htm 癸二酸]
 
[http://www.shop263.com/downsoft/463.htm 二丁酯]
 
[http://www.shop263.com/downsoft/464.htm 二甲酯]
 
[http://www.shop263.com/downsoft/465.htm 二辛酯]
 
[http://www.shop263.com/downsoft/466.htm 癸二酸]
 
[http://www.shop263.com/downsoft/467.htm 过磷酸钙]
 
[http://www.shop263.com/downsoft/468.htm 过硫酸]
 
[http://www.shop263.com/downsoft/469.htm 过硫酸钠]
 
[http://www.shop263.com/downsoft/470.htm 过硫酸盐]
 
[http://www.shop263.com/downsoft/471.htm 过硼酸钠]
 
[http://www.shop263.com/downsoft/472.htm 过碳酸钠]
 
[http://www.shop263.com/downsoft/473.htm 过氧化钙]
 
[http://www.shop263.com/downsoft/474.htm 过氧化甲乙酮]
 
[http://www.shop263.com/downsoft/475.htm 氧化镁]
 
[http://www.shop263.com/downsoft/476.htm 过氧化尿素]
 
[http://www.shop263.com/downsoft/477.htm 过氧化氢]
 
[http://www.shop263.com/downsoft/478.htm 过氧乙酸]
 
[http://www.shop263.com/downsoft/479.htm 过一硫酸氢钾复合盐]
 
[http://www.shop263.com/downsoft/480.htm 海水晶]
 
[http://www.shop263.com/downsoft/481.htm 海藻胶]
 
[http://www.shop263.com/downsoft/482.htm 海藻酸钠]
 
[http://www.shop263.com/downsoft/483.htm 氦气]
 
[http://www.shop263.com/downsoft/484.htm 化工材料]
 
[http://www.shop263.com/downsoft/485.htm 农药]
 
[http://www.shop263.com/downsoft/486.htm 合成氨]
 
[http://www.shop263.com/downsoft/487.htm 核酸]
 
[http://www.shop263.com/downsoft/488.htm 云母粉]
 
[http://www.shop263.com/downsoft/489.htm 红矾钾]
 
[http://www.shop263.com/downsoft/490.htm 红矾钠]
 
[http://www.shop263.com/downsoft/491.htm 红磷]
 
[http://www.shop263.com/downsoft/492.htm 聚氯乙烯树脂]
 
[http://www.shop263.com/downsoft/493.htm 滑石粉]
 
[http://www.shop263.com/downsoft/494.htm 铁粉]
 
[http://www.shop263.com/downsoft/495.htm 化合物]
 
[http://www.shop263.com/downsoft/496.htm 环保涂料]
 
[http://www.shop263.com/downsoft/497.htm 环己酮]
 
[http://www.shop263.com/downsoft/498.htm 环己烯]
 
[http://www.shop263.com/downsoft/499.htm 乙腈]
 
[http://www.shop263.com/downsoft/500.htm 碳化硅微粉]
 
[http://www.shop263.com/downsoft/501.htm 碳化]
 
[http://www.shop263.com/downsoft/502.htm 碳化硼]
 
[http://www.shop263.com/downsoft/503.htm 碳化钨]
 
[http://www.shop263.com/downsoft/504.htm 碳精棒]
 
[http://www.shop263.com/downsoft/505.htm 碳酸钡]
 
[http://www.shop263.com/downsoft/506.htm 碳酸钙]
 
[http://www.shop263.com/downsoft/507.htm 碳酸锆]
 
[http://www.shop263.com/downsoft/508.htm 碳酸锆胺]
 
[http://www.shop263.com/downsoft/509.htm 碳酸钴]
 
[http://www.shop263.com/downsoft/510.htm 碳酸钾]
 
[http://www.shop263.com/downsoft/511.htm 碳酸镧]
 
[http://www.shop263.com/downsoft/512.htm 碳酸锂]
 
[http://www.shop263.com/downsoft/513.htm 碳酸锰]
 
[http://www.shop263.com/downsoft/514.htm 碳酸镍]
 
[http://www.shop263.com/downsoft/515.htm 碳酸氢铵]
 
[http://www.shop263.com/downsoft/516.htm 碳酸氢钠]
 
[http://www.shop263.com/downsoft/517.htm 碳酸铈]
 
[http://www.shop263.com/downsoft/518.htm 碳酸锶]
 
[http://www.shop263.com/downsoft/519.htm 碳酸鋅]
 
[http://www.shop263.com/downsoft/520.htm 酞菁绿]
 
[http://www.shop263.com/downsoft/521.htm 碳棒]
 
[http://www.shop263.com/downsoft/522.htm 碳化铬镍]
 
[http://www.shop263.com/downsoft/523.htm 碳化硅]
 
[http://www.shop263.com/downsoft/524.htm 碳五石油树脂]
 
[http://www.shop263.com/downsoft/525.htm 纳米材料]
 
[http://www.shop263.com/downsoft/526.htm 碳锌电池]
 
[http://www.shop263.com/downsoft/527.htm 碳氧]
 
[http://www.shop263.com/downsoft/528.htm 糖精]
 
[http://www.shop263.com/downsoft/529.htm 糖精钠]
 
[http://www.shop263.com/downsoft/530.htm 锂辉石]
 
[http://www.shop263.com/downsoft/531.htm 铸造膨润土]
 
[http://www.shop263.com/downsoft/532.htm 焦锑酸钠]
 
[http://www.shop263.com/downsoft/533.htm 铁铬盐]
 
[http://www.shop263.com/downsoft/534.htm 铁合金]
 
[http://www.shop263.com/downsoft/535.htm 铁氰化钾]
 
[http://www.shop263.com/downsoft/536.htm 涂料]
 
[http://www.shop263.com/downsoft/537.htm 吐氏酸]
 
[http://www.shop263.com/downsoft/538.htm 脱漆剂]
 
[http://www.shop263.com/downsoft/539.htm 五氧化二矾]
 
[http://www.shop263.com/downsoft/540.htm 五氧化二磷]
 
[http://www.shop263.com/downsoft/541.htm 五氧化二砷]
 
[http://www.shop263.com/downsoft/542.htm 五氧化二锑]
 
[http://www.shop263.com/downsoft/543.htm 戊酮]
 
[http://www.shop263.com/downsoft/544.htm 吸水树脂]
 
[http://www.shop263.com/downsoft/545.htm 硒酸钠]
 
[http://www.shop263.com/downsoft/546.htm 轴承]
 
[http://www.shop263.com/downsoft/547.htm 锡铅焊料]
 
[http://www.shop263.com/downsoft/548.htm 锡酸钠]
 
[http://www.shop263.com/downsoft/549.htm 重晶石粉]
 
[http://www.shop263.com/downsoft/550.htm 重质纯碱]
 
  
 +
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:
 +
* 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.
  
[http://www.haishun.net 门禁]
+
== Aims of advanced metadata ==
[http://www.haishun.net 监控]
 
[http://www.genset-sh.com 发电机]
 
[http://www.haishun.net/p_mjds.htm 门禁]
 
[http://www.haishun.net/p_mjds_dmmj.htm 门禁]
 
[http://www.haishun.net/p_mjds_lwmj.htm 门禁]
 
[http://www.haishun.net/p_mjds_yjs.htm 门禁]
 
[http://www.haishun.net/cctv.htm 监控]
 
[http://www.haishun.net/p_cctv_jk.htm 监控]
 
[http://www.haishun.net/p_cctv_jk_sxj.htm 监控]
 
[http://www.haishun.net/p_cctv_jk_xsq.htm 监控]
 
[http://www.haishun.net/p_cctv_jk_yplxj.htm 监控]
 
[http://www.haishun.net/p_cctv_jk_yt.htm 监控]
 
[http://www.haishun.net/p_cctv_jk_zj.htm 监控]
 
[http://www.7766888.com 虚拟主机]
 
[http://www.7766888.com/introcom.htm asp虚拟主机]
 
[http://www.7766888.com/introcn.htm php虚拟主机]
 
[http://www.7766888.com/u_puji.htm unix虚拟主机]
 
[http://www.7766888.com/mysql.htm windows虚拟主机]
 
[http://www.7766888.com/u_jingji.htm 纯空间虚拟主机]
 
[http://www.7766888.com/u_biaozhun.htm 虚拟主机]
 
[http://www.7766888.com/u_zhiqiang.htm 虚拟主机]
 
[http://www.7766888.com/w_jingji.htm 虚拟主机]
 
[http://www.7766888.com/w_biaozhun.htm 虚拟主机]
 
[http://www.asp169.com/marketingsoft1.htm 空压机]
 
[http://www.asp169.com/marketingsoft2.htm 压缩机]
 
[http://www.asp169.com/zhaoguan.htm 消毒剂]
 
[http://www.xsjby.cn 化工泵]
 
[http://www.asp169.com/zhaoguan2.htm 二氧化氯]
 
[http://www.fm360.net 网址大全]
 
[http://www.fm360.net/page/001.html 网址大全]
 
[http://www.fm360.net/page/game.htm 网址大全]
 
[http://www.fm360.net/page/software.htm 网址大全]
 
[http://www.fm360.net/page/jinshi.htm 网址大全]
 
[http://www.fm360.net/page/music.htm 网址大全]
 
[http://www.fm360.net/page/053.html 网址大全]
 
[http://www.fm360.net/page/flash.htm 网址大全]
 
[http://www.fm360.net/page/newsweek.htm 网址大全]
 
[http://www.fm360.net/page/club.htm 网址大全]
 
[http://www.fm360.net/page/stock.htm 网址大全]
 
[http://www.fm360.net/page/love.htm 网址大全]
 
[http://www.fm360.net/page/netcard.htm 网址大全]
 
[http://www.fm360.net/page/025.html 网址大全]
 
[http://www.fm360.net/page/hardware.htm 网址大全]
 
[http://www.fm360.net/page/sport.htm 网址大全]
 
[http://www.fm360.net/page/shouji.htm 网址大全]
 
[http://www.fm360.net/page/ym.htm 网址大全]
 
[http://www.fm360.net/page/ylbj.htm 网址大全]
 
[http://www.fm360.net/page/car.htm 网址大全]
 
[http://www.jifamark.com 线号机]
 
[http://www.jifamark.com/xhj.htm 线号机]
 
[http://www.jifamark.com 打号机]
 
[http://global.garrywa.com/index1.htm gemstone globe]
 
[http://global.garrywa.com/recommend.asp gemstone globe]
 
[http://global.garrywa.com/productclass.asp gemstone globe]
 
[http://global.garrywa.com gemstone globe]
 
[http://global.garrywa.com/order.htm gemstone globe]
 
[http://fireworks.garrywa.com Fireworks]
 
[http://fireworks.garrywa.com/about.htm Fireworks]
 
[http://fireworks.garrywa.com/factory.htm Fireworks]
 
[http://fireworks.garrywa.com/index.htm Fireworks]
 
[http://fireworks.garrywa.com/pro.htm Fireworks]
 
[http://fireworks.garrywa.com/faq.htm Fireworks]
 
[http://fireworks.garrywa.com/safty.htm Fireworks]
 
[http://fireworks.garrywa.com/contact.htm Fireworks]
 
[http://fireworks.garrywa.com/productclass.asp Fireworks]
 
[http://www.funasia.cn 装修]
 
[http://www.funasia.cn 团购]
 
[http://www.funasia.cn/pinpai.asp 装修]
 
[http://www.funasia.cn/client/gb_list.asp 装修]
 
[http://www.funasia.cn/design/index.asp 装修]
 
[http://www.funasia.cn/funasiaHome/index.asp 装修]
 
[http://www.funasia.cn/jiancai.asp 装修]
 
[http://www.funasia.cn/shishang.asp 装修]
 
[http://www.funasia.cn/mall/AboutOur.htm 团购]
 
[http://www.sec66.com 压缩机]
 
[http://www.sec66.com 空压机]
 
[http://www.sec66.com/ym001/pro.asp 空压机]
 
[http://www.sec66.com/index001.htm 空压机]
 
[http://www.sec66.com/ym001/intr.htm 空压机]
 
[http://www.sec66.com/ym001/application.htm 压缩机]
 
[http://www.sec66.com/ym001/service.htm 压缩机]
 
[http://www.sec66.com/ym001/news.htm 压缩机]
 
[http://www.sec66.com/ym001/bbs.htm 压缩机]
 
[http://www.sec66.com/ym001/en_intr.htm 压缩机]
 
[http://www.genset-sh.com 发电机]
 
[http://www.genset-sh.com/cai.asp 发电机]
 
[http://www.genset-sh.com/tancu.asp 发电机]
 
[http://www.genset-sh.com/xi3.asp 发电机]
 
[http://www.genset-sh.com/lan.asp 发电机]
 
[http://www.genset-sh.com/leng.asp 发电机]
 
[http://www.genset-sh.com/jiyou.asp 发电机]
 
[http://www.genset-sh.com/ranyou.asp 发电机]
 
[http://www.genset-sh.com/kuongqi.asp 发电机]
 
[http://www.genset-sh.com/ssss.asp 发电机]
 
[http://www.zj-df.com 减速机]
 
[http://www.xhhj.com.cn 离心机]
 
[http://www.cndevi.com 化妆品]
 
[http://www.cndevi.com/About.asp 化妆品]
 
[http://www.cndevi.com/Product.asp 化妆品]
 
[http://www.cndevi.com/sale.asp 化妆品]
 
[http://www.cndevi.com/Went.asp 化妆品]
 
[http://www.sinostrategy.com 战略咨询]
 
[http://www.sinostrategy.com/finalbexcel/index.asp 战略咨询]
 
[http://www.sinostrategy.com/finalbexcel/service/index.asp 战略咨询]
 
[http://www.sinostrategy.com/finalbexcel/expertise/index.asp 战略咨询]
 
[http://www.sinostrategy.com/finalbexcel/practice/index.asp 战略咨询]
 
[http://www.sinostrategy.com/finalbexcel/knowledge/index.asp 战略咨询]
 
[http://www.sinostrategy.com/finalbexcel/connect/index.asp 战略咨询]
 
[http://www.sinostrategy.com/finalbexcel/company/media_center/index.asp 战略咨询]
 
[http://www.hdfix.com.cn 数据恢复]
 
  
==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.

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.