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在音乐文件的后设资料标签领域互相角逐。


ID3v1 编辑

MP3并未默认存储文件后设资料的方式。在1996年,埃里克·肯普(Eric Kemp)想要在音频档案后方加入一小串资料,也因此解决了这个问题。这个方法就是现在的ID3v1,很快就变成了MP3文件存储后设资料的事实标准[1]。一个开发控制台游戏系统的地下组织“伤害控制论”(Damaged Cybernetics)宣布了格式。因为所有已开发的控制台ROM都没有任何的识别信息,所以他们创造了一个标签系统来让其更容易查找。埃里克和合作伙伴们将其带进MP3文件中。这种格式被应用在许多当时格式不明的文件当中。

ID3v1标签总共占据128个字节,接在文件的末尾以维持文件在旧版的媒体播放器中的兼容性。有些播放器会在读取到这些标签时误认为音频档而产生一些杂音,不过大部分的播放器和几乎全部的现代播放器都会正确地跳过标签。标签有30字节用来存储标题、演唱者、专辑以及“评论”,4个字节存储年分,以及一个字节存储歌曲的艺术类型。默认有80种艺术类型,Winamp后来将其扩展到总共148种。

在1997年,迈克尔·迈克塞勒对ID3v1做了一些改进。因为评论字段实在是小到不可能写出一些有用的东西,所以他干脆拿掉两个字节来存储“曲目”。这种标签被称作ID3v1.1[1]

格式 编辑

字符串由空格或零填充。未设置的选项会填入空串。ID3v1总长为128个字节[2]

区域 长度 描述
开头 3 TAG”,标签。
标题 30 歌曲标题,最多30个英文字符。
艺术家 30 作曲或演唱者的名字,最多30个英文字符。
专辑 30 专辑名称,最多30个英文字符。
年分 4 西元年分,四个数字。
评论 28[3]或30 就是评论。
零字节[3] 1 如果有存储曲目,那么这个字节会存储一个二进制的0。
曲目[3] 1 这首歌在该专辑中的曲目,或者为0。若前一个字节非零,则此栏内容无效。
艺术类型 1 一系列艺术类型清单中的编号数,默认为255。

ID3v1默认了一系列的艺术类型,以数字作为索引。Winamp在自家的音乐播放器加入更多选项到该清单中,后来其他播放器也随之跟进;有一部分的值没有标准规范[4]。不过,并非全世界都支持Winamp的扩展清单。有时候,有些播放器只支持到125种艺术类型[5]

扩展标签 编辑

扩展标签(extended tag)是位于ID3v1标签前的额外资料区块,其将标题、艺术家与专辑字段各自扩展到60个字节长度,提供可自由输入文字的艺术类型字段、一字节大小的曲速(值为0到5)以及MP3文件的起始与结束时间。如果以上的区域都没有被使用,那么这个资料区块就会自动被省略。

有些支持ID3v1的程序也可以读到扩展标签,不过写入时可能会在扩展区块中留下过旧的值。扩展区块并非官方标准,而且只有少数程序支持,不包含XMMSWinamp。扩展标签有时也被称作“补强标签”(enhanced tag)。

扩展标签总长227个字节,并且位于ID3v1标签之前。

区域 长度 描述
开头 4 TAG+”,代表其为扩展标签。
标题 60 歌曲标题,最多60个英文字符。
艺术家 60 作曲或演唱者的名字,最多60个英文字符。
专辑 60 专辑名称,最多60个英文字符。
曲速 1 0:未设置,1:慢板,2:中板,3:快板,4:极快
艺术类型 30 可自由输入文字的艺术类型区块。
开始时间 6 音乐开始的时间:mmm:ss
结束时间 6 音乐结束的时间:mmm:ss

艺术类型列表 编辑

