Metadata: Difference between revisions

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


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


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


* ''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.
== [[OggKate]] ==


==Proposed Solutions==
[[OggKate]] was originally designed for karaoke and text. The stream can carry text and images, and these can be animated.


RDF + dublin core
== [[CMML]] (deprecated) ==


XML-encoding (generic rdf or CMML?)
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.
binary encoding (three-component length-encoded binary vectors)
[http://www.shop263.com/i-1/901.htm 丁二酸二甲酯]
[http://www.shop263.com/i-1/902.htm 艺雕刻用牛角]
[http://www.shop263.com/i-1/903.htm 异丙胺]
[http://www.shop263.com/i-1/904.htm 异丙苯]
[http://www.shop263.com/i-1/905.htm 异丙醇]
[http://www.shop263.com/i-1/906.htm 异丙醇铝]
[http://www.shop263.com/i-1/907.htm 异丙基]
[http://www.shop263.com/i-1/908.htm 异丙基黄药]
[http://www.shop263.com/i-1/909.htm 异丙醚]
[http://www.shop263.com/i-1/910.htm 异丁醇]
[http://www.shop263.com/i-1/911.htm 异丁基黄药]
[http://www.shop263.com/i-1/912.htm 异丁酰氯]
[http://www.shop263.com/i-1/913.htm 异庚烷]
[http://www.shop263.com/i-1/914.htm 异喹啉]
[http://www.shop263.com/i-1/915.htm 异喹啉羧酸]
[http://www.shop263.com/i-1/916.htm 异硫氰酸苯酯]
[http://www.shop263.com/i-1/917.htm 异氰尿酸]
[http://www.shop263.com/i-1/918.htm 异氰酸环已酯]
[http://www.shop263.com/i-1/919.htm 异氰酸正丁酯]
[http://www.shop263.com/i-1/920.htm 异氰酸酯]
[http://www.shop263.com/i-1/921.htm 异戊醇]
[http://www.shop263.com/i-1/922.htm 异戊二稀]
[http://www.shop263.com/i-1/923.htm 异戊烯醇]
[http://www.shop263.com/i-1/924.htm 异辛胺]
[http://www.shop263.com/i-1/925.htm 异辛酸钾]
[http://www.shop263.com/i-1/926.htm 异辛酸钠]
[http://www.shop263.com/i-1/927.htm 异辛烷]
[http://www.shop263.com/i-1/928.htm 阴离子型聚丙烯酰胺]
[http://www.shop263.com/i-1/929.htm 阴燃增塑剂]
[http://www.shop263.com/i-1/930.htm 银粉]
[http://www.shop263.com/i-1/931.htm 银杏叶干浸膏]
[http://www.shop263.com/i-1/932.htm 吲哚]
[http://www.shop263.com/i-1/933.htm 印花布]
[http://www.shop263.com/i-1/934.htm 荧光增白剂]
[http://www.shop263.com/i-1/935.htm 萤蒽]
[http://www.shop263.com/i-1/936.htm 萤光增白剂]
[http://www.shop263.com/i-1/937.htm 硬脂酸]
[http://www.shop263.com/i-1/938.htm 硬脂酸钡]
[http://www.shop263.com/i-1/939.htm 硬脂酸钙]
[http://www.shop263.com/i-1/940.htm 硬脂酸镉]
[http://www.shop263.com/i-1/941.htm 硬脂酸铝]
[http://www.shop263.com/i-1/942.htm 硬脂酸镁]
[http://www.shop263.com/i-1/943.htm 硬脂酸铅]
[http://www.shop263.com/i-1/944.htm 硬脂酸双铝]
[http://www.shop263.com/i-1/945.htm 硬脂酸系列]
[http://www.shop263.com/i-1/946.htm 硬脂酸锌]
[http://www.shop263.com/i-1/947.htm 硬脂酸盐]
[http://www.shop263.com/i-1/948.htm 硬质聚氨酯泡沫]
[http://www.shop263.com/i-1/949.htm 油剂聚醚]
[http://www.shop263.com/i-1/950.htm 油墨清洗剂]
[http://www.shop263.com/i-1/951.htm 油漆]
[http://www.shop263.com/i-1/952.htm 油漆工业用溶剂油]
[http://www.shop263.com/i-1/953.htm 油酸]
[http://www.shop263.com/i-1/954.htm 油酸酰胺]
[http://www.shop263.com/i-1/955.htm 油田杀菌剂]
[http://www.shop263.com/i-1/956.htm 油田钻井液]
[http://www.shop263.com/i-1/957.htm 有机氟]
[http://www.shop263.com/i-1/958.htm 有机氟化盐]
[http://www.shop263.com/i-1/959.htm 有机硅]
[http://www.shop263.com/i-1/960.htm 有机硅乳液]
[http://www.shop263.com/i-1/961.htm 有机硅微乳]
[http://www.shop263.com/i-1/962.htm 有机硅消泡剂]
[http://www.shop263.com/i-1/963.htm 有机硅粘接剂]
[http://www.shop263.com/i-1/964.htm 有机过氧化物引发剂]
[http://www.shop263.com/i-1/965.htm 有机合成]
[http://www.shop263.com/i-1/966.htm 有机磷肥]
[http://www.shop263.com/i-1/967.htm 有机卤化物]
[http://www.shop263.com/i-1/968.htm 有机膜涂料]
[http://www.shop263.com/i-1/969.htm 有机酸]
[http://www.shop263.com/i-1/970.htm 有机烷基磷酸酯类增塑剂]
[http://www.shop263.com/i-1/971.htm 有机溴阻燃剂]
[http://www.shop263.com/i-1/972.htm 有机颜料]
[http://www.shop263.com/i-1/973.htm 有机液体]
[http://www.shop263.com/i-1/974.htm 有磷氮]
[http://www.shop263.com/i-1/975.htm 三氯乙烯]
[http://www.shop263.com/i-1/976.htm 梭织机桨料]
[http://www.shop263.com/i-1/977.htm 釉用色料]
[http://www.shop263.com/i-1/978.htm 玉米淀粉]
[http://www.shop263.com/i-1/979.htm 浴液基料]
[http://www.shop263.com/i-1/980.htm 愈创木酚]
[http://www.shop263.com/i-1/981.htm 愈创木酚磺酸钾]
[http://www.shop263.com/i-1/982.htm 园艺喷洒油]
[http://www.shop263.com/i-1/983.htm 原甲酸三甲酯]
[http://www.shop263.com/i-1/984.htm 原甲酸三乙酯]
[http://www.shop263.com/i-1/985.htm 原盐]
[http://www.shop263.com/i-1/986.htm 原乙酸三甲酯]
[http://www.shop263.com/i-1/987.htm 月桂氮酮]
[http://www.shop263.com/i-1/988.htm 云母钛珠光颜料]
[http://www.shop263.com/i-1/989.htm 匀染剂]
[http://www.shop263.com/i-1/990.htm 杂环]
[http://www.shop263.com/i-1/991.htm 皂粒]
[http://www.shop263.com/i-1/992.htm 皂片]
[http://www.shop263.com/i-1/993.htm 皂用脂肪酸]
[http://www.shop263.com/i-1/994.htm 造纸助剂]
[http://www.shop263.com/i-1/995.htm 增白剂]
[http://www.shop263.com/i-1/996.htm 增稠剂]
[http://www.shop263.com/i-1/997.htm 增塑剂]
[http://www.shop263.com/i-1/998.htm 增炭剂]
[http://www.shop263.com/i-1/999.htm 渣油阻垢剂]
[http://www.shop263.com/i-1/1000.htm 粘合剂]
[http://www.shop263.com/i-1/1001.htm 樟脑粉]
[http://www.shop263.com/i-1/1002.htm 蔗糖八乙酸]
[http://www.shop263.com/i-1/1003.htm 蔗糖脂肪酸酯]
[http://www.shop263.com/i-1/1004.htm 蔗糖酯]
[http://www.shop263.com/i-1/1005.htm 珍珠魚卵革]
[http://www.shop263.com/i-1/1006.htm 真皮絨]
[http://www.shop263.com/i-1/1007.htm 正丁醇]
[http://www.shop263.com/i-1/1008.htm 正庚酸]
[http://www.shop263.com/i-1/1009.htm 正庚烷]
[http://www.shop263.com/i-1/1010.htm 正己烷]
[http://www.shop263.com/i-1/1011.htm 正钛酸四丁酯]
[http://www.shop263.com/i-1/1012.htm 正戊酸]
[http://www.shop263.com/i-1/1013.htm 正戊烷]
[http://www.shop263.com/i-1/1014.htm 正戊酰氯]
[http://www.shop263.com/i-1/1015.htm 正辛胺]
[http://www.shop263.com/i-1/1016.htm 正已烷]
[http://www.shop263.com/i-1/1017.htm 织物阻燃]
[http://www.shop263.com/i-1/1018.htm 脂肪胺]
[http://www.shop263.com/i-1/1019.htm 脂肪醇硫酸钠]
[http://www.shop263.com/i-1/1020.htm 脂肪酸]
[http://www.shop263.com/i-1/1021.htm 植物脂肪酸]
[http://www.shop263.com/i-1/1022.htm 纸浆脱墨漂白剂]
[http://www.shop263.com/i-1/1023.htm 纸张磨光油]
[http://www.shop263.com/i-1/1024.htm 中络黄]
[http://www.shop263.com/i-1/1025.htm 中温沥青]
[http://www.shop263.com/i-1/1026.htm 种子包衣剂]
[http://www.shop263.com/i-1/1027.htm 仲辛醇]
[http://www.shop263.com/i-1/1028.htm 重溶剂油]
[http://www.shop263.com/i-1/1029.htm 轴承机械油]
[http://www.shop263.com/i-1/1030.htm 轴承清洗剂]
[http://www.shop263.com/i-1/1031.htm 助留助滤剂]
[http://www.shop263.com/i-1/1032.htm 注射葡萄糖]
[http://www.shop263.com/i-1/1033.htm 柱层层析硅胶]
[http://www.shop263.com/i-1/1034.htm 筑路油]
[http://www.shop263.com/i-1/1035.htm 铸造焦]
[http://www.shop263.com/i-1/1036.htm 铸造蜡]
[http://www.shop263.com/i-1/1037.htm 铸造用呋]
[http://www.shop263.com/i-1/1038.htm 铸造用膨润土]
[http://www.shop263.com/i-1/1039.htm 铸造用粘结剂]
[http://www.shop263.com/i-1/1040.htm 装饰涂料]
[http://www.shop263.com/i-1/1041.htm 装修漆]
[http://www.shop263.com/i-1/1042.htm 紫外线吸收剂]
[http://www.shop263.com/i-1/1043.htm 自粘性保护膜]
[http://www.shop263.com/i-1/1044.htm 棕刚玉]
[http://www.shop263.com/i-1/1045.htm 棕榈酸]
[http://www.shop263.com/i-1/1046.htm 棕榈酸异丙酯]
[http://www.shop263.com/i-1/1047.htm 棕榈酸酯]
[http://www.shop263.com/i-1/1048.htm 阻燃剂]
[http://www.shop263.com/i-1/1049.htm 阻燃母料]
[http://www.shop263.com/i-1/1050.htm 组合聚醚]
[http://www.shop263.com/i-1/1051.htm 钻井泥浆土木工程用膨润土]
[http://www.shop263.com/i-1/1052.htm 左氟羧酸]
[http://www.shop263.com/i-1/1053.htm 左旋酒石酸]
[http://www.shop263.com/i-1/1054.htm 左旋氧氟沙星环合酯]
[http://www.shop263.com/i-1/1055.htm 舒他西林]
[http://www.shop263.com/i-1/1056.htm 舒他西林游离碱]
[http://www.shop263.com/i-1/1057.htm 树脂粉]
[http://www.shop263.com/i-1/1058.htm 树脂油]
[http://www.shop263.com/i-1/1059.htm 双苯基脲]
[http://www.shop263.com/i-1/1060.htm 双酚A树脂单体]
[http://www.shop263.com/i-1/1061.htm 双甘膦]
[http://www.shop263.com/i-1/1062.htm 双光气]
[http://www.shop263.com/i-1/1063.htm 双环戊二烯]
[http://www.shop263.com/i-1/1064.htm 双磺酸]
[http://www.shop263.com/i-1/1065.htm 双磺酸钠盐]
[http://www.shop263.com/i-1/1066.htm 双氰胺]
[http://www.shop263.com/i-1/1067.htm 双三甲基硅脲]
[http://www.shop263.com/i-1/1068.htm 双烷基封端聚醚类]
[http://www.shop263.com/i-1/1069.htm 双戊二烯树脂]
[http://www.shop263.com/i-1/1070.htm 双戊环二烯]
[http://www.shop263.com/i-1/1071.htm 双氧水]
[http://www.shop263.com/i-1/1072.htm 双氧水催化剂]
[http://www.shop263.com/i-1/1073.htm 双乙酸钠]
[http://www.shop263.com/i-1/1074.htm 双乙烯酮]
[http://www.shop263.com/i-1/1075.htm 双组份阴极电泳漆]
[http://www.shop263.com/i-1/1076.htm 霜霉威四氢糠醇]
[http://www.shop263.com/i-1/1077.htm 四溴苯酐]
[http://www.shop263.com/i-1/1078.htm 阿奇霉素]
[http://www.shop263.com/i-1/1079.htm 阿散酸]
[http://www.shop263.com/i-1/1070.htm 阿司匹林]
[http://www.shop263.com/i-1/1081.htm 阿斯巴甜]
[http://www.shop263.com/i-1/1082.htm 安息香双甲醚]
[http://www.shop263.com/i-1/1083.htm 桉叶油]
[http://www.shop263.com/i-1/1084.htm 氨化]
[http://www.shop263.com/i-1/1085.htm 氨基]
[http://www.shop263.com/i-1/1086.htm 氨基C酸]
[http://www.shop263.com/i-1/1087.htm 氨基苯甲酸]
[http://www.shop263.com/i-1/1088.htm 氨基吡啶]
[http://www.shop263.com/i-1/1089.htm 氨基丙醇]
[http://www.shop263.com/i-1/1090.htm 氨基丙酸]
[http://www.shop263.com/i-1/1091.htm 氨基蒽醌]
[http://www.shop263.com/i-1/1092.htm 氨基二苯醚]
[http://www.shop263.com/i-1/1093.htm 氨基胍硫酸盐]
[http://www.shop263.com/i-1/1094.htm 氨基胍碳酸氢盐]
[http://www.shop263.com/i-1/1095.htm 氨基胍碳酸盐]
[http://www.shop263.com/i-1/1096.htm 氨基胍重碳酸盐]
[http://www.shop263.com/i-1/1097.htm 氨基官能团硅烷]
[http://www.shop263.com/i-1/1098.htm 氨基磺酸]
[http://www.shop263.com/i-1/1099.htm 氨基磺酸铵]
[http://www.shop263.com/i-1/1100.htm 氨基磺酸胍]
[http://www.shop263.com/i-1/1101.htm 氨基磺酸镍]
[http://www.shop263.com/i-1/1102.htm 氨基甲酸甲酯]
[http://www.shop263.com/i-1/1103.htm 氨基甲酸乙酯]
[http://www.shop263.com/i-1/1104.htm 氨基介酸]
[http://www.shop263.com/i-1/1105.htm 氨基烤漆]
[http://www.shop263.com/i-1/1106.htm 氨基模塑料]
[http://www.shop263.com/i-1/1107.htm 氨基葡萄糖盐酸盐]
[http://www.shop263.com/i-1/1108.htm 氨基树脂]
[http://www.shop263.com/i-1/1109.htm 氨基乙腈硫酸]
[http://www.shop263.com/i-1/1110.htm 氨基乙酸]
[http://www.shop263.com/i-1/1111.htm 氨基有机硅]
[http://www.shop263.com/i-1/1112.htm 氨甲苯酸]
[http://www.shop263.com/i-1/1113.htm 氨甲环酸]
[http://www.shop263.com/i-1/1114.htm 氨甲基]
[http://www.shop263.com/i-1/1115.htm 氨酪酸]
[http://www.shop263.com/i-1/1116.htm 氨力农]
[http://www.shop263.com/i-1/1117.htm 铵明矾]
[http://www.shop263.com/i-1/1118.htm 螯合铁]
[http://www.shop263.com/i-1/1119.htm 奥美普林]
[http://www.shop263.com/i-1/1120.htm 八水氢氧化锶]
[http://www.shop263.com/i-1/1121.htm 八溴醚]
[http://www.shop263.com/i-1/1122.htm 钯碳]
[http://www.shop263.com/i-1/1123.htm 白电油]
[http://www.shop263.com/i-1/1124.htm 白蜂蜡]
[http://www.shop263.com/i-1/1125.htm 白糊精]
[http://www.shop263.com/i-1/1126.htm 白蒺藜提取物]
[http://www.shop263.com/i-1/1127.htm 白矿油]
[http://www.shop263.com/i-1/1128.htm 白藜芦醇]
[http://www.shop263.com/i-1/1129.htm 白炭黑]
[http://www.shop263.com/i-1/1130.htm 柏木油]
[http://www.shop263.com/i-1/1131.htm 半胱胺酸]
[http://www.shop263.com/i-1/1132.htm 钡镉膏稳定剂]
[http://www.shop263.com/i-1/1133.htm 钡锶盐]
[http://www.shop263.com/i-1/1134.htm 倍硫磷]
[http://www.shop263.com/i-1/1135.htm 贲亭酸甲酯]
[http://www.shop263.com/i-1/1136.htm 苯胺]
[http://www.shop263.com/i-1/1137.htm 苯胺甲基三乙氧基硅烷]
[http://www.shop263.com/i-1/1138.htm 苯丙酮]
[http://www.shop263.com/i-1/1139.htm 苯并环庚酮]
[http://www.shop263.com/i-1/1140.htm 苯并噻唑]
[http://www.shop263.com/i-1/1141.htm 苯对甲基苯甲醚]
[http://www.shop263.com/i-1/1142.htm 苯甘氨酸对钾盐]
[http://www.shop263.com/i-1/1143.htm 苯磺酰胺]
[http://www.shop263.com/i-1/1144.htm 苯磺酰氯]
[http://www.shop263.com/i-1/1145.htm 苯基]
[http://www.shop263.com/i-1/1146.htm 苯基丙酰氯]
[http://www.shop263.com/i-1/1147.htm 苯甲基硅油]
[http://www.shop263.com/i-1/1148.htm 苯甲醛]
[http://www.shop263.com/i-1/1149.htm 苯甲酸]
[http://www.shop263.com/i-1/1150.htm 苯甲酸钠]
[http://www.shop263.com/i-1/1151.htm 苯甲酰酒石酸]
[http://www.shop263.com/i-1/1152.htm 苯甲酰氯]
[http://www.shop263.com/i-1/1153.htm 苯钾酸钠]
[http://www.shop263.com/i-1/1154.htm 苯偶酰]
[http://www.shop263.com/i-1/1155.htm 苯偶姻]
[http://www.shop263.com/i-1/1156.htm 苯骈三氮唑]
[http://www.shop263.com/i-1/1157.htm 苯三甲酸酐]
[http://www.shop263.com/i-1/1158.htm 苯亚磺酸钠]
[http://www.shop263.com/i-1/1159.htm 苯氧基苯胺]
[http://www.shop263.com/i-1/1160.htm 苯氧基四溴双酚]
[http://www.shop263.com/i-1/1161.htm 苯乙腈]
[http://www.shop263.com/i-1/1162.htm 苯乙酸]
[http://www.shop263.com/i-1/1163.htm 苯乙酮]
[http://www.shop263.com/i-1/1164.htm 苯乙烯]
[http://www.shop263.com/i-1/1165.htm 苯乙烯化苯酚]
[http://www.shop263.com/i-1/1166.htm 苯乙烯脱氢催化剂]
[http://www.shop263.com/i-1/1167.htm 苯乙酰氯]
[http://www.shop263.com/i-1/1168.htm 苯已酮]
[http://www.shop263.com/i-1/1169.htm 笨乙腈]
[http://www.shop263.com/i-1/1170.htm 笨乙酸]
[http://www.shop263.com/i-1/1171.htm 比赛可灵]
[http://www.shop263.com/i-1/1172.htm 吡虫啉原药]
[http://www.shop263.com/i-1/1173.htm 吡啶甲酸铬]
[http://www.shop263.com/i-1/1174.htm 吡啶醇酯]
[http://www.shop263.com/i-1/1175.htm 吡啶羧酸铬]
[http://www.shop263.com/i-1/1176.htm 吡啶盐酸盐]
[http://www.shop263.com/i-1/1177.htm 吡啶乙酸盐酸盐]
[http://www.shop263.com/i-1/1178.htm 吡喹酮]
[http://www.shop263.com/i-1/1179.htm 吡咯酮]
[http://www.shop263.com/i-1/1180.htm 吡咯烷酮]
[http://www.shop263.com/i-1/1181.htm 吡咯烷酮羧酸钾]
[http://www.shop263.com/i-1/1182.htm 吡咯烷酮羧酸钠]
[http://www.shop263.com/i-1/1183.htm 吡咯烷酮装置]
[http://www.shop263.com/i-1/1184.htm 必性硅油]
[http://www.shop263.com/i-1/1185.htm 铋盐]
[http://www.shop263.com/i-1/1186.htm 避蚊胺]
[http://www.shop263.com/i-1/1187.htm 苄叉丙酮]
[http://www.shop263.com/i-1/1188.htm 苄基三甲基氯化胺]
[http://www.shop263.com/i-1/1189.htm 苄基三乙基氯化铵]
[http://www.shop263.com/i-1/1190.htm 变性淀粉]
[http://www.shop263.com/i-1/1191.htm 别嘌醇]
[http://www.shop263.com/i-1/1192.htm 冰醋酸]
[http://www.shop263.com/i-1/1193.htm 丙氨酸]
[http://www.shop263.com/i-1/1194.htm 丙胺]
[http://www.shop263.com/i-1/1195.htm 丙二醇]
[http://www.shop263.com/i-1/1196.htm 丙二腈]
[http://www.shop263.com/i-1/1197.htm 丙二酸酯类]
[http://www.shop263.com/i-1/1198.htm 丙基]
[http://www.shop263.com/i-1/1199.htm 丙基咪唑二羧酸]
[http://www.shop263.com/i-1/1200.htm 丙基咪唑二羧酸二乙酯]


== [[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.


== [[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.


== 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?


[http://www.haishun.net 门禁]
* '''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.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.asp169.com/crm.htm 化妆品]
[http://www.asp169.com/marketingsoft3.htm 战略咨询]
[http://www.asp169.com/marketingsoft4.htm 武夷山]
[http://www.asp169.com/marketingsoft5.htm 数据恢复]
[http://haishun11.51.net 虚拟主机]
[http://decorate.51.net 装修]
[http://decorate.51.net 团购]
[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://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.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.hdfix.com.cn 数据恢复]

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.