mp3的标签类型和编码,现在主要存在这几种标准,ID3v1、ID3v2 2.3、ID3v2 2.4、APEv2。它们分别支持的编码为
ID3v1:只支持ISO--8859-1
ID3v2 2.3:ISO--8859-1、UTF-16
ID3v2 2.4:ISO--8859-1、UTF-16、UTF-8
APEv2:UTF-8
统计 [金常] - 下载数(本站、外站) - 运行次数 - 在线时长
二、标签帧
每个标签帧都有一个10个字节的帧头和至少一个字节的不固定长度的内容组成。它们也是顺序存放在文件中,和标签头和其他的标签帧也没有特殊的字符分隔。得到一个完整的帧的内容只有从帧头中得到内容大小后才能读出,读取时要注意大小,不要将其他帧的内容或帧头读入。
帧头的定义如下:
char FrameID[4]; /*用四个字符标识一个帧,说明其内容,稍后有常用的标识对照表*/
char Size[4]; /*帧内容的大小,不包括帧头,不得小于1*/
char Flags[2]; /*存放标志,只定义了6位,稍后详细解说*/
1.帧标识
用四个字符标识一个帧,说明一个帧的内容含义,常用的对照如下:
TIT2=标题 表示内容为这首歌的标题,下同
TPE1=作者
TALB=专集
TRCK=音轨 格式:N/M 其中N为专集中的第N首,M为专集中共M首,N和M为ASCII码表示的数字
TYER=年代 是用ASCII码表示的数字
TCON=类型 直接用字符串表示
COMM=备注 格式:"eng\0备注内容",其中eng表示备注所使用的自然语言
2.大小
这个可没有标签头的算法那么麻烦,每个字节的8位全用,格式如下
xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
算法如下:
int FSize;
FSize = Size[0]*0x1000000
+Size[1]*0x10000
+Size[2]*0x100
+Size[3];
3.标志
只定义了6位,另外的10位为0,但大部分的情况下16位都为0就可以了。格式如下:
abc00000 ijk00000
a -- 标签保护标志,设置时认为此帧作废
b -- 文件保护标志,设置时认为此帧作废
c -- 只读标志,设置时认为此帧不能修改(但我没有找到一个软件理会这个标志)
i -- 压缩标志,设置时一个字节存放两个BCD码表示数字
j -- 加密标志,(没有见过哪个MP3文件的标签用了加密)
k -- 组标志,设置时说明此帧和其他的某帧是一组
值得一提的是winamp在保存和读取帧内容的时候会在内容前面加个'\0',并把这个字节计算在帧内容的大小中。
附:帧标识的含义
4. Declared ID3v2 frames
The following frames are declared in this draft.
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 encoding
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
分享到:
相关推荐
然而,有时由于编码问题或导入错误,MP3标签可能会出现乱码,导致播放器显示不正常,影响听歌体验。为了应对这种情况,我们需要一款能够批量清出MP3标签的程序。 批量清出MP3标签的程序设计原理主要基于ID3标签标准...
C、C++、VC(Visual C++)和MFC(Microsoft Foundation Classes)是编程语言和框架,它们可以用来开发处理MP3标签的程序。MFC是微软提供的一个C++类库,用于构建Windows应用程序,它简化了与Windows API的交互,包括...
本文将详细讲解如何使用`<audio>`标签来播放不同格式的音频文件,包括mp3, amrnb和wav,并讨论可能遇到的兼容性问题以及解决方案。 一、`<audio>`标签的基本使用 `<audio>`标签是HTML5中的一个核心元素,它允许...
在实际项目中,通常会创建一个通用的接口,通过函数参数指定标签类型(ID3v2或APEv2),然后解析对应的元数据。此外,为了提高用户体验,还应该考虑如何优雅地处理缺少标签或格式不正确的文件。 总结来说,处理MP3...
首先,ID3v1标签是最早被引入的标准,它位于MP3文件的末尾,包含有限的信息字段,如标题、艺术家、专辑、年份、曲目类型和评论。每个字段都有固定长度,总共占据128字节。ID3v1标签虽然简单易用,但不支持Unicode...
2. ** Mp3tag 功能**:除了清除ID标签,还支持编辑、导入导出标签信息,转换编码格式,重命名文件基于标签信息,以及获取在线音乐数据库(如Gracenote, MusicBrainz)的元数据来自动填充标签。 3. **批量处理**:...
根据提供的信息,我们可以深入探讨MP3编码的基本原理及其在音频压缩技术中的应用。MP3(MPEG Audio Layer III)是一种广泛使用的...通过对这些技术细节的理解,可以帮助我们更好地掌握MP3编码的工作原理和技术实现。
MP3是一种流行的数字音频编码和有损压缩格式,它的设计目的是大幅减少音频数据量的同时,保持高质量的声音播放效果。这种格式由德国埃尔朗根的Fraunhofer-Gesellschaft研究机构在1991年发明并标准化。 #### 二、MP3...
“utf-8”和“gb2312”标签分别指出了涉及的两种编码格式。 在压缩包子文件的文件名称列表中,“utf8TOgb2312”可能是这个转换程序的主程序或者配置文件,它的作用是从UTF-8编码的lrc文件转换为GB2312编码。运行这...
在音乐文件格式中,MP3是最为常见的音频文件类型之一,而MP3文件中的元数据主要通过ID3标签来存储,包括歌曲名称、艺术家、专辑、年份等信息。ID3标签分为两个主要版本:ID3V1和ID3V2,两者在结构和功能上有所不同。...
首先,理解MP3文件:MP3是一种广泛使用的数字音频编码格式,通过有损压缩技术减小文件大小,同时保持相对高质量的音质。其内部数据结构包含音频流、ID3标签等信息,以二进制形式存储。 其次,C语言16进制数组:在...
MP3帧可以包含多种类型的编码,如 Layer I, Layer II 或 Layer III(通常称为MP3的三种类型)。 "MPAFileStream.cpp"可能是处理MP3文件流的类,负责读取文件并按需提供帧数据。文件流处理允许程序逐块读取大文件,...
总的来说,"mpeg3编码器windows"和"L3Codecx"都是与在Windows系统上处理MP3音频编码相关的概念,涉及到音频压缩技术、编解码器软件以及可能的安装程序。理解这些知识点对于那些需要处理音频文件,尤其是希望将音频...
"libshine-fxp"是基于 Shine MP3编码器的一个版本,Shine是一款开源的、快速且高效的MP3编码器,它提供了多种质量设置以适应不同的应用场景。"fxp"可能表示“fixed-point”,强调该库已经过修改以适应定点计算。这...
- 压缩后的字符串可以通过`System.IO.File`类的`WriteAllBytes`方法保存为二进制文件,或者以文本形式保存编码和解码所需的哈夫曼树信息。 - 读取文件时,先解析保存的哈夫曼树信息重建哈夫曼树,然后解码二进制...
DELPHI MP3播放器是一种基于DELPHI编程语言开发的多媒体软件,它允许用户播放多种类型的音频文件,包括但不限于MP3格式。DELPHI,全称Borland Delphi,是一款强大的对象 Pascal 编程工具,以其高效的编译器和易用的...
【标签】"mp3"指的是MP3音频格式,这是一种广泛使用的数字音频编码标准,通过有损压缩技术减小文件大小,同时保持相对高质量的声音。"c语言"是编程领域基础且重要的语言,以其高效、灵活和广泛的应用范围著称。结合...
MP3通过熵编码(如 Huffman 编码)和预测编码(如MDCT,即离散余弦变换)来降低音频数据的冗余,实现高效压缩。 二、解析MP3文档 解析MP3文件时,首先需要读取文件头,获取文件的基本信息,如ID3标签(ID3v1或ID3v2...
MP3文件的结构遵循ID3标签标准,可以包含歌曲信息如艺术家、专辑和曲目标题。 3. **音频编码与解码**:音频编码是将原始的模拟音频信号转化为数字表示的过程,而解码则是相反的过程。在从Num转MP3的过程中,需要...
在这个过程中,jar包中的类和方法可能包括了读取AMR文件、解码AMR数据、使用特定的MP3编码算法(如LAME)编码数据,最后写入MP3文件的逻辑。开发者可以调用这些功能,通过编写简单的Java代码,实现批处理或交互式的...