ID3

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-16而言有許多顯著的優點)但非標準的標籤編碼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資料框架的標準為例:

星數讀取寫入
5224-225255
4160-223196
396-159128
232-9564
11-311
000

語法則為:

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. Practical Common Lisp 页面存档备份,存于, p. 335.
  2. 關於ID3v1在Python中的應用,請看Dive Into Python, Chapter 5. Objects and Object-Orientation 页面存档备份,存于
  3. 曲目會儲存在評論區的最後兩個位元組中。如果評論有29或30個字元那麼長,就無法儲存曲目。
  4. 「Primus」是單一樂團而非藝術類型,而「Negerpunk」似乎是瑞典的種族歧視笑話
  5. . [2016-11-13]. (原始内容存档于2015-11-21).
  6. . [2016-11-13]. (原始内容存档于2016-12-03).
  7. . [2016-11-13]. (原始内容存档于2016-11-24).
  8. . [2012-12-27]. (原始内容存档于2012-12-21).
  9. Nilsson, Martin. . ID3.org. [9 April 2011]. (原始内容存档于2012-08-26).
  10. . [2016-11-13]. (原始内容存档于2016-11-17).
  11. . [2016-11-13]. (原始内容存档于2016-10-28).
  12. Bright, Peter. . arstechnica.com. 28 October 2012 [2012-10-29]. (原始内容存档于2012-10-30).
  13. . 11 January 2011 [2016-11-13]. (原始内容存档于2014-07-12).
  14. Newell, C. . ID3.org. 2 December 2005 [2008-02-06]. (原始内容存档于2012-03-15).
  15. . [2016-11-13]. (原始内容存档于2015-11-21).

参见

外部链接

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.