MP3學習總結

目錄

1 前言

2 格式解析

2.1 ID3V1

2.2 ID3V2

2.2.1 ID3V2.3標籤頭內容

2.2.2 ID3V2.3標籤幀結構

2.2.3 標籤幀標識符

2.3 數據幀

2.3.1 編碼方式:CBR與VBR

2.3.2 有效音頻數據幀

3 解碼原理

4 常見問題

5 參考資料

6 附錄[1]

6.1 VBR幀

6.2 MPEG 音頻版本表

6.3 比特率索引表(單位 Kbps)

​6.4 採樣率索引表

6.5 每幀數據的採樣數

6.6 channel 模式表

6.7 標籤幀的標識以及其意義對照表


1 前言

該文檔旨在提供一個對MP3整體的認識,方便入門,文章引用已標明,如有錯誤紕漏,非常歡迎指出。

MP3全稱爲MPEG Audio Layer 3,是一種音頻編碼方案。MPEG有三種音頻編碼方案,包括Layer1、Layer2、Layer3。通常MP3指的是Layer3。

2 格式解析

MP3主要由多個數據幀組成,一個數據幀包括幀頭與數據塊。在MP3文件的開頭,可能包括ID3V2元數據,而文件末尾可能包括128字節的ID3V1元數據MP3最開始只有數據幀,對於應用者而言,無從得知該mp3文件的相關信息,包括演唱者,作曲家,專輯名等,因此產生了ID3V1標籤,固定128個字節,放在文件最後,該標籤可以提供如上的信息。然而,固定的128個字節ID3V1標籤所能提供的信息實在有限,越來越不滿足應用的需要,ID3V2應運而生,該標籤存在於文件首部,作爲ID3V1的補充。畢竟,文件尾部已經被佔用了。

 

2.1 ID3V1

ID3v1是第一個版本的音頻標籤,長度爲固定的 128 字節,位置在 MP3 文件的尾部。

名稱 字長長度 字節位置 說明
Tag 3 1~3 ID3V1標識符“TAG”的Ascii碼
Title 30 4~33 歌曲名的音頻
Artist 30 34~63 歌手名的音頻
Album 30 64~93 專輯名的音頻
Year 4 94~97 日期信息音頻
Comment 28 98~125 註釋信息,有時爲30字節
Reserved 1 126 =0說明有音軌,下一字節就是音軌;≠0表示註釋是30個字節
Track 1 127 音軌(字節型數值),歌曲在專輯裏的序號
Genre 1 128 歌曲風格(字節型數值)
註釋:
1.如果MP3的註釋=30字節,那麼就要佔用 Reserved 和 Track 兩個字節,這要看 Reserved 是否=0,如果=0,那麼註釋有 28 個字節。如果不是,那麼註釋有 30 個字節。當註釋=30 個字節的時候,那就沒有 Track 了。
2.如果 MP3 文件後面雖然有“TAG”三個字母,但字母后面全是0,那就不是一個合法的 ID3V1 信息,應該認爲沒有 ID3V1 信息。
3.ID3V1 的各項信息都是順序存放,沒有任何標識將其分開,一般用 0補足規定的長度。比如歌曲名有 20 個字節,則在歌曲名後要補足 10 個 0,否則將造成信息錯誤。
4.歌曲風格共 148 種,用編號表示,詳情可上網查詢。其數據存放按照順序一個個存放,如果長度不足則補 0,ID3v1 應該已經比較少用了。

2.2 ID3V2

ID3V2由10個字節的標籤頭與多個標籤幀組成,標籤幀不固定長度,包括10個字節的幀頭與至少1字節的幀內容。

2.2.1 ID3V2.3標籤頭內容

