2024年3月28日发(作者:)

MP3全称为 MPEG1 Layer-3 音频, MPEG1 是标准中的声音部

分, MPEG1 根据压缩质量和编码规则分为三层, Layer-1,

Layer-2, Layer-3, Layer-3的压缩比最高,MP3就专指MPEG1

Layer-3.

(一)MP3文件的组成

概述:MP3文件由三部分组成, TAR_V2(ID3V2), Frame,

TAR_V1(ID3V1), ID3V1 和 ID3V2 中记录了歌曲的信息, 比

如歌曲名, 歌手等信息, ID3V1在文件的最后128个字节中, ID3V2

在文件的最开头, 作为ID3V1信息的扩充, 大小事不固定的,

Frame是MP3中的重要部分, 是记录声音信息的部分, 每个Frame

包括 帧头,附加信息和主数据。

ID3V2:ID3V2位于文件的最开头, 它包含一个10字节头标签:

char Header[3]; /*必须为"ID3"否则认为标签不存在*/

char Ver; /*版本号ID3V2.3就记录3*/

char Revision; /*副版本号此版本记录为0*/

char Flag; /*存放标志的字节,这个版本只定义了三位*/

char Size[4]; /*标签大小,包括标签头的10个字节和所有的标签帧的大小*/

可以根据Header是否为ID3 来判断是否存在ID3v2信息, 头标

签之后是 标签帧, 可以通过Size 求得 头标签和标签帧的总大小,

Size共4个字节, 么个字节的最高位不用, 取每个字节的低7位组

成一个二进制数, 这个数就是头标签和标签帧的总大小, 标签帧

的大小是不固定的, 标签帧中存储了具体ID3V2信息, 每个标签

帧包括一个帧头和数据实体,数据实体的大小必须大于或等于1, 帧

头定义如下:

char FrameID[4]; /*用四个字符标识一个帧,说明其内容*/

char Size[4]; /*帧内容的大小,不包括帧头,不得小于 1*/

char Flags[2]; /*存放标志,只定义了 6 位*/

FrameID 中标记了此标签帧中的数据表示的是什么, 比如歌手,

歌名, 等,具体的表示如下:

TEXT:

WXXX:

TOPE:

TDAT:

TPE2:

TPE4:

USLT:

TIT1:

TIT3:

TBPM:

TDLY:

TFLT:

歌词作者

URL链接(URL)

原艺术家

日期

乐队

翻译(记录员、修改员)

歌词

内容组描述

副标题

每分钟节拍数

播放列表返录

文件类型

TENC:

TCOP:

TCOM:

TPE3:

TPE1:

TYER:

TALB:

TIT2:

TCON:

COMM:

TRCK:

TIME:

编码

版权(Copyright)

作曲家

指挥者

艺术家相当于ID3v1的Artist

年代相当于ID3v1的Year

专辑相当于ID3v1的Album

标题相当于ID3v1的Title

流派(风格)相当于ID3v1

的Genre见下表

注释相当于

Comment

ID3v1的

音轨(曲号)相当于ID3v1

的Track

时间

TKEY:

TLEN:

TOAL:

TOLY:

TOWM:

TPUB:

TRSN:

TSIZ:

TSSE:

AENC:

最初关键字

长度

原唱片集

原歌词作者

文件所有者(许可证者)

发行人

Intenet电台名称

大小

音频加密技术

TLAN:

TMED:

TOFN:

TORY:

TPOS:

TRDA:

TRSO:

TSRC:

语言

媒体类型

原文件名

最初发行年份

作品集部分

录制日期

Intenet电台所有者

ISRC(国际的标准记录代码)

唯一的文件标识符

编码使用的软件(硬件设置)

UFID:

Size 表示 此标签帧的数据的大小, 每个字节的8个位都是有效的。