为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

MP3文件格式解析

2010-08-06 4页 pdf 125KB 102阅读

用户头像

is_888278

暂无简介

举报
MP3文件格式解析 Http://www.aybook.cn [俺要电子书] 更多文档资料请访问本站 Http://www.aybook.cn [俺要电子书] 更多文档资料请访问本站 MP3文件格式解析 MP3 文件数据由多个帧组成,帧是 MP3 文件最小组成单位。每个帧又由帧头、附加信息和声音数据组成。 每个帧播放时间是 0.026秒,其长度随位率的不同而不等。有些MP3文件末尾有些额外字节存放非声音数据的说 明信息。...
MP3文件格式解析
Http://www.aybook.cn [俺要电子书] 更多文档资料请访问本站 Http://www.aybook.cn [俺要电子书] 更多文档资料请访问本站 MP3文件格式解析 MP3 文件数据由多个帧组成,帧是 MP3 文件最小组成单位。每个帧又由帧头、附加信息和声音数据组成。 每个帧播放时间是 0.026秒,其长度随位率的不同而不等。有些MP3文件末尾有些额外字节存放非声音数据的说 明信息。MP3文件结构如图 1所。 帧头 … ID3附加 信息 声音 数据 128B4B 32B 210字节(44.1kHz,64bps) 第 2帧 第 1帧 图 1 MP3 文件结构 1.1 帧头格式 帧头长 4字节,对于固定位率的MP3文件,所有帧的帧头格式一样其数据结构如下: 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, *LPHEADER; 帧头 4字节使用说明见表 1。 MP3帧长取决于位率和频率,计算为: . mpeg1.0 layer1 : 帧长= (48000*bitrate)/sampling_freq + padding layer2&3: 帧长= (144000*bitrate)/sampling_freq + padding . mpeg2.0 layer1 : 帧长= (24000*bitrate)/sampling_freq + padding layer2&3 : 帧长= (72000*bitrate)/sampling_freq + padding 例如:位率为 64kbps,采样频率为 44.1kHz,padding(帧长调节)为 1时,帧长为 210字节。 帧头后面是可变长度的附加信息,对于标准的MP3文件来说,其长度是 32字节,紧接其后的是压缩的声音 数据,当解码器读到此处时就进行解码了。 表 1 MP3帧头字节使用说明 Http://www.aybook.cn [俺要电子书] 更多文档资料请访问本站 Http://www.aybook.cn [俺要电子书] 更多文档资料请访问本站 名称 位长 说 明 同步信息 11 所有位均为 1,第 1字节恒为 FF。 版本 2 00-MPEG 2.5 01-未定义 10-MPEG 2 11-MPEG 1 层 2 00-未定义 01-Layer 3 10-Layer 2 11-Layer 1 CRC校验 1 第 1、2 字 节 0-校验 1-不校验 位率 4 取样率,单位是 kbps,例如采用MPEG-1 Layer 3,64kbps是,值为 0101。 bits V1,L1 V1,L2 V1,L3 V2,L1 V2,L2 V2,L3 0000 free free free free free free 0001 32 32 32 32(32) 32(8) 8 (8) 0010 64 48 40 64(48) 48(16) 16 (16) 0011 96 56 48 96(56) 56(24) 24 (24) 0100 128 64 56 128(64) 64(32) 32 (32) 0101 160 80 64 160(80) 80(40) 64 (40) 0110 192 96 80 192(96) 96(48) 80 (48) 0111 224 112 96 224(112) 112(56) 56 (56) 1000 256 128 112 256(128) 128(64) 64 (64) 1001 288 160 128 288(144) 160(80) 128 (80) 1010 320 192 160 320(160) 192(96) 160 (96) 1011 352 224 192 352(176) 224(112) 112 (112) 1100 384 256 224 384(192) 256(128) 128 (128) 1101 416 320 256 416(224) 320(144) 256 (144) 1110 448 384 320 448(256) 384(160) 320 (160) 1111 bad bad bad bad bad bad V1 - MPEG 1 V2 - MPEG 2 and MPEG 2.5 L1 - Layer 1 L2 - Layer 2 L3 - Layer 3 "free" 表示位率可变 "bad" 表示不允许值 采样频率 2 采样频率,对于MPEG-1: 00-44.1kHz 01-48kHz 10-32kHz 11-未定义 对于MPEG-2: 00-22.05kHz 01-24kHz 10-16kHz 11-未定义 对于MPEG-2.5: 00-11.025kHz 01-12kHz 10-8kHz 11-未定义 帧长调节 1 用来调整文件头长度,0-无需调整,1-调整,具体调整计算方法见下文。 保留字 1 第 3 字 节 没有使用。 声道模式 2 表示声道, 00-立体声 Stereo 01-Joint Stereo 10-双声道 11-单声道 扩充模式 2 当声道模式为 01是才使用。 Value 强度立体声 MS立体声 00 off off 01 on off 10 off on 11 on on 版权 1 文件是否合法,0-不合法 1-合法 原版标志 1 是否原版, 0-非原版 1-原版 强调方式 2 第 4 字 节 用于声音经降噪压缩后再补偿的分类,很少用到,今后也可能不会用。 00-未定义 01-50/15ms 10-保留 11-CCITT J.17 对于固定位率(CBR,Constant Bitrate)的 MP3 文件,并不是所有的帧都是等长的,有的帧可能多一个或几个字 节。还有一种可变位率(VBR, Variable Bitrate)的MP3文件,是为了使MP3文件长度最小同时又保证声音质量,与 CBR 文件相比,除了第一帧不同外,其余的都一样。VBR的第一帧不包含声音数据,其长度是 156个字节,用来存放标准 的声音帧头(4字节)、VBR文件标识、帧数、文件字节数等信息,具体结构说明见表 2。 1.2 ID3标准 MP3帧头中除了存储一些象 private、copyright、original的简单音乐说明信息以外,没有考虑存放歌名、作者、专 辑名、年份等复杂信息,而这些信息在MP3应用中非常必要。1996年,FricKemp在“Studio 3”项目中提出了在MP3 文件尾增加一块用于存放歌曲的说明信息,形成了 ID3标准,至今已制定出 ID3 V1.0,V1.1,V2.0,V2.3和 V2.4标准。 版本越高,记录的相关信息就越丰富详尽。 表 2 VBR文件第一帧结构 字 节 说 明 1-4 与 CBR相同的标准声音帧头 Http://www.aybook.cn [俺要电子书] 更多文档资料请访问本站 Http://www.aybook.cn [俺要电子书] 更多文档资料请访问本站 存放 VBR文件标识“Xing”(58 69 6E 67),此标识具体位置视采用的MPEG标准和声道模式而 定。标识的前后字节没有使用。 36-39 MPEG-1和非单声道(常见) 21-24 MPEG-1和单声道 21-24 MPEG-2和非单声道 5-40 13-16 MPEG-2和单声道 41-44 标志,说明是否存储了帧数、文件长度、目录表和 VBR规模信息,如果存储了,则 01 02 04 08。 45-48 帧数(包括第一帧) 49-52 文件长度 53-152 目录表,用来按时间进行字节定位。 153-156 VBR规模,用于位率变动 ID3 V1.0标准并不周全,存放的信息少,无法存放歌词,无法录入专辑封面、图片等。V2.0是一个相当完备的标 准,但给编写软件带来困难,虽然赞成此格式的人很多,在软件中真正实现的却极少。绝大多数MP3仍使用 ID3 V1.0 标准。此标准是将MP3文件尾的最后 128个字节用来存放 ID3信息,这 128个字节使用说明见表 3。 表 3 ID3 V1.0文件尾说明 字节 长度 (字节) 说 明 1-3 3 存放“TAG”字符,表示 ID3 V1.0标准,紧接其后的是歌曲信息。 4-33 30 歌名 34-63 30 作者 64-93 30 专辑名 94-97 4 年份 98-127 30 附注 128 1 MP3音乐类别,共 147种。 表 4 MP3音乐类别: 0 'Blues' 20 'Alternative' 40 'AlternRock' 60 'Top 40' 1 'Classic Rock' 21 'Ska' 41 'Bass' 61 'Christian Rap' 2 'Country' 22 'Death Metal' 42 'Soul' 62 'Pop/Funk' 3 'Dance' 23 'Pranks' 43 'Punk' 63 'Jungle' 4 'Disco' 24 'Soundtrack' 44 'Space' 64 'Native American' 5 'Funk' 25 'Euro-Techno' 45 'Meditative' 65 'Cabaret' 6 'Grunge' 26 'Ambient' 46 'Instrumental Pop' 66 'New Wave' 7 'Hip-Hop' 27 'Trip-Hop' 47 'Instrumental Rock' 67 'Psychadelic' 8 'Jazz' 28 'Vocal' 48 'Ethnic' 68 'Rave' 9 'Metal' 29 'Jazz+Funk' 49 'Gothic' 69 'Showtunes' 10 'New Age' 30 'Fusion' 50 'Darkwave' 70 'Trailer' 11 'Oldies' 31 'Trance' 51 'Techno-Industrial' 71 'Lo-Fi' 12 'Other' 32 'Classical' 52 'Electronic' 72 'Tribal' 13 'Pop' 33 'Instrumental' 53 'Pop-Folk' 73 'Acid Punk' 14 'R&B' 34 'Acid' 54 'Eurodance' 74 'Acid Jazz' 15 'Rap' 35 'House' 55 'Dream' 75 'Polka' 16 'Reggae' 36 'Game' 56 'Southern Rock' 76 'Retro' 17 'Rock' 37 'Sound Clip' 57 'Comedy' 77 'Musical' 18 'Techno' 38 'Gospel' 58 'Cult' 78 'Rock & Roll' 19 'Industrial' 39 'Noise' 59 'Gangsta' 79 'Hard Rock' 80 Folk 81 Folk/Rock 82 National Folk 83 Swing 84 Fast-Fusion 85 Bebob 86 Latin 87 Revival 88 Celtic 89 Bluegrass 90 Advantgarde 91 Gothic Rock 92 Progressive Rock 93 Psychadelic Rock 94 Symphonic Rock 95 Slow Rock 96 Big Band 97 Chorus 98 Easy Listening 99 Acoustic 100 Humour 101 Speech 102 Chanson 103 Opera Http://www.aybook.cn [俺要电子书] 更多文档资料请访问本站 Http://www.aybook.cn [俺要电子书] 更多文档资料请访问本站 104 Chamber Music 105 Sonata 106 Symphony 107 Booty Bass 108 Primus 109 Porn Groove 110 Satire 111 Slow Jam 112 Club 113 Tango 114 Samba 115 Folklore Any other value should be considered as 'Unknown' 1.3 文件实例 在 VC++中打开一个名为 test.mp3文件,其内容如下: 000000 FF FB 52 8C 00 00 01 49 09 C5 05 24 60 00 2A C1 000010 19 40 A6 00 00 05 96 41 34 18 20 80 08 26 48 29 000020 83 04 00 01 61 41 40 50 10 04 00 C1 21 41 50 64 …… 0000D0 FE FF FB 52 8C 11 80 01 EE 90 65 6E 08 20 02 30 0000E0 32 0C CD C0 04 00 46 16 41 89 B8 01 00 08 36 48 0000F0 33 B7 00 00 01 02 FF FF FF F4 E1 2F FF FF FF FF …… 0001A0 DF FF FF FB 52 8C 12 00 01 FE 90 58 6E 09 A0 02 0001B0 33 B0 CA 85 E1 50 01 45 F6 19 61 BC 26 80 28 7C 0001C0 05 AC B4 20 28 94 FF FF FF FF FF FF FF FF FF FF …… 001390 7F FF FF FF FD 4E 00 54 41 47 54 45 53 54 00 00 0013A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …… 0013F0 00 00 00 00 04 19 14 03 00 00 00 00 00 00 00 00 001400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 001410 00 00 00 00 00 00 4E 该文件长度 1416H(5.142K),帧头为:FF FB 52 8C,转换成二进制为: 11111111 11111011 01010010 10001100 对照表 1可知,test.mp3帧头信息见表 5。 表 5 test.mp3文件帧头信息 名称 位值 说 明 同步信息 11111111111 第 1字节恒为 FF,11位均为 1。 版本 11 MPEG 1 层 01 Layer 3 CRC校验 1 不校验 位率 0101 64kbps 频率 00 44.1kHz 帧长调节 1 调整,帧长是 210字节。 保留字 0 没有使用。 声道模式 10 双声道 扩充模式 00 未使用。 版权 1 合法 原版标志 1 原版 强调方式 00 未定义 第 1397H开始的三个字节是 54 41 47,存放的是字符“TAG”,表示此文件有 ID3 V1.0信息。 139AH开始的 30个字节存放歌名,前 4个非 00字节是 54 45 53 54,表示“TEST”; 13F4H开始的 4个字节是 04 19 14 03,存放年份“04/25/2003”; 最后 1个字节是 4E,表示音乐类别,代号为 78,即“Rock&Roll”; 其它字节均为 00,未存储信息。
/
本文档为【MP3文件格式解析】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索