名稱 字節長度 字節位置 說明
Header 3 1~3 ID3V2.3標識符"ID3"的Ascii碼
Ver 1 4 版本號
Revision 1 5 副版本號
Flag 1 6 標誌字節,一般沒意義,=00
Size 4 7~10 標籤內容長度,高位在前,不包括標籤頭的10個字節
註釋
1.Size 字段的計算公式如下(從左至右):
size =字節1的值*0x200000+字節2的值*0x4000+字節3的值*0x80+字節4的值(每個字節只用7位,最高位不使用,恆爲0)
2.如果所有標籤幀的總長度<標籤內容長度,則須用0填滿。

2.2.2 ID3V2.3標籤幀結構

名稱 字節長度 字節位置 說明
FrameID 4 1~4 幀標識符的Ascii碼
Size 4 5~8 幀內容及編碼方式的合計長度,高位在前,不包括幀頭
Flags 2 9~10 標誌,只使用了6位,一般均=0
幀內容     至少 1 個字節

ID3V2長度不固定,尾部可能有補空數據。

註釋
1.標籤幀大小計算公式:Size = Size[0]*0x1000000+Size[1]*0x10000+Size[2]*0x100+Size[3]。
2.標籤幀之間沒有特殊的分隔符,要得到一個完整的標籤幀內容必須先從幀頭中得到幀內容長度。
3.幀內容均爲字符串,常以 00 開頭。
4.Flags一般沒用,通常爲0.

2.2.3 標籤幀標識符

名稱 意義 名稱 意義
TALB 專輯 TCOM 作曲家
TCON 流派 TCOP 版權
TDAT 日期 TENC 編碼
TEXT 歌詞作者 TFLT 文件類型
TIT2 標題 TIT3 副標題
TLAN 語言 TLEN 長度
TMED 媒體類型 TOWM 文件所有者
TRCK 音軌 TSIZ 大小
註釋
1.幀內容是數字的,都用 Ascii 字符表示。
2.有的 TCON(風格、流派)的幀內容是直接用字符串表示的,如“genre”,而有的則是用編號表示的,如“28 31 32 29”就是用字符串“(12)”表示 12 號風格,我們在解析的時候要注意。
3.TRCK(音軌)的幀內容格式是:N/M。其中,分母表示專輯中共有 M 首歌曲,分子表示專輯中的第 N 首曲。

2.3 數據幀

2.3.1 編碼方式:CBR與VBR

MP3有兩種編碼方式,一種是CBR,一種是VBR,前者是恆定碼率,後者是可變碼率。

恆定碼率的幀大小是固定的,除去ID3V1與ID3V2,有效數據幀總長度爲幀大小與幀數據的乘積,從而可算得MP3播放時長,跳播容易。一般有效數據幀第一幀即爲音頻數據,但也有例外,有些編碼器在編碼CBR文件時也像VBR那樣將信息記入第一幀,比如著名的lame,它使用"Info"來做CBR的標記。

VBR是XING公司推出的算法,所以在MP3的FRAME裏會有“Xing"這個關鍵字(也有用"Info"來標識的,現在很多流行的小軟件也可以進行VBR壓縮,它們是否遵守這個約定,那就不得而知了),它存放在MP3文件中的第一個有效幀的數據區裏,它標識了這個MP3文件是VBR的,也就是說,MP3數據幀如果是VBR編碼,則第一幀是VBR幀。。同時第一個幀裏存放了MP3文件的幀的總個數,這就很容易獲得了播放總時間,同時還有100個字節存放了播放總時間的100個時間分段的幀索引,假設4分鐘的MP3歌曲,240S,分成100段,每兩個相鄰INDEX的時間差就是2.4S,所以通過這個INDEX,只要前後處理少數的FRAME,就能快速找出我們需要快進的幀頭。其實這第一幀就相當於文件頭了 。[1]