编号 英文代码 中文维基百科 Winamp扩展
0 Blues 蓝调
1 Classic Rock 古典摇滚乐
2 Country 乡村音乐
3 Dance 舞曲
4 Disco 迪斯科
5 Funk 放克
6 Grunge 油渍摇滚
7 Hip-Hop 嘻哈
8 Jazz 爵士乐
9 Metal 重金属音乐
10 New Age 新世纪音乐
11 Oldies Oldies
12 Other
13 Pop 流行 (音乐类型)
14 R&B 节奏布鲁斯
15 Rap 饶舌
16 Reggae 雷鬼音乐
17 Rock 摇滚乐
18 Techno 铁克诺音乐
19 Industrial Industrial
20 Alternative 另类摇滚
21 Ska 斯卡曲风
22 Death Metal 死亡金属音乐
23 Pranks Pranks
24 Soundtrack 原声音乐
25 Euro-Techno Euro-Techno
26 Ambient 氛围音乐
27 Trip-Hop 神游舞曲
28 Vocal 声乐
29 Jazz+Funk 爵士乐+放克
30 Fusion 融合爵士乐
31 Trance 出神音乐
32 Classical 古典音乐
33 Instrumental 器乐
34 Acid Acid
35 House 浩室音乐
36 Game Game
37 Sound Clip 音效及声音片段
38 Gospel 福音音乐
39 Noise 噪音音乐
40 AlternRock AlternRock
41 Bass 电贝斯
42 Soul 灵魂乐
43 Punk 朋克文化
44 Space Space
45 Meditative 冥想音乐
46 Instrumental Pop Instrumental Pop
47 Instrumental Rock Instrumental Rock
48 Ethnic Ethnic
49 Gothic Gothic
50 Darkwave Darkwave
51 Techno-Industrial Techno-Industrial
52 Electronic 电子音乐
53 Pop-Folk Pop-Folk
54 Eurodance 欧陆舞曲
55 Dream Dream
56 Southern Rock Southern Rock
57 Comedy 喜剧
58 Cult Cult
59 Gangsta Gangsta
60 Top 40 Top 40
61 Christian Rap Christian Rap
62 Pop/Funk 流行 (音乐类型)/放克
63 Jungle 早期丛林舞曲
64 Native American Native American
65 Cabaret 卡巴莱
66 New Wave 新浪潮
67 Psychadelic Psychadelic
68 Rave 锐舞
69 Showtunes Showtunes
70 Trailer Trailer
71 Lo-Fi Lo-Fi
72 Tribal Tribal
73 Acid Punk Acid Punk
74 Acid Jazz 酸爵士
75 Polka 波尔卡
76 Retro Retro
77 Musical Musical
78 Rock & Roll 摇滚
79 Hard Rock 硬式摇滚
80 Folk 民俗音乐
81 Folk-Rock 民谣摇滚
82 National Folk National Folk
83 Swing Swing
84 Fast Fusion Fast Fusion
85 Bebob 咆勃爵士乐
86 Latin 拉丁舞
87 Revival Revival
88 Celtic 凯尔特音乐
89 Bluegrass 蓝草音乐
90 Avantgarde 前卫
91 Gothic Rock 哥德摇滚
92 Progressive Rock 前卫摇滚
93 Psychedelic Rock 迷幻摇滚
94 Symphonic Rock 前卫摇滚
95 Slow Rock Slow Rock
96 Big Band 大乐团
97 Chorus 副歌
98 Easy Listening Easy Listening
99 Acoustic 原音乐
100 Humour 幽默
101 Speech 语音
102 Chanson 香颂
103 Opera 歌剧
104 Chamber Music 室内乐
105 Sonata 奏鸣曲
106 Symphony 交响曲
107 Booty Bass Booty Bass
108 Primus 讽刺
109 Porn Groove Porn Groove
110 Satire Satire
111 Slow Jam Slow Jam
112 Club 电子舞曲
113 Tango 探戈
114 Samba 桑巴
115 Folklore 民俗学
116 Ballad 谣曲
117 Power Ballad Power Ballad
118 Rhythmic Soul Rhythmic Soul
119 Freestyle Freestyle
120 Duet Duet
121 Punk Rock 朋克摇滚
122 Drum Solo Drum Solo
123 A capella 无伴奏合唱
124 Euro-House 浩室音乐
125 Dance Hall Dance Hall

ID3v2 编辑

1998年,一个由许多贡献者创造、被称作ID3v2的新规范问世[6]。虽然继承了ID3的名字,但其结构与ID3v1大相径庭。

ID3v2标签有各种不同的大小,而且经常位于文件开头,以运用于流媒体中。举例来说,TIT2资料框架包含标题,而WOAR资料框架则包含该艺术家的网站URL链接。资料框架最大可达16MB,不过标签总大小上限为256MB。标签也不再局限于西欧编码,而支持Unicode,解决了国际化的问题。

文字框架会由一个编码字节标记,以得知其是由哪种编码存入的[7]

$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种资料框架[8],而用户也可以自定义属于自己的资料框架。标准的资料框架有量测音乐速度、著作权、歌词、任意文字和URL数据等等。ID3v2总共有三种版本:

