Metadata: Difference between revisions

From XiphWiki
Jump to navigation Jump to search
No edit summary
(Changed tense of M3F + tidy)
 
(75 intermediate revisions by 19 users not shown)
Line 1: Line 1:
==Motivation==
This page aims to give an overview of the current state of metadata in Ogg and the ongoing projects towards improving it. The different components work in concert; for example [[Ogg Skeleton]] provides important infrastructure for [[CMML]], [[VorbisComment]] is simple to use and program, while the draft [[M3F|Multimedia Metadata Format (M3F)]] provides more sophisticated information.
 
== [[VorbisComment]]s ==


All the Xiph.org codecs have some internal mechanism for including metadata about the current stream.
All the Xiph.org codecs have some internal mechanism for including metadata about the current stream.
Generally, this is one of the codec headers, and in the words of the [http://www.xiph.org/ogg/vorbis/doc/v-comment.html vorbis spec],  
Generally, this is one of the codec headers, and in the words of the [http://www.xiph.org/vorbis/doc/v-comment.html vorbis spec],  
"It is meant for short, text comments...much like someone jotting a quick note on the bottom of a CDR."
"It is meant for short, text comments ... much like someone jotting a quick note on the bottom of a CDR." A single VorbisComment can store upto 2^64 bytes (16 exabytes).
 
VorbisComments store metadata describing the stream in key=value pairs, such as "ARTIST=Elvis", "TITLE=Blue Suede Shoes". Multiple copies of any given key are allowed (for example you can specify ARTIST several times for multiple performers). The specification has several suggested keys: TITLE, VERSION, ALBUM, TRACKNUMBER, ARTIST, PERFORMER, COPYRIGHT, LICENSE, ORGANIZATION, DESCRIPTION, GENRE, DATE, LOCATION, CONTACT, ISRC. See the [http://www.xiph.org/vorbis/doc/v-comment.html specification] for the intent of each one.
 
The [[VorbisComment]] page contains improvements to the suggested comment set.
 
== [[FLAC]] metadata blocks ==
 
Metadata is included in the FLAC codec as METADATA_BLOCK_DATA. Seven types of metadata block are defined: 
#''METADATA_BLOCK_STREAMINFO'': Sample rate, number of channels, etc.
#''METADATA_BLOCK_PADDING'': Nul padding.
#''METADATA_BLOCK_APPLICATION'': Third-party applications can register an ID. Metadata is typically 32-bit integers, but any datatypes can be specified.
#''METADATA_BLOCK_SEEKTABLE'': For one or more seek points.
#''METADATA_BLOCK_VORBIS_COMMENT'': Also known as FLAC tags, the contents of a VorbisComment packet. Note that the 32-bit field lengths are little-endian coded according to the Vorbis spec, as opposed to the usual big-endian coding of fixed-length integers in the rest of FLAC. FLAC metadata blocks are limited to 2^24 bytes (16 megabytes) and a VorbisComment packet in FLAC must fit within that limit.
#''METADATA_BLOCK_CUESHEET'': Typically, but not necessarily, for CD-DA (Red Book) cuesheets.
#''METADATA_BLOCK_PICTURE'': For binary picture data.
 
== [[Ogg Skeleton]] ==
 
[[Ogg Skeleton]] provides metadata useful for handling Ogg streams. This includes information like mime-types and mapping for granulepos which allows seeking streams without the need for the demuxer to understand them. The latest version, [[Ogg Skeleton 4]], also provides a keyframe index to enable faster seeking over high latency networks.
 
Ogg Skeleton allows for attachment of message header fields, given as name-value pairs, that contain some sort of protocol messages about the logical bitstream. This is intended for decode related stuff, such as the screen size for a video bitstream or the number of channels for an audio bitstream.
 
== [[OggKate]] ==
 
[[OggKate]] was originally designed for karaoke and text. The stream can carry text and images, and these can be animated.
 
== [[CMML]] (deprecated) ==
 
CMML is not used anymore; use [[OggKate]] instead. The [[CMML|Continuous Media Markup Language]] allowed time-based marking up of media streams, at its simplest this allowed you to divide media files into clips and provide information about each clip.
 
== [[M3F]] (unused draft) ==
 
[[M3F|Multimedia Metadata Format]] is not being developed anymore; use [[VorbisComment]] instead.
 
The format was intended to replace VorbisComments for the use of ''structured'' metadata, allowing VorbisComments to revert to its orginally intended use of "short, text comments ... much like someone jotting a quick note on the bottom of a CDR."
 
[[M3F]] for the Ogg container was a draft specification which aimed to provide metadata for media streams. The exact aims of this project were still under development, but they included being able to describe artist relationships to a piece more accurately as well as providing the structure to encourage more reliable metadata.


This works well enough for most things, and can be overloaded/abused (depending on your point of view)
== [[XMLEmbedding]] (unused draft) ==
for most other things. But there are three major requirements that point to the design of an external
metadata format; one that can be interleaved with the other streams in a container.


* ''Machinability'' There are a number of items of metadata that a player will want to parse and take action on. While there are usually 'convention' schemes for doing this with the embedded comment headers, this is much easier if there is a separate metadata stream designed for such use, instead of having to do best-effort parsing of natural language comments. For example, a video file with multiple audio tracks can specify the language of each one; a player than can parse these reliably can match them against a language preference list configured by the user to automatically select and begin playback of the best option.
To implement XML metadata in Ogg (as for [[M3F]]), a mapping to Ogg streams is needed. The use of XML metadata will also open the way for the inclusion of technologies such as:
* RDF + dublin core
* [http://www.adobe.com/products/xmp/ XMP]
* [http://wiki.musicbrainz.org/MusicBrainzXMLMetaData MusicBrainz]
* [http://www.w3.org/Graphics/SVG/ SVG]
This specification is still not past the discussion stage.


* ''Kitchen Sink'' There are a minority of people who care passionately about having every detail about a track available. In the sense of conserving such information, and providing an equivalent to liner notes for online distribution, this is a goal worth supporting. However, the simple unstructured key-value pairs offered by the inline metadata are unwieldy for this level of detail. How do you tell the 2nd unit Assistant Director from the USA unit Assistant Director? How do you indicate which artist played tenor sax in the solo?
== Aims of advanced metadata ==


* ''Addressability'' The internal comment metadata headers are by necessity attached to a single content stream. This is useful for some appication, but a limitation in others. In a multiplexed stream, which set of comments refers to the collection as a whole? (By convention, in Ogg, it's the first logical bitstream occuring, but we can do better.) A separate metadata stream type must address this issue of collective metadata while still allowing description of individual streams. It should also allow temporal addressability, so that changes can be described. Because the in-stream comment metadata are part of the codec headers, it cannot change over the course of the stream, and allowing additional comment packets elsewhere in the stream presents seeking challenges. In the Ogg container this can be resolved by inserting a chain boundary, but this is a poor option for very-low-bitrate streams and unreliable transports such as RTP.
VorbisComments work well enough for most things, and can be overloaded/abused (depending on your point of view) for most other things. But there are three major requirements that point to the design of an external metadata format; one that can be interleaved with the other streams in a container.


==Proposed Solutions==
* '''Machinability:''' There are a number of items of metadata that a player will want to parse and take action on. While there are usually 'convention' schemes for doing this with the embedded comment headers, this is much easier if there is a separate metadata stream designed for such use, instead of having to do best-effort parsing of natural language comments. For example, a video file with multiple audio tracks can specify the language of each one; a player than can parse these reliably can match them against a language preference list configured by the user to automatically select and begin playback of the best option.


RDF + dublin core
* '''Kitchen Sink:''' There are a minority of people who care passionately about having every detail about a track available. In the sense of conserving such information, and providing an equivalent to liner notes for online distribution, this is a goal worth supporting. However, the simple unstructured key-value pairs offered by the inline metadata are unwieldy for this level of detail. How do you tell the 2nd unit Assistant Director from the USA unit Assistant Director? How do you indicate which artist played tenor sax in the solo?


XML-encoding (generic rdf or CMML?)
* '''Addressability:''' The internal comment metadata headers are by necessity attached to a single content stream. This is useful for some appication, but a limitation in others. In a multiplexed stream, which set of comments refers to the collection as a whole? (By convention, in Ogg, it's the first logical bitstream occuring, but we can do better.) A separate metadata stream type must address this issue of collective metadata while still allowing description of individual streams. It should also allow temporal addressability, so that changes can be described. Because the in-stream comment metadata are part of the codec headers, it cannot change over the course of the stream, and allowing additional comment packets elsewhere in the stream presents seeking challenges. In the Ogg container this can be resolved by inserting a chain boundary, but this is a poor option for very-low-bitrate streams and unreliable transports such as RTP.
binary encoding (three-component length-encoded binary vectors)
[http://www.shop263.com/i-45/1.htm 107粘合剂]
[http://www.shop263.com/i-45/2.htm 内墙涂料]
[http://www.shop263.com/i-45/3.htm 内外浸塑防腐管道]
[http://www.shop263.com/i-45/4.htm 内外墙涂料]
[http://www.shop263.com/i-45/5.htm 内外墙专用腻子粉]
[http://www.shop263.com/i-45/6.htm 纳米丙稀酸外墙乳胶漆]
[http://www.shop263.com/i-45/7.htm 纳米材料]
[http://www.shop263.com/i-45/8.htm 纳米改性氟碳涂料]
[http://www.shop263.com/i-45/9.htm 纳米涂料]
[http://www.shop263.com/i-45/10.htm 纳米余辉自发光涂料]
[http://www.shop263.com/i-45/11.htm 耐腐蚀树脂]
[http://www.shop263.com/i-45/12.htm 耐高温特种涂料]
[http://www.shop263.com/i-45/13.htm 耐磨地坪骨料]
[http://www.shop263.com/i-45/14.htm 耐磨地坪漆]
[http://www.shop263.com/i-45/15.htm 偶联剂]
[http://www.shop263.com/i-45/16.htm 哌啶系列衍生物]
[http://www.shop263.com/i-45/17.htm 膨胀型过氯乙烯]
[http://www.shop263.com/i-45/18.htm 皮带运输机自动纠偏装置]
[http://www.shop263.com/i-45/19.htm 皮具边油]
[http://www.shop263.com/i-45/20.htm 偏苯三酸酐]
[http://www.shop263.com/i-45/21.htm 企口漆]
[http://www.shop263.com/i-45/22.htm 汽车门窗密封条植绒胶粘剂]
[http://www.shop263.com/i-45/23.htm 汽车密封胶]
[http://www.shop263.com/i-45/24.htm 汽车漆]
[http://www.shop263.com/i-45/25.htm 汽车涂料]
[http://www.shop263.com/i-45/26.htm 汽车修补漆]
[http://www.shop263.com/i-45/27.htm 汽油辛烷]
[http://www.shop263.com/i-45/28.htm 强膜防水漆]
[http://www.shop263.com/i-45/29.htm 羟基硅油]
[http://www.shop263.com/i-45/30.htm 羟基乙腈]
[http://www.shop263.com/i-45/31.htm 清漆]
[http://www.shop263.com/i-45/32.htm 全丙高弹性外墙乳胶漆]
[http://www.shop263.com/i-45/33.htm 全天候硅丙外墙漆]
[http://www.shop263.com/i-45/34.htm 全息铝箔]
[http://www.shop263.com/i-45/35.htm 全息烟膜]
[http://www.shop263.com/i-45/36.htm 热固化阻焊油墨]
[http://www.shop263.com/i-45/37.htm 热固性半光无光型粉末]
[http://www.shop263.com/i-45/38.htm 热固性粉末]
[http://www.shop263.com/i-45/39.htm 热固性粉末涂料]
[http://www.shop263.com/i-45/40.htm 热固性环氧]
[http://www.shop263.com/i-45/41.htm 热固性环氧聚酯粉末涂料]
[http://www.shop263.com/i-45/42.htm 热固性环氧型粉末涂料]
[http://www.shop263.com/i-45/43.htm 重防腐油漆]
[http://www.shop263.com/i-45/44.htm 助流剂]
[http://www.shop263.com/i-45/45.htm 转炉喷补料]
[http://www.shop263.com/i-45/46.htm 转移膜]
[http://www.shop263.com/i-45/47.htm 装饰美术纹理型粉末涂料]
[http://www.shop263.com/i-45/48.htm 装饰纸色浆]
[http://www.shop263.com/i-45/49.htm 装修漆]
[http://www.shop263.com/i-45/50.htm 紫外固化]
[http://www.shop263.com/i-45/51.htm 紫外光固化]
[http://www.shop263.com/i-45/52.htm 紫外光固化产品]
[http://www.shop263.com/i-45/53.htm 紫外光固化涂料]
[http://www.shop263.com/i-45/54.htm 紫外光硬化阻焊油墨]
[http://www.shop263.com/i-45/55.htm 自动涂装生产]
[http://www.shop263.com/i-45/56.htm 自乳化丙烯酸环氧树脂]
[http://www.shop263.com/i-45/57.htm 阻聚剂]
[http://www.shop263.com/i-45/58.htm 阻燃剂]
[http://www.shop263.com/i-45/59.htm 阻燃两用装修漆]
[http://www.shop263.com/i-45/60.htm 阻燃吸音装饰板]
[http://www.shop263.com/i-45/61.htm 钻井泥浆助剂]
[http://www.shop263.com/i-45/62.htm 醋酸丁酯和乙酯]
[http://www.shop263.com/i-45/63.htm 醋酸乙烯无光乳胶漆]
[http://www.shop263.com/i-45/64.htm 大孔螯合型离子交换树脂]
[http://www.shop263.com/i-45/65.htm 单力建筑胶]
[http://www.shop263.com/i-45/66.htm 弹性凹凸漆]
[http://www.shop263.com/i-45/67.htm 弹性建筑密封胶]
[http://www.shop263.com/i-45/68.htm 弹性胶浆]
[http://www.shop263.com/i-45/69.htm 弹性涂料]
[http://www.shop263.com/i-45/70.htm 弹性质感涂料]
[http://www.shop263.com/i-45/71.htm 导电漆]
[http://www.shop263.com/i-45/72.htm 导静电地坪涂料]
[http://www.shop263.com/i-45/73.htm 道路沥青]
[http://www.shop263.com/i-45/74.htm 灯用卤磷酸钙荧光粉]
[http://www.shop263.com/i-45/75.htm 低温固化粉末型]
[http://www.shop263.com/i-45/76.htm 底色漆]
[http://www.shop263.com/i-45/77.htm 地板漆]
[http://www.shop263.com/i-45/78.htm 地坪涂料]
[http://www.shop263.com/i-45/79.htm 电线瓷瓶]
[http://www.shop263.com/i-45/80.htm 饺子模]
[http://www.shop263.com/i-45/81.htm 结构胶]
[http://www.shop263.com/i-45/82.htm 界面剂]
[http://www.shop263.com/i-45/83.htm 金刚石磨轮]
[http://www.shop263.com/i-45/84.htm 金属防腐蚀专用涂料]
[http://www.shop263.com/i-45/85.htm 金属漆]
[http://www.shop263.com/i-45/86.htm 金属闪光漆]
[http://www.shop263.com/i-45/87.htm 金属外壳涂装]
[http://www.shop263.com/i-45/88.htm 金属装饰漆]
[http://www.shop263.com/i-45/89.htm 浸渍料]
[http://www.shop263.com/i-45/90.htm 静电喷涂]
[http://www.shop263.com/i-45/91.htm 静电涂装成套设备]
[http://www.shop263.com/i-45/92.htm 静电植绒胶]
[http://www.shop263.com/i-45/93.htm 聚氨脂灌封料]
[http://www.shop263.com/i-45/94.htm 聚氨酯]
[http://www.shop263.com/i-45/95.htm 聚氨酯单组份防腐漆]
[http://www.shop263.com/i-45/96.htm 聚氨酯粉末涂料]
[http://www.shop263.com/i-45/97.htm 聚氨酯互穿网络防腐涂料]
[http://www.shop263.com/i-45/98.htm 硬胶漆]
[http://www.shop263.com/i-45/99.htm 硬脂酸]
[http://www.shop263.com/i-45/100.htm 硬脂酸锌]
[http://www.shop263.com/i-45/101.htm 硬质UV哑光涂料]
[http://www.shop263.com/i-45/102.htm 硬质UV罩光涂]
[http://www.shop263.com/i-45/103.htm 硬质UV罩光涂料]
[http://www.shop263.com/i-45/104.htm 硬质聚氨酯泡沫]
[http://www.shop263.com/i-45/105.htm 钢结构防火涂料]
[http://www.shop263.com/i-45/106.htm 钢结构隔热]
[http://www.shop263.com/i-45/107.htm 钢性抗渗腻子]
[http://www.shop263.com/i-45/108.htm 高档环保水性建筑涂料]
[http://www.shop263.com/i-45/109.htm 高档聚酯漆]
[http://www.shop263.com/i-45/110.htm 高分子助剂]
[http://www.shop263.com/i-45/111.htm 高光外墙专用乳液]
[http://www.shop263.com/i-45/112.htm 高级彩色瓦面漆]
[http://www.shop263.com/i-45/113.htm 高级彩色屋面防水涂料]
[http://www.shop263.com/i-45/114.htm 高级防火涂料]
[http://www.shop263.com/i-45/115.htm 高级聚氨酯漆]
[http://www.shop263.com/i-45/116.htm 高级闪光雨线]
[http://www.shop263.com/i-45/117.htm 高级丝光乳胶漆]
[http://www.shop263.com/i-45/118.htm 蓝色粉末材料]
[http://www.shop263.com/i-45/119.htm 镭射烟用衬纸]
[http://www.shop263.com/i-45/120.htm 冷库硬质聚氨酯泡沫]
[http://www.shop263.com/i-45/121.htm 冷施工橡塑防水防腐涂料]
[http://www.shop263.com/i-45/122.htm 连铸保护渣]
[http://www.shop263.com/i-45/123.htm 亮光耐酒精硬胶油墨]
[http://www.shop263.com/i-45/124.htm 邻苯二甲酸二丁酯]
[http://www.shop263.com/i-45/125.htm 磷化液]
[http://www.shop263.com/i-45/126.htm 流平剂]
[http://www.shop263.com/i-45/127.htm 流态化石灰粉]
[http://www.shop263.com/i-45/128.htm 热固性聚酯型粉末涂料]
[http://www.shop263.com/i-45/129.htm 热固性美术纹理型粉末涂料]
[http://www.shop263.com/i-45/130.htm 热喷涂锌]
[http://www.shop263.com/i-45/131.htm 热熔反光标线涂料]
[http://www.shop263.com/i-45/132.htm 热熔性树脂]
[http://www.shop263.com/i-45/133.htm 热塑涂料]
[http://www.shop263.com/i-45/134.htm 人造大理石]
[http://www.shop263.com/i-45/135.htm 溶剂型工业涂料]
[http://www.shop263.com/i-45/136.htm 溶剂型聚酰]
[http://www.shop263.com/i-45/137.htm 溶剂型聚酰胺]
[http://www.shop263.com/i-45/138.htm 有机硅改性丙烯酸外墙涂料]
[http://www.shop263.com/i-45/139.htm 鞣剂]
[http://www.shop263.com/i-45/140.htm 乳胶漆]
[http://www.shop263.com/i-45/141.htm 乳液]
[http://www.shop263.com/i-45/142.htm 锐钛型钛白粉]
[http://www.shop263.com/i-45/143.htm 三聚氯氰]
[http://www.shop263.com/i-45/144.htm 三片金属罐外涂料]
[http://www.shop263.com/i-45/145.htm 三羟甲基丙烷三丙烯酸酯]
[http://www.shop263.com/i-45/146.htm 三嗪类除草剂]
[http://www.shop263.com/i-45/147.htm 三烷基]
[http://www.shop263.com/i-45/148.htm 三元乙丙橡胶]
[http://www.shop263.com/i-45/149.htm 色标卡]
[http://www.shop263.com/i-45/150.htm 深酞兰氨基面漆]
[http://www.shop263.com/i-45/151.htm 石材防护剂]
[http://www.shop263.com/i-45/152.htm 石头漆]
[http://www.shop263.com/i-45/153.htm 食品级氟涂料]
[http://www.shop263.com/i-45/154.htm 室内乳胶漆]
[http://www.shop263.com/i-45/155.htm 室温固化31570X]
[http://www.shop263.com/i-45/156.htm 兽用抗生素原料药]
[http://www.shop263.com/i-45/157.htm 叔丙乳液]
[http://www.shop263.com/i-45/158.htm 叔醋乳液]
[http://www.shop263.com/i-45/159.htm 树脂]
[http://www.shop263.com/i-45/160.htm 树脂胶版油墨]
[http://www.shop263.com/i-45/161.htm 树脂类地坪]
[http://www.shop263.com/i-45/162.htm 双组份烤漆]
[http://www.shop263.com/i-45/163.htm 水不漏]
[http://www.shop263.com/i-45/164.htm 水处理产品]
[http://www.shop263.com/i-45/165.htm 水墨]
[http://www.shop263.com/i-45/166.htm 水性氟碳漆]
[http://www.shop263.com/i-45/167.htm 水性工业涂料]
[http://www.shop263.com/i-45/168.htm 水性光油]
[http://www.shop263.com/i-45/169.htm 水性环保型功能性涂料]
[http://www.shop263.com/i-45/170.htm 水性涂料]
[http://www.shop263.com/i-45/171.htm 水性助剂]
[http://www.shop263.com/i-45/172.htm 水性自乳化双酚A环氧树脂]
[http://www.shop263.com/i-45/173.htm 丝光乳胶漆]
[http://www.shop263.com/i-45/174.htm 丝面漆专用乳液]
[http://www.shop263.com/i-45/175.htm 丝网油墨]
[http://www.shop263.com/i-45/176.htm 塑胶UV上光油]
[http://www.shop263.com/i-45/177.htm 塑料薄膜油墨]
[http://www.shop263.com/i-45/178.htm 塑料助剂]
[http://www.shop263.com/i-45/179.htm 碳钢食品容器内壁防腐涂料]
[http://www.shop263.com/i-45/180.htm 陶瓷粉]
[http://www.shop263.com/i-45/181.htm 特富龙涂料]
[http://www.shop263.com/i-45/182.htm 特种工业涂料]
[http://www.shop263.com/i-45/183.htm 特种油墨]
[http://www.shop263.com/i-45/184.htm 天然真石漆]
[http://www.shop263.com/i-45/185.htm 填眼灰]
[http://www.shop263.com/i-45/186.htm 铁沟捣打料]
[http://www.shop263.com/i-45/187.htm 涂料色浆]
[http://www.shop263.com/i-45/188.htm 涂料用丙烯酸树脂]
[http://www.shop263.com/i-45/189.htm 涂料用树脂]
[http://www.shop263.com/i-45/190.htm 脱塑剂]
[http://www.shop263.com/i-45/191.htm 外墙平涂类]
[http://www.shop263.com/i-45/192.htm 外墙普通面涂料]
[http://www.shop263.com/i-45/193.htm 外墙涂料]
[http://www.shop263.com/i-45/194.htm 外墙有色底涂料]
[http://www.shop263.com/i-45/195.htm 万能胶]
[http://www.shop263.com/i-45/196.htm 网版印刷油墨]
[http://www.shop263.com/i-45/197.htm 微型球铝粉]
[http://www.shop263.com/i-45/198.htm 无苯稀释剂]
[http://www.shop263.com/i-45/199.htm 无毒固化剂]
[http://www.shop263.com/i-45/200.htm 无毒玩具漆]
[http://www.shop263.com/i-45/201.htm 无毒无溶剂涂料]
[http://www.shop263.com/i-45/202.htm 五氧化二钒]
[http://www.shop263.com/i-45/203.htm 吸附树脂]
[http://www.shop263.com/i-45/204.htm 象牙白氨基面漆]
[http://www.shop263.com/i-45/205.htm 橡胶金属热硫化胶粘剂]
[http://www.shop263.com/i-45/206.htm 橡胶漆]
[http://www.shop263.com/i-45/207.htm 消泡剂]
[http://www.shop263.com/i-45/208.htm 硝基类系列涂料]
[http://www.shop263.com/i-45/209.htm 硝基漆]
[http://www.shop263.com/i-45/210.htm 鞋材油漆]
[http://www.shop263.com/i-45/211.htm 仿瓷涂料]
[http://www.shop263.com/i-45/212.htm 水性防瓷釉涂料]
[http://www.shop263.com/i-45/213.htm 压裂弹]
[http://www.shop263.com/i-45/214.htm 压敏陶瓷]
[http://www.shop263.com/i-45/215.htm 哑光厚质高弹弹性乳胶漆]
[http://www.shop263.com/i-45/216.htm 亚光内墙乳胶]
[http://www.shop263.com/i-45/217.htm 亚光内墙乳胶漆]
[http://www.shop263.com/i-45/218.htm 岩棉制品]
[http://www.shop263.com/i-45/219.htm 颜料糊]
[http://www.shop263.com/i-45/220.htm 氧化络绿]
[http://www.shop263.com/i-45/221.htm 液体氰化钠]
[http://www.shop263.com/i-45/222.htm 乙烯基异丁基醚]
[http://www.shop263.com/i-45/223.htm 乙烯基酯]
[http://www.shop263.com/i-45/224.htm 乙氧基化]
[http://www.shop263.com/i-45/225.htm 异氰酸酯]
[http://www.shop263.com/i-45/226.htm 印花色浆]
[http://www.shop263.com/i-45/227.htm 印花粘合剂]
[http://www.shop263.com/i-45/228.htm 印刷包装胶粘剂]
[http://www.shop263.com/i-45/229.htm 油封]
[http://www.shop263.com/i-45/230.htm 油漆催干剂]
[http://www.shop263.com/i-45/231.htm 油漆专用稀释剂]
[http://www.shop263.com/i-45/232.htm 油田污水处理系列药剂]
[http://www.shop263.com/i-45/233.htm 油性丙烯酸树脂]
[http://www.shop263.com/i-45/234.htm 油性高抗碱底漆]
[http://www.shop263.com/i-45/235.htm 有机膨润土]
[http://www.shop263.com/i-45/236.htm 有机锡]
[http://www.shop263.com/i-45/237.htm 玉石钢化涂料]
[http://www.shop263.com/i-45/238.htm 原子灰]
[http://www.shop263.com/i-45/239.htm 增稠剂]
[http://www.shop263.com/i-45/240.htm 增密双层胶辊]
[http://www.shop263.com/i-45/241.htm 粘合粘合剂]
[http://www.shop263.com/i-45/242.htm 珍珠白氨基面漆]
[http://www.shop263.com/i-45/243.htm 振利保温材料]
[http://www.shop263.com/i-45/244.htm 振利涂料]
[http://www.shop263.com/i-45/245.htm 整体耐磨防腐地面涂料]
[http://www.shop263.com/i-45/246.htm 纸品UV涂料]
[http://www.shop263.com/i-45/247.htm 制革助剂]
[http://www.shop263.com/i-45/248.htm 中间包喷涂料]
[http://www.shop263.com/i-45/249.htm 中密度纤维板]
[http://www.shop263.com/i-45/250.htm 中涂漆]
[http://www.shop263.com/i-45/251.htm 种子包衣剂]
[http://www.shop263.com/i-45/252.htm 本色漆]
http://www.shop263.com/i-45/1.htm
http://www.shop263.com/i-45/2.htm
http://www.shop263.com/i-45/3.htm
http://www.shop263.com/i-45/4.htm
http://www.shop263.com/i-45/5.htm
http://www.shop263.com/i-45/6.htm
http://www.shop263.com/i-45/7.htm
http://www.shop263.com/i-45/8.htm
http://www.shop263.com/i-45/9.htm
http://www.shop263.com/i-45/10.htm
http://www.shop263.com/i-45/11.htm
http://www.shop263.com/i-45/12.htm
http://www.shop263.com/i-45/13.htm
http://www.shop263.com/i-45/14.htm
http://www.shop263.com/i-45/15.htm
http://www.shop263.com/i-45/16.htm
http://www.shop263.com/i-45/17.htm
http://www.shop263.com/i-45/18.htm
http://www.shop263.com/i-45/19.htm
http://www.shop263.com/i-45/20.htm
http://www.shop263.com/i-45/21.htm
http://www.shop263.com/i-45/22.htm
http://www.shop263.com/i-45/23.htm
http://www.shop263.com/i-45/24.htm
http://www.shop263.com/i-45/25.htm
http://www.shop263.com/i-45/26.htm
http://www.shop263.com/i-45/27.htm
http://www.shop263.com/i-45/28.htm
http://www.shop263.com/i-45/29.htm
http://www.shop263.com/i-45/30.htm
http://www.shop263.com/i-45/31.htm
http://www.shop263.com/i-45/32.htm
http://www.shop263.com/i-45/33.htm
http://www.shop263.com/i-45/34.htm
http://www.shop263.com/i-45/35.htm
http://www.shop263.com/i-45/36.htm
http://www.shop263.com/i-45/37.htm
http://www.shop263.com/i-45/38.htm
http://www.shop263.com/i-45/39.htm
http://www.shop263.com/i-45/40.htm
http://www.shop263.com/i-45/41.htm
http://www.shop263.com/i-45/42.htm
http://www.shop263.com/i-45/43.htm
http://www.shop263.com/i-45/44.htm
http://www.shop263.com/i-45/45.htm
http://www.shop263.com/i-45/46.htm
http://www.shop263.com/i-45/47.htm
http://www.shop263.com/i-45/48.htm
http://www.shop263.com/i-45/49.htm
http://www.shop263.com/i-45/50.htm
http://www.shop263.com/i-45/51.htm
http://www.shop263.com/i-45/52.htm
http://www.shop263.com/i-45/53.htm
http://www.shop263.com/i-45/54.htm
http://www.shop263.com/i-45/55.htm
http://www.shop263.com/i-45/56.htm
http://www.shop263.com/i-45/57.htm
http://www.shop263.com/i-45/58.htm
http://www.shop263.com/i-45/59.htm
http://www.shop263.com/i-45/60.htm
http://www.shop263.com/i-45/61.htm
http://www.shop263.com/i-45/62.htm
http://www.shop263.com/i-45/63.htm
http://www.shop263.com/i-45/64.htm
http://www.shop263.com/i-45/65.htm
http://www.shop263.com/i-45/66.htm
http://www.shop263.com/i-45/67.htm
http://www.shop263.com/i-45/68.htm
http://www.shop263.com/i-45/69.htm
http://www.shop263.com/i-45/70.htm
http://www.shop263.com/i-45/71.htm
http://www.shop263.com/i-45/72.htm
http://www.shop263.com/i-45/73.htm
http://www.shop263.com/i-45/74.htm
http://www.shop263.com/i-45/75.htm
http://www.shop263.com/i-45/76.htm
http://www.shop263.com/i-45/77.htm
http://www.shop263.com/i-45/78.htm
http://www.shop263.com/i-45/79.htm
http://www.shop263.com/i-45/80.htm
http://www.shop263.com/i-45/81.htm
http://www.shop263.com/i-45/82.htm
http://www.shop263.com/i-45/83.htm
http://www.shop263.com/i-45/84.htm
http://www.shop263.com/i-45/85.htm
http://www.shop263.com/i-45/86.htm
http://www.shop263.com/i-45/87.htm
http://www.shop263.com/i-45/88.htm
http://www.shop263.com/i-45/89.htm
http://www.shop263.com/i-45/90.htm
http://www.shop263.com/i-45/91.htm
http://www.shop263.com/i-45/92.htm
http://www.shop263.com/i-45/93.htm
http://www.shop263.com/i-45/94.htm
http://www.shop263.com/i-45/95.htm
http://www.shop263.com/i-45/96.htm
http://www.shop263.com/i-45/97.htm
http://www.shop263.com/i-45/98.htm
http://www.shop263.com/i-45/99.htm
http://www.shop263.com/i-45/100.htm
http://www.shop263.com/i-45/101.htm
http://www.shop263.com/i-45/102.htm
http://www.shop263.com/i-45/103.htm
http://www.shop263.com/i-45/104.htm
http://www.shop263.com/i-45/105.htm
http://www.shop263.com/i-45/106.htm
http://www.shop263.com/i-45/107.htm
http://www.shop263.com/i-45/108.htm
http://www.shop263.com/i-45/109.htm
http://www.shop263.com/i-45/110.htm
http://www.shop263.com/i-45/111.htm
http://www.shop263.com/i-45/112.htm
http://www.shop263.com/i-45/113.htm
http://www.shop263.com/i-45/114.htm
http://www.shop263.com/i-45/115.htm
http://www.shop263.com/i-45/116.htm
http://www.shop263.com/i-45/117.htm
http://www.shop263.com/i-45/118.htm
http://www.shop263.com/i-45/119.htm
http://www.shop263.com/i-45/120.htm
http://www.shop263.com/i-45/121.htm
http://www.shop263.com/i-45/122.htm
http://www.shop263.com/i-45/123.htm
http://www.shop263.com/i-45/124.htm
http://www.shop263.com/i-45/125.htm
http://www.shop263.com/i-45/126.htm
http://www.shop263.com/i-45/127.htm
http://www.shop263.com/i-45/128.htm
http://www.shop263.com/i-45/129.htm
http://www.shop263.com/i-45/130.htm
http://www.shop263.com/i-45/131.htm
http://www.shop263.com/i-45/132.htm
http://www.shop263.com/i-45/133.htm
http://www.shop263.com/i-45/134.htm
http://www.shop263.com/i-45/135.htm
http://www.shop263.com/i-45/136.htm
http://www.shop263.com/i-45/137.htm
http://www.shop263.com/i-45/138.htm
http://www.shop263.com/i-45/139.htm
http://www.shop263.com/i-45/140.htm
http://www.shop263.com/i-45/141.htm
http://www.shop263.com/i-45/142.htm
http://www.shop263.com/i-45/143.htm
http://www.shop263.com/i-45/144.htm
http://www.shop263.com/i-45/145.htm
http://www.shop263.com/i-45/146.htm
http://www.shop263.com/i-45/147.htm
http://www.shop263.com/i-45/148.htm
http://www.shop263.com/i-45/149.htm
http://www.shop263.com/i-45/150.htm
http://www.shop263.com/i-45/151.htm
http://www.shop263.com/i-45/152.htm
http://www.shop263.com/i-45/153.htm
http://www.shop263.com/i-45/154.htm
http://www.shop263.com/i-45/155.htm
http://www.shop263.com/i-45/156.htm
http://www.shop263.com/i-45/157.htm
http://www.shop263.com/i-45/158.htm
http://www.shop263.com/i-45/159.htm
http://www.shop263.com/i-45/160.htm
http://www.shop263.com/i-45/161.htm
http://www.shop263.com/i-45/162.htm
http://www.shop263.com/i-45/163.htm
http://www.shop263.com/i-45/164.htm
http://www.shop263.com/i-45/165.htm
http://www.shop263.com/i-45/166.htm
http://www.shop263.com/i-45/167.htm
http://www.shop263.com/i-45/168.htm
http://www.shop263.com/i-45/169.htm
http://www.shop263.com/i-45/170.htm
http://www.shop263.com/i-45/171.htm
http://www.shop263.com/i-45/172.htm
http://www.shop263.com/i-45/173.htm
http://www.shop263.com/i-45/174.htm
http://www.shop263.com/i-45/175.htm
http://www.shop263.com/i-45/176.htm
http://www.shop263.com/i-45/177.htm
http://www.shop263.com/i-45/178.htm
http://www.shop263.com/i-45/179.htm
http://www.shop263.com/i-45/180.htm
http://www.shop263.com/i-45/181.htm
http://www.shop263.com/i-45/182.htm
http://www.shop263.com/i-45/183.htm
http://www.shop263.com/i-45/184.htm
http://www.shop263.com/i-45/185.htm
http://www.shop263.com/i-45/186.htm
http://www.shop263.com/i-45/187.htm
http://www.shop263.com/i-45/188.htm
http://www.shop263.com/i-45/189.htm
http://www.shop263.com/i-45/190.htm
http://www.shop263.com/i-45/191.htm
http://www.shop263.com/i-45/192.htm
http://www.shop263.com/i-45/193.htm
http://www.shop263.com/i-45/194.htm
http://www.shop263.com/i-45/195.htm
http://www.shop263.com/i-45/196.htm
http://www.shop263.com/i-45/197.htm
http://www.shop263.com/i-45/198.htm
http://www.shop263.com/i-45/199.htm
http://www.shop263.com/i-45/200.htm
http://www.shop263.com/i-45/201.htm
http://www.shop263.com/i-45/202.htm
http://www.shop263.com/i-45/203.htm
http://www.shop263.com/i-45/204.htm
http://www.shop263.com/i-45/205.htm
http://www.shop263.com/i-45/206.htm
http://www.shop263.com/i-45/207.htm
http://www.shop263.com/i-45/208.htm
http://www.shop263.com/i-45/209.htm
http://www.shop263.com/i-45/210.htm
http://www.shop263.com/i-45/211.htm
http://www.shop263.com/i-45/212.htm
http://www.shop263.com/i-45/213.htm
http://www.shop263.com/i-45/214.htm
http://www.shop263.com/i-45/215.htm
http://www.shop263.com/i-45/216.htm
http://www.shop263.com/i-45/217.htm
http://www.shop263.com/i-45/218.htm
http://www.shop263.com/i-45/219.htm
http://www.shop263.com/i-45/220.htm
http://www.shop263.com/i-45/221.htm
http://www.shop263.com/i-45/222.htm
http://www.shop263.com/i-45/223.htm
http://www.shop263.com/i-45/224.htm
http://www.shop263.com/i-45/225.htm
http://www.shop263.com/i-45/226.htm
http://www.shop263.com/i-45/227.htm
http://www.shop263.com/i-45/228.htm
http://www.shop263.com/i-45/229.htm
http://www.shop263.com/i-45/230.htm
http://www.shop263.com/i-45/231.htm
http://www.shop263.com/i-45/232.htm
http://www.shop263.com/i-45/233.htm
http://www.shop263.com/i-45/234.htm
http://www.shop263.com/i-45/235.htm
http://www.shop263.com/i-45/236.htm
http://www.shop263.com/i-45/237.htm
http://www.shop263.com/i-45/238.htm
http://www.shop263.com/i-45/239.htm
http://www.shop263.com/i-45/240.htm
http://www.shop263.com/i-45/241.htm
http://www.shop263.com/i-45/242.htm
http://www.shop263.com/i-45/243.htm
http://www.shop263.com/i-45/244.htm
http://www.shop263.com/i-45/245.htm
http://www.shop263.com/i-45/246.htm
http://www.shop263.com/i-45/247.htm
http://www.shop263.com/i-45/248.htm
http://www.shop263.com/i-45/249.htm
http://www.shop263.com/i-45/250.htm
http://www.shop263.com/i-45/251.htm
http://www.shop263.com/i-45/252.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.