CBR相關計算公式:
LayerII 與 LayerII
幀長 = (每幀採樣次數 * 比特率 / 8 / 採樣率) + 補白 
LayerI 
幀長 = (每幀採樣次數 * 比特率 / 8 / 採樣率) + 補白 * 4
CBR 總播放時長計算公式:
播放時長 = (文件大小 – ID3標籤大小) * 8 / 比特率
​
VBR相關計算公式:
VBR 總播放時長計算公式:
播放時長 = 有效數據幀總幀數 * 每幀採樣數 / 採樣率 
每一幀的播放時長計算公式:
幀播放時長 = 採樣數 / 採樣頻率 * 1000 毫秒

關於VBR幀、INFO幀、VBRI幀的結構與實例分析,參見參考文獻[1],該文章對照着MP3二進制數據,解析了VBR幀與VBRI幀。另外也可以見附錄1,引用自文獻[1]。

2.3.2 有效音頻數據幀

每個幀都有一個幀頭,長度是四個字節,幀後面可能有2字節的CRC校驗,取決於幀頭的第16位,爲0則無校驗,爲1則有校驗,後面是可變長度的附加信息,對於標準的MP3文件來說,其長度是32字節,緊接其後的是壓縮的聲音數據,當解碼器讀到此處時就進行解碼了。

幀頭結構

typedef FrameHeader
{
    unsigned int sync:11;                        //同步信息
    unsigned int version:2;                      //版本
    unsigned int layer: 2;                           //層
    unsigned int error protection:1;           // CRC校驗
    unsigned int bitrate_index:4;              //位率
    unsigned int sampling_frequency:2;         //採樣頻率
    unsigned int padding:1;                    //幀長調節
    unsigned int private:1;                       //保留字
    unsigned int mode:2;                         //聲道模式
    unsigned int mode extension:2;        //擴充模式
    unsigned int copyright:1;                           // 版權
    unsigned int original:1;                      //原版標誌
    unsigned int emphasis:2;                  //強調模式
}HEADER;

幀頭信息

幀頭信息如下表所示,該圖引用於博文[1]。

幀邊信息(通道信息)

在幀頭後邊是Side Info(姑且稱之爲通道信息)。對標準的立體聲MP3文件來說其長度爲32字節。當解碼器在讀到上述信息後,就可以進行解碼了。幀邊信息解碼的主要目的在於找出解這幀的各個參數,包括主數據開始位置,尺度因子長度等。幀邊信息如下圖所示。

3 解碼原理

MP3音頻解碼可以用下圖表示總體流程,具體可參見文檔《mp3解碼算法原理詳解》

 

在博文《MP3解碼詳細過程》中,也有大概地論述MP3解碼流程,如下所述:

PCM信號進行MP3壓縮時,以1152個PCM採樣值爲單位,封裝成具有固定長度的MP3數據幀,幀是MP3文件的最小組成單位。在解碼時,利用數據幀裏的信息就可以恢復出1152個PCM採樣值。這1152個採樣值被分爲2個粒度組,每個粒度組包含576個採樣值。一個MP3數據幀分爲5個部分:幀頭、CRC校驗值、邊信息、主數據、附加數據。

1 數據流的同步以及幀頭信息的讀取

MP3數據流的同步以幀爲單位,每一幀的幀頭都包含同步信息。這個同步信息是連續的12比特的‘1’組成。MP3音頻解碼過程中的第一步就是使解碼器與輸入數據流同步。在啓動解碼器後,可以通過搜索數據流中的12比特長的同步字來完成。在取得同步以後跟着的數據就是幀頭信息,包括採樣率、填充位、比特率等信息。

2 主數據的讀取

在MP3編碼過程中使用了比特池技術,所以當前幀的主數據不一定全部都在當前幀中,在解碼過程中,必須結合主數據開始指針的值來確定主數據的開始位置。主數據包含的數據有縮放因子、哈夫曼數據及附加數據。這些字段在主數據中有固定的格式。

3 哈夫曼解碼和反量化

