Layer-3音频文件,MPEG(MovingPicture Experts Group)在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG音频文件是MPEG1标准中的声音部分,也叫MPEG音频层,它根据压缩质量和编码复杂程度划分为三层,即Layer-1、Layer2、Layer3,且分别对应MP1、MP2、MP3这三种声音文件,并根据不同的用途,使用不同层次的编码。MPEG音频编码的层次越高,编码器越复杂,压缩率也越高,MP1和MP2的压缩率分别为4:1和6:1-8:1,而MP3的压缩率则高达10:1-12:1。
MP3文件大体分为三部分:TAG_V2(ID3V2),音频数据,TAG_V1(ID3V1),其中ID3V2是ID3V1的补充,并不是所有的MP3都有ID3V2补充,即是不是所有的MP3文件都有ID3V2。
ID3V2
如果MP3文件存在ID3V2,则一定在文件的头部,ID3V2结构分为头部(header)和若干标签帧,其中头部长度为10字节,10个字节的结构如表1:
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
内容为”ID3” |
版本号 |
副版本号 |
存放标志的字节 |
ID3V2总大小(帧头和之后的若干标签帧总和) |
表1
因为3、4、5字节所代表的意义并不是MP3解码的重点,故此只解说前三字节和后四字节:
-
从表1可看出判断MP3文件是否存在ID3V2,只需要判断文件前三个字节是否是”ID3”;
-
ID3V2数据大小计算公司:
total_size = (Size[0]&0x7F)*0x200000+ (Size[1]&0x7F)*0x400 + (Size[2]&0x7F)*0x80 +(Size[3]&0x7F) |
其中,size[0~3],分别是表1中的6~9字节。需要注意的是,这个公司计算的长度并不包括ID3V2的10个字节的头部。
ID3V2头部之后的若干标签帧每一帧结构分为标签ID(4字节)、帧内容大小(4字节,不包括标签帧帧头)、存放标志位(2字节)、内容。其中标签ID的含义如下:
TEXT: 歌词作者 TENC: 编码 WXXX: URL链接(URL) TCOP: 版权(Copyright) TOPE: 原艺术家 TCOM: 作曲家 TDAT: 日期 TPE3: 指挥者 TPE2: 乐队 TPE1: 艺术家相当于ID3v1的Artist TPE4: 翻译(记录员、修改员) TYER: 即ID3v1的Year USLT: 歌词 TSIZ: 大小 TALB: 专辑相当于ID3v1的Album TIT1: 内容组描述 TIT2: 标题相当于ID3v1的Title TIT3: 副标题 TCON: 流派(风格)相当于ID3v1的Genre AENC: 音频加密技术 TBPM: 每分钟节拍数COMM: 注释相当于ID3v1的Comment TDLY: 播放列表返录 TRCK: 音轨(曲号)相当于ID3v1的Track TFLT: 文件类型 TIME: 时间 TKEY: 最初关键字 TLAN: 语言 TLEN: 长度 TMED: 媒体类型 TOAL: 原唱片集 TOFN: 原文件名 TOLY: 原歌词作者 TORY: 最初发行年份 TOWM: 文件所有者(许可证者) TPOS: 作品集部分 TPUB: 发行人 TRDA: 录制日期 TRSN: Intenet电台名称 TRSO: Intenet电台所有者 UFID: 唯一的文件标识符 |