ID3是一种metadata容器,多应用于MP3格式的音频文件中。它可以将相关的曲名、演唱者、专辑、音轨数等信息存储在MP3文件中,又称作“ID3Tags”。
ID3也被苹果公司指定为HTTP Live Streaming中的时间后设资料,在主要的传输流或单独的音频传输流中作为PID乘载。
ID3一般位于一个mp3文件的开头或末尾的若干字节内,附加了关于该mp3的歌手,标题,专辑名称,年代,风格等信息,该信息就被称为ID3信息。ID3信息分为两个版本,v1和v2版。其中: v1版的ID3在mp3文件的末尾128字节,以TAG三个字符开头,后面跟上歌曲信息。v1.1版将“评论”字段缩短,增设“曲目”字段。v2版则和v1版截然不同,其通常将一系列可扩展的数据帧架(frames)存储在文件开头,而每一块数据帧架都有当作识别标签的、大小约3到4个字节的字符串,以及其所存储的资料。在最新的ID3v2.4版本中,总共宣告有83种数据帧架,而用户也可以自定义属于自己的数据帧架。目前总共有三种版本的ID3v2,其中每一版都有对数据帧架的定义进行扩展。
ID3是mp3文件后设资料自然而然发展出来的事实标准;其成品并没有包含任何的实质规范,也没有任何组织给予其正式的批准或认证。其与APE tag在音乐文件的后设资料标签领域互相角逐。
MP3并未默认存储文件后设资料的方式。在1996年,埃里克·肯普(Eric Kemp)想要在音频档案后方加入一小串资料,也因此解决了这个问题。这个方法就是现在的ID3v1,很快就变成了MP3文件存储后设资料的事实标准。一个开发控制台游戏系统的地下组织“伤害控制论”(Damaged Cybernetics)宣布了格式。因为所有已开发的控制台ROM都没有任何的识别信息,所以他们创造了一个标签系统来让其更容易查找。埃里克和合作伙伴们将其带进MP3文件中。这种格式被应用在许多当时格式不明的文件当中。
ID3v1标签总共占据128个字节,接在文件的末尾以维持文件在旧版的媒体播放器中的兼容性。有些播放器会在读取到这些标签时误认为音频档而产生一些杂音,不过大部分的播放器和几乎全部的现代播放器都会正确地跳过标签。标签有30字节用来存储标题、演唱者、专辑以及“评论”,4个字节存储年分,以及一个字节存储歌曲的艺术类型。默认有80种艺术类型,Winamp后来将其扩展到总共148种。
在1997年,迈克尔·迈克塞勒对ID3v1做了一些改进。因为评论字段实在是小到不可能写出一些有用的东西,所以他干脆拿掉两个字节来存储“曲目”。这种标签被称作ID3v1.1。
字符串由空格或零填充。未设置的选项会填入空串。ID3v1总长为128个字节。
ID3v1默认了一系列的艺术类型,以数字作为索引。Winamp在自家的音乐播放器加入更多选项到该清单中,后来其他播放器也随之跟进;有一部分的值没有标准规范。不过,并非全世界都支持Winamp的扩展清单。有时候,有些播放器只支持到125种艺术类型。
扩展标签(extended tag)是位于ID3v1标签前的额外资料区块,其将标题、艺术家与专辑字段各自扩展到60个字节长度,提供可自由输入文字的艺术类型字段、一字节大小的曲速(值为0到5)以及MP3文件的起始与结束时间。如果以上的区域都没有被使用,那么这个资料区块就会自动被省略。
有些支持ID3v1的程序也可以读到扩展标签,不过写入时可能会在扩展区块中留下过旧的值。扩展区块并非官方标准,而且只有少数程序支持,不包含XMMS或Winamp。扩展标签有时也被称作“补强标签”(enhanced tag)。
扩展标签总长227个字节,并且位于ID3v1标签之前。
1998年,一个由许多贡献者创造、被称作ID3v2的新规范问世。虽然继承了ID3的名字,但其结构与ID3v1大相径庭。
ID3v2标签有各种不同的大小,而且经常位于文件开头,以运用于流媒体中。举例来说,数据帧架包含标题,而数据帧架则包含该艺术家的网站URL链接。数据帧架最大可达16MB,不过标签总大小上限为256MB。标签也不再局限于西欧编码,而支持Unicode,解决了国际化的问题。
文字框架会由一个编码字节标记,以得知其是由哪种编码存入的。
$00 – ISO-8859-1 (LATIN-1, Identical to ASCII for values smaller than 0x80).$01 – UCS-2 (UTF-16 encoded Unicode with BOM), in ID3v2.2 and ID3v2.3.$02 – UTF-16BE encoded Unicode without BOM, in ID3v2.4.$03 – UTF-8 encoded Unicode, in ID3v2.4.
不过,在使用地区编码而非万国码的时候,还是很容易出现乱码。特别是有些使用Shift JIS编码的日文编辑者经常造成一些灾难性的后果:因为并非标准支持,所以不管地区设置为何,都无法运用于任何符合标准的软件;因为日本以外的地区几乎不支持Shift JIS,所以也无法在日本以外的地区使用;甚至连日本境内也并非通用,因为其取决于软件与设置。
在最新版ID3v2.4,总共宣告了83种数据帧架,而用户也可以自定义属于自己的数据帧架。标准的数据帧架有量测音乐速度、著作权、歌词、任意文字和URL数据等等。ID3v2总共有三种版本:
对于歌曲的评分,有一个宽松的事实标准。大多数应用程序会替所有歌曲展示0到5颗星的评分,而星数会以何种形式展示则各有不同。举例来说,当你在iTunes替歌曲评分的时候,评分并不会嵌入那个音乐文件的标签里,而是会存储在iTunes自己的后设资料数据库中。其他的媒体播放器可以嵌入标签,但方法不一定相同,所以在一个媒体播放器评分的音乐不一定会在其他的播放器以相同的形式展示。
不过,在新版的ID3v2中有一个“Popularimeter”数据帧架用来解决这个问题。这个数据帧架的标识符是POPM,而Windows资源管理器、WMP、Winamp、foobar2000、MediaMonkey以及其他软件都将0-255这范围内的值大致相同地分为0-5星展示。
以Windows资源管理器读写POPM数据帧架的标准为例:
语法则为:
Windows Media Player 9 Series | 255 | 0
其中0是POPM的计数器部分,不要与PCNT数据帧架的播放次数混淆。不过如果有应用程序支持粒度,一颗星的话会写入1,而2到31则会是一颗星之下的粒度点。值得一提的是,Windows所使用的ID字符串并非规范所要求的电子邮件地址。而且,直到Windows 7和WMP 12的Windows资源管理器和WMP都有一个漏洞是:如果你使用以上软件替音乐评分的话,任何有关回放增益的标签都会损坏。WMP也以上述方式读写相同的值,除了4到5星之间有着些微莫名的不同。WMP使用221和222来区隔4、5星,理由不明(页面存档备份,存于互联网档案馆)。
ID3v2章节补遗(ID3v2 Chapter Addendum)出版于2005年12月,不过至今尚未被广泛支持。它让用户们可以简单地跳到音频档案中特定的地点或乐章,并且可以在播放期间提供同步的图片与文字的幻灯片。典型的应用程序包括补强播客,而且其可用于v2.3或v2.4标签中。
后设资料可以包含以下类型的图片:
$00 其他$01 32x32 pixels 'file icon' (PNG only)$02 Other file icon$03 Cover (front)$04 Cover (back)$05 Leaflet page$06 Media (e.g. label side of CD)$07 Lead artist/lead performer/soloist$08 Artist/performer$09 Conductor$0A Band/Orchestra$0B Composer$0C Lyricist/text writer$0D Recording Location$0E During recording$0F During performance$10 Movie/video screen capture$11 A bright coloured fish$12 Illustration$13 Band/artist logotype$14 Publisher/Studio logotype
ID3v2数据帧架规范
英文描述 | 中文描述 | 数据帧架 | |
---|---|---|---|
v2.3 | v2.4 | ||
Audio encryption | 音频加密 | AENC | |
Audio seek point index | 音频搜索点索引 | 不适用 | ASPI |
Attached picture | 附图 | APIC | |
Comments | 评论 | COMM | |
Commercial frame | 商业用数据帧架 | COMR | |
Encryption method registration | 加密方式注册 | ENCR | |
Equalization | 等化 | EQUA | EQU2 |
Event timing codes | 事件时间代码 | ETCO | |
General encapsulated object | 一般封装对象 | GEOB | |
Group identification registration | 组织识别注册 | GRID | |
Involved people list | 相关人员列表 | IPLS | TIPLa |
Linked information | 链接信息 | LINK | |
Music CD identifier | 音乐光盘标识符 | MCDI | |
MPEG location lookup table | MPEG位置查询表 | MLLT | |
Ownership frame | 所有权 | OWNE | |
Private frame | 隐私权 | PRIV | |
Play counter | 播放次数 | PCNT | |
Popularimeter | 评等 | POPM | |
Position synchronisation frame | 位置同步 | POSS | |
Recommended buffer size | 推荐缓冲器大小 | RBUF | |
Relative volume adjustment | 相对音量调整 | RVAD | RVA2 |
Reverb | 混响 | RVRB | |
Seek frame | 搜索用 | 不适用 | SEEK |
Signature frame | 签名用 | 不适用 | SIGN |
Synchronized lyric/text | 同步歌词、文字 | SYLT | |
Synchronized tempo codes | 同步节拍代码 | SYTC | |
Album/Movie/Show title | 专辑/电影/节目标题 | TALB | |
Beats per minute (BPM) | 量度音乐速度 | TBPM | |
Composer | 作曲者 | TCOMc | |
Content type | 内容类型 | TCON | |
Copyright message | 著作权信息 | TCOP | |
Date | 日期 | TDAT | TDRCb |
Encoding time | 编码时间 | 不适用 | TDEN |
Playlist delay | 播放清单中的间隔时间 | TDLY | |
Recording time | 音频纪录时间 | 不适用 | TDRCb |
Release time | 音频发行时间 | 不适用 | TDRL |
Tagging time | 音频被标记时间 | 不适用 | TDTG |
Encoded by | 编码者 | TENC | |
Lyricist/Text writer | 作词者 | TEXTc | |
File type | 文件类型 | TFLT | |
Time | 包含记录用的时间 | TIME | TDRCb |
Content group description | 组群描述 | TIT1 | |
Title/songname/content description | 标题 | TIT2 | |
Subtitle/Description refinement | 字幕 | TIT3 | |
Initial key | 初始调 | TKEY | |
Language(s) | 语言 | TLAN | |
Length | 长度 | TLEN | |
Musician credits list | 音乐家与乐器对照 | 不适用 | TMCLa |
Media type | 属性 | TMED | |
Mood | 情境 | 不适用 | TMOO |
Original album/movie/show title | 原始标题 | TOAL | |
Original filename | 源文件案名称 | TOFN | |
Original lyricist(s)/text writer(s) | 原始作词者 | TOLYc | |
Original artist(s)/performer(s) | 原始演唱者 | TOPEc | |
Original release year | 年分 | TORY | TDOR |
File owner/licensee | 著作权 | TOWN | |
Lead performer(s)/Soloist(s) | 指挥 | TPE1c | |
Band/orchestra/accompaniment | 乐团/乐队/伴奏 | TPE2 | |
Conductor/performer refinement | 详细参与演出者 | TPE3 | |
Interpreted, remixed, or otherwise modified by | 后制 | TPE4 | |
Part of a set | Part of a set | TPOS | |
Produced notice | Produced notice | 不适用 | TPRO |
Publisher | 发行者 | TPUB | |
Track number/Position in set | 曲目 | TRCK | |
Recording dates | 创建日期 | TRDA | TDRCb |
Internet radio station name | Internet radio station name | TRSN | |
Internet radio station owner | Internet radio station owner | TRSO | |
Size | 大小 | TSIZ | 抛弃 |
Album sort order | 依专辑排序 | 不适用 | TSOA |
Performer sort order | 依演出者排序 | 不适用 | TSOP |
Title sort order | 依标题排序 | 不适用 | TSOT |
International Standard Recording Code (ISRC) | 国际标准音像制品编码 | TSRC | |
Software/Hardware and settings used for encoding | 编码环境设置 | TSSE | |
Set subtitle | 设置字幕 | 不适用 | TSST |
Year | 年分 | TYER | TDRCb |
User defined text information frame | 自定义文字 | TXXX | |
Unique file identifier | 文件标识符 | UFID | |
Terms of use | 使用条款 | USER | |
Unsynchronized lyric/text transcription | 异步歌词转录 | USLT | |
Commercial information | 商业信息 | WCOM | |
Copyright/Legal information | 著作权信息 | WCOP | |
Official audio file webpage | 官方音频档案网站 | WOAF | |
Official artist/performer webpage | 作者URL | WOAR | |
Official audio source webpage | 官方音源URL | WOAS | |
Official internet radio station homepage | Official internet radio station homepage | WORS | |
Payment | 付费URL | WPAY | |
Publishers official webpage | 发行者官网 | WPUB | |
User defined URL link frame | 自定义URL | WXXX |
注意:
Version 2.4 of the specification prescribes that all text fields (the fields that start with a , except for TXXX) can contain multiple values separated by a null character. The null character varies by character encoding.