在MP3編碼過程中,根據心理聲學模型的輸出,對離散餘弦變換的輸出樣本以粒度爲單位進行的量化和分配,再對量化的結果進行哈夫曼編碼。量化和編碼主要是通過循環迭代完成的,循環模塊分爲三層來描述,最高層爲幀循環,它調用外層迭代循環,而外層迭代循環又調用內層迭代循環。但在解碼過程中,哈夫曼解碼和反量化過程是分開實現的。每個粒度組的頻率線都是用不同的哈夫曼表來進行編碼的,因此在解碼過程中,需要採用不同的解碼方法。反量化頻譜過程就是基於所得到的哈夫曼解碼數據,根據逆量化全縮放公式和幀邊信息,對於不同的窗類型採用不同的公式以恢復576個頻率線的真實值。

4 立體聲處理

5 重排序和反混疊

反量化過程中得出的頻譜值不是按相同順序排列的。在編碼的MDCT過程中,對於長窗產生的頻譜值先按子帶然後按頻率排列;對於短窗,產生的頻譜值按子帶、窗、頻率的順序排列。爲了提供哈夫曼編碼效率,短窗中的數據被重新排列,按照子帶、頻率、窗的順序排列。解碼時,重排序及時將短窗中的頻譜值重新排列。同樣,在編碼的MDCT過程中,爲了得到更好的頻域特性,對長窗對應每個子帶進行了去混疊處理,爲了得到正確的音頻信號,在解碼時必須對長窗對應的子帶進行混疊重建。

6 逆向離散餘弦變換

逆向離散餘弦變換主要是使用逆向離散餘弦變換的公式,對反量化得出的信號進行變換。逆向離散餘弦變換的計算十分複雜,爲了提高效率,可以對計算做一些優化。

7 頻率反轉和子帶合成

頻率反轉是對逆向離散餘弦變換的輸出值中的奇數號子帶(0到31號子帶中的1,3,5,...,31)中的奇數號樣本值(每個子帶中的0到17號樣本值的1,3,5,...,17號樣本值)進行反相處理,用來補償編碼時爲提高離散餘弦變換效率而進行的頻率反轉。子帶合成濾波器將32個帶寬相等的子帶中的頻域信號反變換成時域信號。子帶合成是逆向離散餘弦變換後的一個通道中32個子帶的樣值,經過一系列的計算還原出32個PCM數字音頻信號的過程。子帶合成過程先將32個子帶樣值進行逆向離散餘弦變換,生成64箇中間值,將這64箇中間值轉入到一個長爲1024點的類似先進先出FIFO的緩存,再在這1024個值中抽取一半,構成一個512個值的矢量,再進行加窗運算,最後將加窗結果進行疊加生成32個時域輸出。

4 常見問題

1.MP3的同步標識是什麼?

“FF FA xx xx”或者“FF FB xx xx”

2.採樣率有哪些?

在當今的主流採集卡上,採樣頻率一般共分爲22.05KHz、44.1KHz、48KHz三個等級,22.05KHz只能達到FM廣播的聲音品質,44.1KHz則是理論上的CD音質界限,48KHz則更加精確一些。

3.MP3的編碼原理大概是怎樣的?

MP3音頻壓縮包含編碼和解碼兩部分,編碼是將原始信號轉換成電平信號的過程,解碼即是逆過程,MP3 採用了感知音頻編碼(PerceptualAudio Coding)這一失真算法。人耳感受聲音的頻率範圍是20Hz-20kHz,MP3截掉了大量的冗餘信號和無關的信號,編碼器通過混合濾波器組將原始聲音變換到頻率域,利用心理聲學模型,估算剛好能被察覺到的噪聲水平,再經過量化,轉換成Huffman編碼,形成MP3位流。解碼器要簡單得多,它的任務是從編碼後的譜線成分中,經過反量化和逆變換,提取出聲音信號。[1]

4.MP3一幀的時長是多少秒?一幀大小是多大?[1]

