ID3 Tag 各有什麼區別?

●ID3v1 & ID3v1.1

MP3格式標準裡並沒有特別定義儲存曲目相關訊息的結構,於是1996年有人提出了一種解決辦法,即在mp3檔案末尾新增一些額外的資料(128 byte)來儲存曲名、演唱者、專輯名等訊息,這就是ID3(v1)。

ID3v1的字列(field)名稱和每個字列的大小都是固定的,如下所示

Song title——30 characters
Artist——30 characters
Album——30 characters
Year——4 characters
Comment——30 characters
Genre—— byte

ID3v1.1和ID3v1唯一區別就是多了個Album track字列,實際上是從上面說的Comment字列末尾抽出兩個字元用來存放Album track訊息。ID3v1(v1.1)大家一定很熟悉,因為MP3中早已經廣泛的使用ID3,甚至很多人誤以為這是mp3自帶的標準(事實上mp3格式標準裡並不包含ID3)。雖然廣為使用,但ID3v1,ID3v1.1有明顯缺陷。字列名和字列長度都是固定死的,不可擴展,缺乏靈活性。而且30個字元實在十分有限,想必很多人碰到過title或者artist太長被截斷的情況吧。所以有人提出新的ID3v2格式,試圖解決這些問題,擴展ID3的功能。

●ID3v2
  雖然從名稱上ID3v2好像只是ID3v1的一個昇級,實際在格式定義上ID3v2和ID3v1完全不同,ID3v2應該算一個全新的tag系統。如果用過WINAMP的ID3 tag editor,就知道ID3v2和ID3v1最直觀的區別是新增加了一些文本字列,譬如composer、conductor、media type、copyright message等等。但這不是重點,相較於ID3v1,ID3v2最大的改進應該是極大的增強了靈活性和可括展性,不僅每個字列的長度是可擴展的(再也不必為ID3v1 30個字元的限制而煩惱了),而且用戶還可以很容易的新增自定義字列。
  ID3v2 tag支持unicode,可以包含歌詞(包括同步訊息),曲目的volume、balance、equalizer、reverb設置訊息,甚至可以插入圖片,支持鏈接外部訊息和網頁……還有很多,有興趣的可以看這裡(http://www.id3.org/frames.html)。
  看上去ID3v2功能強大,真是不錯,不過凡事都有兩面性,ID3v2繁多的功能也帶來一個負面問題,就是使得ID3v2太過複雜,實現起來比較困難,一個單純實現所有ID3v2標準功能的程序就得100多K(FB2K主程式也就200多K)。而且有些功能也並不十分合適,譬如把圖片嵌入到音頻檔案中就不是一個好主意,你需要另外編寫程序從音頻檔案中提取圖片,而且也造成播放音頻檔案時更容易出現錯誤。
  還有一點值得注意的,ID3v2不像ID3v1存儲在檔案末尾,而是插入到音頻檔案的最開頭。原本的初衷是考慮網路上播放檔案時可以先接收到相應tag訊息。實際應用時卻發現這麼處理是弊大於利。
缺點:
  1、相容性變差。時常看到有人反映因為插入ID3v2 tag而造成音頻檔案不能正常播放的。
  2、寫入tag速度慢。由於tag放在檔案開頭,所以第一次插入tag必須得重寫整個檔案,嚴重影響速度,雖然ID3v2採取了的一些方法,避免每次修改tag都必須重寫整個檔案(大多數情況下不會,某些情況下還是有可能),但同時也增加了程序處理的複雜度。
  3、耗費臨時空間。由於插入tag得重寫整個檔案,如果你向一個大檔案新增ID3v2 tag,必須得有充足的磁碟空間,否則就會寫入失敗,甚至會造成原始檔案的損壞。
  (註:最新的ID3v2.4標準已經可以選擇把tag存放在檔案末尾。)
  所以,ID3v2雖然初看起來不錯,但並不受歡迎,在Hydrogenaudio Forums上用ID3v2做關鍵詞搜索一下就知道了,很多人毫不吝惜的把「SHIT」的光榮稱號授予了ID3v2。事實上目前流行的音頻格式(無論有損無損),只要有自己的tag標準定義的,沒有一個選擇ID3v2;標準版Foobar2000也不支持ID3v2,不過倒是有個第三方插件可以讀寫MP3和AAC的ID3v2 tag。
  儘管如此,ID3v2在硬體支持上還是頗具優勢,目前絕大多數MP3隨身聽只支持ID3v1和ID3v2,如果你有這樣的便攜式硬體設備,那ID3v2幾乎是你的唯一選擇。
目前tag格式沒有一個統一標準,不同音頻格式使用的tag也不盡相同。現在比較流行的tag格式有ID3和APE(這個APE和平常說的無損音頻格式APE可不一樣),它們各自也還有不同的版本,下面分別做簡要介紹。
●APEv1 & APEv2
  APE也是一種tag格式,如果我沒搞錯,應該是Monkey’s Audio的APE最先採用,是不是因此而得名我就不太清楚了。APE用的是APEv1,後來在APEv1基礎上改進又有了APEv2,主要區別就是兩點:
  1、APEv2標準裡增加了一個APE Tags Header
  2、APEv2採用UTF-8編碼,使得可以實現unicode支持
  APE tag具有與ID3v2一樣的靈活性和可括展性,字列名可自定義,字列長度可擴展,同時格式定義又不像ID3v2那麼繁瑣。APE tag的格式很簡單,實現起來也很方便,tag存放位置是可選的,既可以在檔案頭也可以在檔案尾(推薦在檔案尾),所以有不少人對APEv2比較傾瞇。譬如,MPC(MusePack)把ID3v1和APEv2作為標準支持的tag,Foobar2000也把APEv2作為標準的tag系統。
順便說一下:Ogg有自定義的tag格式,叫Vorbis Comment。而MP4/AAC很長一段時間也沒有自己的tag標準,現在好像是MP4已經有了,AAC還沒有,我不是很清楚WMA的tag系統當然是用微軟自己定義的一套東西。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料