Metadata: Difference between revisions

From XiphWiki
Jump to navigation Jump to search
No edit summary
(Changed tense of M3F + tidy)
 
(91 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/601.htm 脱硫剂]
[http://www.shop263.com/i-1/602.htm 脱氢硫]
[http://www.shop263.com/i-1/603.htm 脱脂清洗剂]
[http://www.shop263.com/i-1/604.htm 脱脂脱胶骨粉]
[http://www.shop263.com/i-1/605.htm 万霉灵]
[http://www.shop263.com/i-1/605.htm 万能胶]
[http://www.shop263.com/i-1/607.htm 微电脑防盗报警器]
[http://www.shop263.com/i-1/608.htm 微结晶石蜡]
[http://www.shop263.com/i-1/609.htm 微晶蜡]
[http://www.shop263.com/i-1/610.htm 微晶纤维素]
[http://www.shop263.com/i-1/611.htm 微乳剂]
[http://www.shop263.com/i-1/612.htm 维生素]
[http://www.shop263.com/i-1/613.htm 维生素C磷酸酯]
[http://www.shop263.com/i-1/614.htm 维生素烟酰胺]
[http://www.shop263.com/i-1/615.htm 维酮]
[http://www.shop263.com/i-1/616.htm 卫生消毒液]
[http://www.shop263.com/i-1/617.htm 无毒稳定剂]
[http://www.shop263.com/i-1/618.htm 无缝无焊储罐]
[http://www.shop263.com/i-1/619.htm 无机氟化盐]
[http://www.shop263.com/i-1/620.htm 无机磷酸盐]
[http://www.shop263.com/i-1/621.htm 无机凝胶]
[http://www.shop263.com/i-1/622.htm 无机溶剂]
[http://www.shop263.com/i-1/623.htm 无卤阻燃剂]
[http://www.shop263.com/i-1/624.htm 无水醋酸钠]
[http://www.shop263.com/i-1/625.htm 无水氟化钾]
[http://www.shop263.com/i-1/626.htm 无水氟化氢]
[http://www.shop263.com/i-1/627.htm 无水磷酸二氢钠]
[http://www.shop263.com/i-1/628.htm 无水磷酸氢二钠]
[http://www.shop263.com/i-1/629.htm 无水六氟磷酸锂]
[http://www.shop263.com/i-1/630.htm 无水氯化钙]
[http://www.shop263.com/i-1/631.htm 无水柠檬酸钠]
[http://www.shop263.com/i-1/632.htm 无水三氯化铝]
[http://www.shop263.com/i-1/633.htm 无水液氨]
[http://www.shop263.com/i-1/634.htm 无水乙醇]
[http://www.shop263.com/i-1/635.htm 无水异丙醇]
[http://www.shop263.com/i-1/636.htm 无味煤油]
[http://www.shop263.com/i-1/637.htm 五氟一氯乙烷]
[http://www.shop263.com/i-1/638.htm 五甲基二乙烯三胺]
[http://www.shop263.com/i-1/639.htm 五甲基哌啶醇]
[http://www.shop263.com/i-1/640.htm 五硫化二磷]
[http://www.shop263.com/i-1/641.htm 戊二腈]
[http://www.shop263.com/i-1/642.htm 戊二醛]
[http://www.shop263.com/i-1/643.htm 戊腈]
[http://www.shop263.com/i-1/644.htm 戊唑醇]
[http://www.shop263.com/i-1/645.htm 烯丙基缩水甘油醚]
[http://www.shop263.com/i-1/646.htm 烯烃类磺酸盐]
[http://www.shop263.com/i-1/647.htm 稀释剂]
[http://www.shop263.com/i-1/648.htm 稀土萃取剂]
[http://www.shop263.com/i-1/649.htm 稀土顺丁橡胶]
[http://www.shop263.com/i-1/650.htm 稀土稳定剂]
[http://www.shop263.com/i-1/651.htm 稀硝酸]
[http://www.shop263.com/i-1/652.htm 锡酸钠]
[http://www.shop263.com/i-1/653.htm 洗板水]
[http://www.shop263.com/i-1/654.htm 洗模水]
[http://www.shop263.com/i-1/655.htm 洗油]
[http://www.shop263.com/i-1/656.htm 系列聚酰胺树脂]
[http://www.shop263.com/i-1/657.htm 酰氯]
[http://www.shop263.com/i-1/658.htm 显色蓝色盐]
[http://www.shop263.com/i-1/659.htm 香叶基丙酮]
[http://www.shop263.com/i-1/660.htm 橡胶防老剂]
[http://www.shop263.com/i-1/661.htm 橡胶类涂料]
[http://www.shop263.com/i-1/662.htm 橡胶硫化促进剂]
[http://www.shop263.com/i-1/663.htm 橡胶助剂]
[http://www.shop263.com/i-1/664.htm 橡胶专用脂肪酸]
[http://www.shop263.com/i-1/665.htm 消泡剂]
[http://www.shop263.com/i-1/666.htm 消烟阻燃剂]
[http://www.shop263.com/i-1/667.htm 硝苯地平]
[http://www.shop263.com/i-1/668.htm 硝化]
[http://www.shop263.com/i-1/669.htm 硝化棉]
[http://www.shop263.com/i-1/670.htm 硝基]
[http://www.shop263.com/i-1/671.htm 硝基苯]
[http://www.shop263.com/i-1/672.htm 硝基苯胺]
[http://www.shop263.com/i-1/673.htm 硝基苯酚]
[http://www.shop263.com/i-1/674.htm 硝基苯甲酸]
[http://www.shop263.com/i-1/675.htm 硝基苯胂酸]
[http://www.shop263.com/i-1/676.htm 硝基胍]
[http://www.shop263.com/i-1/677.htm 硝基甲苯邻磺酸]
[http://www.shop263.com/i-1/678.htm 硝基甲烷]
[http://www.shop263.com/i-1/679.htm 硝基氯苯]
[http://www.shop263.com/i-1/680.htm 硝基氯化苯]
[http://www.shop263.com/i-1/681.htm 硝基咪唑]
[http://www.shop263.com/i-1/682.htm 硝基漆]
[http://www.shop263.com/i-1/683.htm 硝酸]
[http://www.shop263.com/i-1/684.htm 硝酸銨]
[http://www.shop263.com/i-1/685.htm 硝酸钡]
[http://www.shop263.com/i-1/686.htm 硝酸钙]
[http://www.shop263.com/i-1/687.htm 硝酸胍]
[http://www.shop263.com/i-1/688.htm 硝酸钾]
[http://www.shop263.com/i-1/689.htm 硝酸铝]
[http://www.shop263.com/i-1/690.htm 硝酸镁]
[http://www.shop263.com/i-1/691.htm 硝酸咪康唑]
[http://www.shop263.com/i-1/692.htm 硝酸钠]
[http://www.shop263.com/i-1/693.htm 硝酸稀土]
[http://www.shop263.com/i-1/694.htm 硝酸异丙酯]
[http://www.shop263.com/i-1/695.htm 硝酸益康唑]
[http://www.shop263.com/i-1/696.htm 小球硅胶]
[http://www.shop263.com/i-1/697.htm 鞋模胶]
[http://www.shop263.com/i-1/698.htm 心安得]
[http://www.shop263.com/i-1/699.htm 辛二胺]
[http://www.shop263.com/i-1/700.htm 辛酸亚锡]
[http://www.shop263.com/i-1/701.htm 辛酰氯]
[http://www.shop263.com/i-1/702.htm 锌粒]
[http://www.shop263.com/i-1/703.htm 锌渣锌灰]
[http://www.shop263.com/i-1/704.htm 新戊二醇]
[http://www.shop263.com/i-1/705.htm 新型活性剂驱油剂]
[http://www.shop263.com/i-1/706.htm 猩红酸]
[http://www.shop263.com/i-1/707.htm 熊果苷]
[http://www.shop263.com/i-1/708.htm 熊果苷单酯]
[http://www.shop263.com/i-1/709.htm 溴苯]
[http://www.shop263.com/i-1/710.htm 溴丙烷]
[http://www.shop263.com/i-1/711.htm 溴代环戊烷]
[http://www.shop263.com/i-1/712.htm 溴代金刚烷]
[http://www.shop263.com/i-1/713.htm 溴代叔丁烷]
[http://www.shop263.com/i-1/714.htm 溴代羧酸酯]
[http://www.shop263.com/i-1/715.htm 溴代烃]
[http://www.shop263.com/i-1/716.htm 溴代烷烃]
[http://www.shop263.com/i-1/717.htm 溴代异丙烷]
[http://www.shop263.com/i-1/718.htm 溴代异丁烷]
[http://www.shop263.com/i-1/719.htm 溴代毓]
[http://www.shop263.com/i-1/720.htm 溴代正丙烷]
[http://www.shop263.com/i-1/721.htm 溴丁烷]
[http://www.shop263.com/i-1/722.htm 溴化氨]
[http://www.shop263.com/i-1/723.htm 溴化铵]
[http://www.shop263.com/i-1/724.htm 溴化丁基胶]
[http://www.shop263.com/i-1/725.htm 溴化钙]
[http://www.shop263.com/i-1/726.htm 溴化钾]
[http://www.shop263.com/i-1/727.htm 溴化锂]
[http://www.shop263.com/i-1/728.htm 溴化镁]
[http://www.shop263.com/i-1/729.htm 溴化锰]
[http://www.shop263.com/i-1/730.htm 溴化钠]
[http://www.shop263.com/i-1/731.htm 溴化锌]
[http://www.shop263.com/i-1/732.htm 溴甲基萘]
[http://www.shop263.com/i-1/733.htm 溴类阻燃剂]
[http://www.shop263.com/i-1/734.htm 溴素]
[http://www.shop263.com/i-1/735.htm 溴酸钠]
[http://www.shop263.com/i-1/736.htm 溴西烷]
[http://www.shop263.com/i-1/737.htm 溴硝醇]
[http://www.shop263.com/i-1/738.htm 溴盐及溴酸盐]
[http://www.shop263.com/i-1/739.htm 溴乙烷]
[http://www.shop263.com/i-1/740.htm 溴乙酰溴]
[http://www.shop263.com/i-1/741.htm 絮凝剂]
[http://www.shop263.com/i-1/742.htm 蓄电池酸]
[http://www.shop263.com/i-1/743.htm 悬浮剂]
[http://www.shop263.com/i-1/744.htm 循环系统油]
[http://www.shop263.com/i-1/745.htm 压敏胶]
[http://www.shop263.com/i-1/746.htm 亚氨基二苄]
[http://www.shop263.com/i-1/747.htm 亚氨基二乙酸]
[http://www.shop263.com/i-1/748.htm 亚氨基二乙酸二钠盐]
[http://www.shop263.com/i-1/749.htm 亚氨基二乙酸二乙酯]
[http://www.shop263.com/i-1/750.htm 亚氨基芪甲酰]
[http://www.shop263.com/i-1/751.htm 亚白刚玉]
[http://www.shop263.com/i-1/752.htm 亚甲基双丙烯酰胺]
[http://www.shop263.com/i-1/753.htm 亚磷酸]
[http://www.shop263.com/i-1/754.htm 亚磷酸二甲酯]
[http://www.shop263.com/i-1/755.htm 亚磷酸二乙酯]
[http://www.shop263.com/i-1/756.htm 亚磷酸二正丁酯]
[http://www.shop263.com/i-1/757.htm 亚磷酸三苯酯]
[http://www.shop263.com/i-1/758.htm 亚磷酸一苯二异辛酯]
[http://www.shop263.com/i-1/759.htm 亚磷酸酯]
[http://www.shop263.com/i-1/760.htm 亚硫酸钠]
[http://www.shop263.com/i-1/761.htm 亚硫酸氢铵]
[http://www.shop263.com/i-1/762.htm 亚硫酸氢钠]
[http://www.shop263.com/i-1/763.htm 亚氯酸钠]
[http://www.shop263.com/i-1/764.htm 亚麻酸]
[http://www.shop263.com/i-1/765.htm 亚么尼亚胶浆]
[http://www.shop263.com/i-1/766.htm 亚铁氰化钾]
[http://www.shop263.com/i-1/767.htm 亚硝基铁氢化钾]
[http://www.shop263.com/i-1/768.htm 亚硝基铁氢化钠]
[http://www.shop263.com/i-1/769.htm 亚硝基愈创木酚]
[http://www.shop263.com/i-1/770.htm 亚硝酸钙]
[http://www.shop263.com/i-1/771.htm 亚硝酸钠]
[http://www.shop263.com/i-1/772.htm 烟酰胺]
[http://www.shop263.com/i-1/773.htm 岩石水胶炸药]
[http://www.shop263.com/i-1/774.htm 岩藻聚糖硫酸脂]
[http://www.shop263.com/i-1/775.htm 盐酸]
[http://www.shop263.com/i-1/776.htm 盐酸安非他酮]
[http://www.shop263.com/i-1/777.htm 盐酸苄丝肼]
[http://www.shop263.com/i-1/778.htm 盐酸胍]
[http://www.shop263.com/i-1/779.htm 盐酸环胞苷]
[http://www.shop263.com/i-1/780.htm 盐酸洛美沙星]
[http://www.shop263.com/i-1/781.htm 盐酸羟胺]
[http://www.shop263.com/i-1/782.htm 盐酸羟亚胺]
[http://www.shop263.com/i-1/783.htm 盐酸舍曲林]
[http://www.shop263.com/i-1/784.htm 盐酸万拉法新]
[http://www.shop263.com/i-1/785.htm 盐酸西替利嗪]
[http://www.shop263.com/i-1/786.htm 颜料]
[http://www.shop263.com/i-1/787.htm 颜料糊]
[http://www.shop263.com/i-1/788.htm 颜料中间体]
[http://www.shop263.com/i-1/789.htm 阳离子染料]
[http://www.shop263.com/i-1/790.htm 杨酸钠]
[http://www.shop263.com/i-1/791.htm 氧化淀粉]
[http://www.shop263.com/i-1/792.htm 氧化锆]
[http://www.shop263.com/i-1/793.htm 氧化铬绿]
[http://www.shop263.com/i-1/794.htm 氧化合成氢氰酸]
[http://www.shop263.com/i-1/795.htm 氧化镧]
[http://www.shop263.com/i-1/796.htm 氧化铝粉]
[http://www.shop263.com/i-1/797.htm 氧化镁]
[http://www.shop263.com/i-1/798.htm 氧化镍]
[http://www.shop263.com/i-1/799.htm 氧化铁]
[http://www.shop263.com/i-1/800.htm 氧化銅]
[http://www.shop263.com/i-1/801.htm 氧化鋅]
[http://www.shop263.com/i-1/802.htm 氧氯化锆]
[http://www.shop263.com/i-1/803.htm 氧杂环戊烷]
[http://www.shop263.com/i-1/804.htm 药用级醋酸钠]
[http://www.shop263.com/i-1/805.htm 药用水杨酸]
[http://www.shop263.com/i-1/806.htm 椰油脂肪酸]
[http://www.shop263.com/i-1/807.htm 椰子油基酰]
[http://www.shop263.com/i-1/808.htm 椰子油甲酯]
[http://www.shop263.com/i-1/809.htm 冶金焦]
[http://www.shop263.com/i-1/800.htm 冶金铸焦]
[http://www.shop263.com/i-1/811.htm 冶炼氧化锌]
[http://www.shop263.com/i-1/812.htm 叶酸]
[http://www.shop263.com/i-1/813.htm 液氨]
[http://www.shop263.com/i-1/814.htm 液晶化学品]
[http://www.shop263.com/i-1/815.htm 液氯]
[http://www.shop263.com/i-1/816.htm 液萘]
[http://www.shop263.com/i-1/817.htm 液体丙烯酰胺]
[http://www.shop263.com/i-1/818.htm 液体二氧化硫]
[http://www.shop263.com/i-1/819.htm 液体氦]
[http://www.shop263.com/i-1/820.htm 液体混合氯化稀土]
[http://www.shop263.com/i-1/821.htm 液体硫酸羟胺]
[http://www.shop263.com/i-1/822.htm 液体氰化钠]
[http://www.shop263.com/i-1/823.htm 液体三氧化硫]
[http://www.shop263.com/i-1/824.htm 液体无水氨]
[http://www.shop263.com/i-1/825.htm 液体盐酸胍]
[http://www.shop263.com/i-1/826.htm 液体油墨凝胶剂]
[http://www.shop263.com/i-1/827.htm 液状石蜡]
[http://www.shop263.com/i-1/828.htm 一氟三氯甲烷]
[http://www.shop263.com/i-1/829.htm 一甲基肼]
[http://www.shop263.com/i-1/830.htm 一氯化硫]
[http://www.shop263.com/i-1/831.htm 一氯频呐酮]
[http://www.shop263.com/i-1/832.htm 一氯乙酸]
[http://www.shop263.com/i-1/833.htm 一氧化碳]
[http://www.shop263.com/i-1/834.htm 一正丙胺]
[http://www.shop263.com/i-1/835.htm 衣车润滑油]
[http://www.shop263.com/i-1/836.htm 衣康酸]
[http://www.shop263.com/i-1/837.htm 医药原料]
[http://www.shop263.com/i-1/838.htm 医药原料药]
[http://www.shop263.com/i-1/839.htm 医药中间体]
[http://www.shop263.com/i-1/840.htm 医用胶囊]
[http://www.shop263.com/i-1/841.htm 移印矽胶]
[http://www.shop263.com/i-1/842.htm 乙胺]
[http://www.shop263.com/i-1/843.htm 乙醇钠乙醇溶液]
[http://www.shop263.com/i-1/844.htm 乙二氨四醋酸]
[http://www.shop263.com/i-1/845.htm 乙二胺]
[http://www.shop263.com/i-1/846.htm 乙二胺四乙酸]
[http://www.shop263.com/i-1/847.htm 乙二胺四乙酸二钠]
[http://www.shop263.com/i-1/848.htm 乙二醇]
[http://www.shop263.com/i-1/849.htm 乙二醇醋酸酯]
[http://www.shop263.com/i-1/850.htm 乙二醇单正丙醚]
[http://www.shop263.com/i-1/851.htm 乙二醇丁醚]
[http://www.shop263.com/i-1/852.htm 乙二醇二甲醚]
[http://www.shop263.com/i-1/853.htm 乙二醇二甲酸酯]
[http://www.shop263.com/i-1/854.htm 乙二醛]
[http://www.shop263.com/i-1/855.htm 乙二酸锶]
[http://www.shop263.com/i-1/856.htm 乙基]
[http://www.shop263.com/i-1/857.htm 乙基胺]
[http://www.shop263.com/i-1/858.htm 乙基苯]
[http://www.shop263.com/i-1/859.htm 乙基苯胺]
[http://www.shop263.com/i-1/860.htm 乙基丁基甲酮]
[http://www.shop263.com/i-1/861.htm 乙基防染盐]
[http://www.shop263.com/i-1/862.htm 乙基黄药]
[http://www.shop263.com/i-1/863.htm 乙基黄原酸钾]
[http://www.shop263.com/i-1/864.htm 乙基磺酰氯]
[http://www.shop263.com/i-1/865.htm 乙基已基磷酸]
[http://www.shop263.com/i-1/866.htm 乙基已基酯]
[http://www.shop263.com/i-1/867.htm 乙基已酸铝]
[http://www.shop263.com/i-1/868.htm 乙腈]
[http://www.shop263.com/i-1/869.htm 乙硫氮]
[http://www.shop263.com/i-1/870.htm 乙醛酸]
[http://www.shop263.com/i-1/871.htm 乙醛酸产]
[http://www.shop263.com/i-1/872.htm 乙酸柏木酯]
[http://www.shop263.com/i-1/873.htm 乙酸芳樟酯]
[http://www.shop263.com/i-1/874.htm 乙烷磺酸]
[http://www.shop263.com/i-1/875.htm 乙烯基吡咯烷酮]
[http://www.shop263.com/i-1/876.htm 乙烯基官能团硅烷]
[http://www.shop263.com/i-1/877.htm 乙烯基甲醚]
[http://www.shop263.com/i-1/878.htm 乙烯基三甲氧基硅烷]
[http://www.shop263.com/i-1/879.htm 乙烯基三乙氧基硅烷]
[http://www.shop263.com/i-1/880.htm 乙烯基乙醚]
[http://www.shop263.com/i-1/881.htm 乙烯基异丁醚]
[http://www.shop263.com/i-1/882.htm 乙烯基正丁醚]
[http://www.shop263.com/i-1/883.htm 乙烯基酯树脂]
[http://www.shop263.com/i-1/884.htm 乙烯利]
[http://www.shop263.com/i-1/885.htm 乙酰丙酸]
[http://www.shop263.com/i-1/886.htm 乙酰丙酮]
[http://www.shop263.com/i-1/887.htm 乙酰基呋喃]
[http://www.shop263.com/i-1/888.htm 乙酰介酸]
[http://www.shop263.com/i-1/889.htm 乙酰氯]
[http://www.shop263.com/i-1/890.htm 乙酰水杨酸钙]
[http://www.shop263.com/i-1/891.htm 乙酰溴]
[http://www.shop263.com/i-1/892.htm 乙酰乙酸甲脂]
[http://www.shop263.com/i-1/893.htm 乙氧基丙烯]
[http://www.shop263.com/i-1/894.htm 乙氧基喹啉]
[http://www.shop263.com/i-1/895.htm 乙氧基喹啉粉剂]
[http://www.shop263.com/i-1/896.htm 乙氧基喹啉原油]
[http://www.shop263.com/i-1/897.htm 乙氧甲叉]
[http://www.shop263.com/i-1/898.htm 已二胺]
[http://www.shop263.com/i-1/899.htm 已二酸]
[http://www.shop263.com/i-1/900.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 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.