根據公式,幀時長=每幀採樣數/採樣頻率,易知MPEG1 Layer3在44.1kHz的條件下:

幀時長=1152/4=0.026s

一幀數據的採樣個數根據音頻的Layer與MPEG標準不同而不同。如下表所示:

None MPEG 1 MPEG 2(LSF) MPEG 2.5(LSF)
Layer 1 384 384 384
Layer 2 1152 1152 1152
Layer 3 1152 576 576

幀長度是壓縮時每一幀的長度,包括幀頭的4個字節。它將填充的空位也計算在內。Layer 1的一個空位長4字節,Layer 2和Layer 3的空位是1字節。當讀取MPEG文件時必須計算該值以便找到相鄰的幀。注意:因爲有填充和比特率變換,幀長度可能變化

計算公式如下:

Layer 1:Len(字節) = ((每幀採樣數/8比特率)/採樣頻率)+填充4

Layer2/3:Len(字節) = ((每幀採樣數/8*比特率)/採樣頻率)+填充

例:MPEG1 Layer3 比特率128000,採樣率44100,填充0,幀長度爲:((1152/8*128K)/44.1K+0=417字節

5.VBR頭結構是怎樣的?

VBR文件頭位於MP3文件中第一個有效幀的數據區 ,引用自參考文獻[1]。

6.ID3是怎麼來的?

起初MP3並不能保存歌手名稱、專輯名稱、歌名、備註等附加信息,直到1996年,一個叫做Eric Kemp的人制作了Studio3軟件,它可以在MP3文件的最後部分增加固定的128字節小塊數據,用來記錄音樂的信息。很快,MP3ext的作者Michael Mutschler又將這個標記進行了擴展,並正式將其命名爲ID3,而且還使用註釋的最後兩個字節來記錄CD和音樂的來源,其版本被定爲ID3v1.1。不過ID3v1版本的限制太多,比如歌曲名長度被限制在30個英文字母,稍長一點的曲名就會被截掉,讓人頭痛不已。在這種情況下,它的升級版本ID3v2出現了。它首先解除了128個字節的限制,各個字段的長度也是彈性可變的,使可包含的音樂信息更爲豐富,除了歌名、專輯名、演唱者外,還可保存歌詞、均衡器設置、圖片等信息。ID3v2的設計更靈活,擴展性更強,並且支持Unicode,因此歌詞信息支持多語言。ID3v2甚至能包含一個文件,所以未來的MP3可能會附帶有視頻文件,讓你不僅能聽,還可以看。微軟的Windows Midia Player就能很好地支持ID3v2,甚至在Windows XP中,你不需要打開任何播放器,只要進入一個存放MP3的文件夾,系統就能讀取ID3v2的信息來對文件分類排列。

5 參考資料

1.《MP3文件結構解析》(https://blog.csdn.net/aigoogle/article/details/21384895)

2.《MP3解碼算法原理詳解》(https://wenku.baidu.com/view/0dc1c929647d27284b735149.html)

3.《MP3解碼詳細過程》(https://blog.csdn.net/aigoogle/article/details/21384895?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task)

6 附錄[1]

6.1 VBR幀

 

標準聲音幀頭:Mp3時,爲“FF FA xx xx”或者“FF FB xx xx”

36-39:Mp3的就是這種情況,第5至36的數據存儲的是前面提到過的32字節的邊信息,無效邊信息時是32字節的“00”

45-48:幀數(包括第一幀)

VBR規模:VBR規模,用於位率變動音頻質量指示,最差 0,最好 100,大端[可選]

舉例說明: https://blog.csdn.net/xsjm206/article/details/6719958

曲子是:劉德華 - 虹橋機場的咖啡廳.mp3(5,898,130字節,時長3分14秒)

 

a. 第37至40地址爲“58 69 6E 67”,就是“Xing”標誌了;

b. 第41至44地址爲“00 00 00 0F”,這裏是Flag了,表示該幀存儲了幀數、文件長度、目錄表和VBR規模信息。

c. 第45至48地址爲“00 00 1D 11”,這裏是文件的總幀數(包括第一幀),是big-endia的,(116^3+1316^2+1*16+1)幀。

d. 第49至52地址爲“00 59 FD DE”,這裏是文件的總大小,也是Big-Endian的,(516^5+916^4+1516^3+1316^2+13*16+14)=5,897,694(字節)。

e. 第53至152地址,就是100字節的目錄表了(稱作TOC表),如圖藍色的部分。

TOC (Table of Contents)

TCO 索引的計算方式如下:文件長度 100 比如文件持續 240 秒,我需要跳到 60 秒,文件長度爲 5000000 字節 計算如下TOC[(60/240)*100] =TOC[25] 然後相對於文件中的位置大約是在 (TOC[25]/256) * 5000000 如果要自己重建的話,基本是把這個步驟反過來做就可以了。要求準確的話,就需要根據時間點找到正確幀的位置然後再計算, 定位幀的做法都是從第一幀開始搜索。

f. 第153至156字節地址爲“00 00 00 64”,,音頻質量指示質量指示器,爲 0(最好)-100(最差)的 Big-Endian 值,沒想到這個文件的音質是最差的100。

g. 接下來是Lame版本的相關信息。

Info 幀

​ info幀,結構和Xing幀是相同的,從一些網上的資料顯示:這種類型的幀有點怪,在CBR文件中的第一個數據幀可以是Info幀,在VBR文件中的第一個數據幀也有可能是Info幀。根據文章xx,第一個數據幀爲Info幀的文件大概率是CBR文件,比如Kugoo軟件製作的鈴聲的第一幀都是Info幀,而且是CBR文件。

VBRI幀

據瞭解,目前此頭信息,只有用 Fraunhofer 的編碼器生成的 MPEG音頻文件,纔會用到此頭。其和Xing 頭不一樣,其放在第一個MPEG頭的後面,大小正好是 32字節。其位置,長度和示例,都是以字節爲單位。下表是 VBRi 頭的具體格式及含義,單位爲字節:

位置(字節) 長度(字節) 含義 示例
0 4 4個 ASCII字符的 VBR 頭ID: “VBRI”無NULL結尾 VBRI
4 2 版本 ID,大端,類型:DWORD 00 01
6 2 延遲,類型:float 0D B1
8 2 音頻質量指示 00 64
10 4 文件總大小,大端,類型:DWORD 00 5F 09 68
14 4 總的幀數,大端,類型:DWORD 00 00 26 8C
18 2 TOC 表的表項數目,大端,類型:WORD 00 9A
20 2 TOC 表項的縮放因子,大端,類型:DWORD 00 02
22 2 單個 TOC 表項的大小,單位字節,最大爲 4,大端,類型:DWORD 00 02
24 2 幀數/表項,大端,類型:WORD 00 40
26   用於檢索的 TOC 表,整型值,可以通過每個表項大小乘以表項個數得到此TOC 表的總大小,大端 9A * 02 = 0X134

如下圖所示,藍色部分包括了4個字節的幀頭,32個字節的空字節,以及26個字節的不包括TOC表的VBRI幀內容。從地址0x6BC開始,0x6BC--0X6BF爲VBRI字符。從0X6D7至0X80A爲TOC表內容。文件總大小爲0X5F0968字節,不包括ID3與TAG,也就是說,如果用HXD看整個文件的大小,實際上是大於0X5F0968字節的。

6.2 MPEG 音頻版本表

index content
00 MPEG 2.5
01 reserved
10 MPEG 2
11 MPEG 1

6.3 比特率索引表(單位 Kbps)

Bitrate Index MPEG 1 MPEG 2,2.5      
  LayerI LayerII LayerIII LayerI LayerII&LayerIII
0000 FREE        
0001 32 32 32 32 8
0010 64 48 40 48 16
0011 96 56 48 56 24
0100 128 64 56 64 32
0101 160 80 64 80 40
0110 192 96 80 96 48
0111 224 112 96 112 56
1000 256 128 112 128 64
1001 288 160 128 144 80
1010 320 192 160 160 96
1011 352 224 192 176 112
1100 384 256 224 192 128
1101 416 320 256 224 144
1110 448 384 320 256 160
1111 FREE        

​6.4 採樣率索引表

採樣率索引 MPEG-1 (Hz) MPEG-2 (Hz) MPEG-2.5 (Hz)
00 44100 22050 11025
01 48000 24000 12000
10 32000 16000 8000
11 reserved reserved reserved

6.5 每幀數據的採樣數

-- MPEG 1 MPEG 2 (LSF) MPEG 2.5 (LSF)
Layer I 384 384 384
Layer II 1152 1152 1152
Layer III 1152 576 576

6.6 channel 模式表

index content
00 Stereo
01 Joint Stereo (Stereo)
10 Dual channel (Two mono channels)
11 Single channel (Mono)

6.7 標籤幀的標識以及其意義對照表

index   content
AENC    [Audio encryption]
APIC    [Attached picture]
COMM    [Comments]
COMR    [Commercial frame]
ENCR    [Encryption method registration]
EQUA    [Equalization]
ETCO    [Event timing codes]
GEOB    [General encapsulated object]
GRID    [Group identification registration]
IPLS    [Involved people list]
LINK    [Linked information]
MCDI    [Music CD identifier]
MLLT    [MPEG location lookup table]
OWNE    [Ownership frame]
PRIV    [Private frame]
PCNT    [Play counter]
POPM    [Popularimeter]
POSS    [Position synchronisation frame]
RBUF    [Recommended buffer size]
RVAD    [Relative volume adjustment]
RVRB    [Reverb]
SYLT    [Synchronized lyric/text]
SYTC    [Synchronized tempo codes]
TALB    [Album/Movie/Show title]
TBPM    [BPM (beats per minute)]
TCOM    [Composer]
TCON    [Content type]
TCOP    [Copyright message]
TDAT    [Date]
TDLY    [Playlist delay]
TENC    [Encoded by]
TEXT    [Lyricist/Text writer]
TFLT    [File type]
TIME    [Time]
TIT1    [Content group description]
TIT2    [Title/songname/content description]
TIT3    [Subtitle/Description refinement]
TKEY    [Initial key]
TLAN    [Language(s)]
TLEN    [Length]
TMED    [Media type]
TOAL    [Original album/movie/show title]
TOFN    [Original filename]
TOLY    [Original lyricist(s)/text writer(s)]
TOPE    [Original artist(s)/performer(s)]
TORY    [Original release year]
TOWN    [File owner/licensee]
TPE1    [Lead performer(s)/Soloist(s)]
TPE2    [Band/orchestra/accompaniment]
TPE3    [Conductor/performer refinement]
TPE4    [Interpreted, remixed, or otherwise modified by]
TPOS    [Part of a set]
TPUB    [Publisher]
TRCK    [Track number/Position in set]
TRDA    [Recording dates]
TRSN    [Internet radio station name]
TRSO    [Internet radio station owner]
TSIZ    [Size]
TSRC    [ISRC (international standard recording code)]
TSSE    [Software/Hardware and settings used for
TYER    [Year]
TXXX    [User defined text information frame]
UFID    [Unique file identifier]
USER    [Terms of use]
USLT    [Unsychronized lyric/text transcription]
WCOM    [Commercial information]
WCOP    [Copyright/Legal information]
WOAF    [Official audio file webpage]
WOAR    [Official artist/performer webpage]
WOAS    [Official audio source webpage]
WORS    [Official internet radio station homepage]
WPAY    [Payment]
WPUB    [Publishers official webpage]
WXXX    [User defined URL link frame]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章