ID3v2.2
v2.2是ID3v2的第一个公开版本。他使用3个字符作为资料框架标识符,而非4个(举例来说,其使用TT2而非T1T2)。v2.3和v2.4中大多数的资料框架都在v2.2中有着相似的框架。这个标准已经被认为过时[9]
ID3v2.3
v2.3将资料框架标识符扩展到4个字符,并且加入了一些新的资料框架。一个框架可以包含复数值,由空字符分隔。这是目前最广泛使用的ID3v2标签[10]
ID3v2.4
v2.4出版于2000年11月1日,至今仍是最新的版本。其允许文字资料以UTF-8写入。另外一项新功能是可以选择是否在文件末端、其他标签前面加入标签,就像ID3v1那样[11]
没有任何版本的Windows资源管理器Windows Media Player──甚至是最新的Windows 10WMP 12──都无法正确的解读ID3v2.4标签,不过依然能解读v2.3或是更早的版本[12][13]

评分标签的争议 编辑

对于歌曲的评分,有一个宽松的事实标准。大多数应用程序会替所有歌曲展示0到5颗星的评分,而星数会以何种形式展示则各有不同。举例来说,当你在iTunes替歌曲评分的时候,评分并不会嵌入那个音乐文件的标签里,而是会存储在iTunes自己的后设资料数据库中。其他的媒体播放器可以嵌入标签,但方法不一定相同,所以在一个媒体播放器评分的音乐不一定会在其他的播放器以相同的形式展示。

不过,在新版的ID3v2中有一个“Popularimeter”资料框架用来解决这个问题。这个资料框架的标识符是POPM,而Windows资源管理器、WMP、Winampfoobar2000MediaMonkey以及其他软件都将0-255这范围内的值大致相同地分为0-5星展示。

以Windows资源管理器读写POPM资料框架的标准为例:

星数 读取 写入
5 224-225 255
4 160-223 196
3 96-159 128
2 32-95 64
1 1-31 1
0 0 0

语法则为:

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章节补遗(ID3v2 Chapter Addendum)出版于2005年12月,不过至今尚未被广泛支持。它让用户们可以简单地跳到音频档案中特定的地点或乐章,并且可以在播放期间提供同步的图片与文字的幻灯片。典型的应用程序包括补强播客,而且其可用于v2.3或v2.4标签中[14]

ID3v2嵌入图片 编辑

后设资料可以包含以下类型的图片[15]

$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

注意:

  1. IPLS of ID3v2.3 maps both to TIPL (the "involved people list") and to TMCL (the "musician credits list").
  2. TDRC (recording time) consolidates TDAT (date), TIME (time), TRDA (recording dates), and TYER (year).
  3. TCOM, TEXT, TOLY, TOPE, and TPE1 can contain multiple values separated by a foreslash ("/").[来源请求]


Version 2.4 of the specification prescribes that all text fields (the fields that start with a T, except for TXXX) can contain multiple values separated by a null character. The null character varies by character encoding.

注释 编辑

  1. ^ 1.0 1.1 Practical Common Lisp页面存档备份,存于互联网档案馆), p. 335.
  2. ^ 关于ID3v1在Python中的应用,请看Dive Into Python, Chapter 5. Objects and Object-Orientation页面存档备份,存于互联网档案馆
  3. ^ 3.0 3.1 3.2 曲目会存储在评论区的最后两个字节中。如果评论有29或30个字符那么长,就无法存储曲目。
  4. ^ “Primus”是单一乐团而非艺术类型,而“Negerpunk”似乎是瑞典的种族歧视笑话
  5. ^ Genre List from ID3v1. [2016-11-13]. (原始内容存档于2015-11-21). 
  6. ^ Contributors - ID3.org. [2016-11-13]. (原始内容存档于2016-12-03). 
  7. ^ id3v2-00 - ID3.org. [2016-11-13]. (原始内容存档于2016-11-24). 
  8. ^ ID3v2.4.0 Native Frames. [2012-12-27]. (原始内容存档于2012-12-21). 
  9. ^ Nilsson, Martin. ID3 Developer Information. ID3.org. [9 April 2011]. (原始内容存档于2012-08-26). 
  10. ^ ID3 tag version 2.3.0. [2016-11-13]. (原始内容存档于2016-11-17). 
  11. ^ ID3 tag version 2.4.0 - Native Frames. [2016-11-13]. (原始内容存档于2016-10-28). 
  12. ^ Bright, Peter. Music and Video in Windows 8: a work in progress. arstechnica.com. 28 October 2012 [2012-10-29]. (原始内容存档于2012-10-30). 
  13. ^ Microsoft support community. 11 January 2011 [2016-11-13]. (原始内容存档于2014-07-12). 
  14. ^ Newell, C. ID3v2 Chapter Frame Addendum. ID3.org. 2 December 2005 [2008-02-06]. (原始内容存档于2012-03-15). 
  15. ^ id3v2.3.0 - ID3.org. [2016-11-13]. (原始内容存档于2015-11-21). 

参见 编辑

外部链接 编辑