MP3比特率编码模式

1 MP3比特率

mp3的比特率一般有三种,分别是VBR,ABR和CBR。

1.1 CBR

CBR是constant bitrate的缩写,中文意思是固定比特率。

对于比特率为128 kbps的CBR MP3歌曲来说,歌曲的前128kb描述的是第一秒的声音,第二个128 Kb描述的是第二秒的声音……如果这首歌唱完要640秒钟,那么这首歌的大小就是128kb × 640 = 80Mb = 10MB。所谓128kbps就是128kb每秒的意思。

细心的你会发现,这种编码方式压缩出来的体积会很大,因为码率都是固定的。当然,音质相对于其他两种,会有些优势,虽然这个优势可能微乎其微。

1.2 VBR

VBR(Variable Bitrate)动态比特率。也就是没有固定的比特率,压缩软件在压缩时根据音频数据即时确定使用什么比特率。

简单理解就是,歌曲在细节表现比较丰富的时间点,比特率此时会比较高,其他情况下会比较低,这样就兼顾了音质和体积大小。举个例子:在歌曲的开始,一个人独唱,声音比较简单,我们就用64kb来描述一秒种内的声音;在歌曲的高潮,大家合唱,声音比较复杂,我们就用256kb来描述一秒种内的声音。

1.3 ABR

ABR(Average Bitrate)平均比特率,是VBR的一种插值参数。

举例来说,当指定用192kbps ABR对一段wav文件进行编码时,Lame会

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Pazera Free MP4 to MP3 Converter 中文版可以将 MP4,M4A(iTunes 音频),M4B(有声读物),M4R(铃声)和 AAC 文件转换为 MP3 或 WAV。通过提取音轨,而不会损失音质。根据源文件中存储的章节将 M4B 有声读物拆分为 MP3 文件等等。 免费 MP4 转 MP3 工具 Pazera Free MP4 to MP3 Converter 中文版免费 MP4 转 MP3 工具 Pazera Free MP4 to MP3 Converter 中文版 Pazera Free MP4 to MP3 Converter 中文版允许您根据章节(通常在M4B文件中找到)分割输入文件。默认情况下,元数据是从源文件中复制的,但是用户可以添加自己的标签。 要将音频流转换为 MP3,应用程序使用最新版本的 LAME 编码器。该程序支持以恒定比 -CBR,平均比 -ABR 和可变比 -VBR(基于LAME预设)进行编码。 在默认设置下,该应用程序将文件以恒定比(CBR)转换为 MP3,并自动选择所有编码参数,以保留原始音频质量。 该程序的基本操作非常简单:只需将 MP4,M4A,M4B,M4R 或 AAC 文件拖放到主窗口中,在配置文件列表中选择默认编码器设置,然后单击转换按钮。 更高级的用户可以自定义许多编码参数:音频比,比模式,音频通道数,音频采样频,音量,时间范围等。 最重要的功能 将 MP4,M4A,M4B,M4R 和 AAC 文件转换为 MP3 或 WAV。 可以从源文件复制(提取)音轨,而不会造成质量损失。 按源文件中存储的章节拆分输出文件。 完全可配置的文件列表(表)显示很多有用的信息:持续时间,音频流大小,音频编解码器,音频比,艺术家,标题,章节标题等等。 使用最新版本的LAME编码器进行 MP3 压缩。 支持所有LAME编码器预设。 从源文件复制元数据,或添加用户元数据。 许多预定义的转换配置文件。可以将您自己的设置保存到INI文件中。 自定义编码参数的能力:比模式(CBR,ABR,VBR),音频比,音频采样频,音频通道数,音量,时间范围。 在“文件属性”窗口中显示有关源文件的详细技术信息。 将编码器命令保存到BAT文件的能力。 通过拖放将文件添加到文件列表。 该程序是可移植的:它不使用系统注册表,并且所有设置都存储在INI文件中。因此,可以从便携式设备(如笔式驱动器,可移动驱动器)运行程序。 该程序具有对多种语言的内置支持。当前版本支持保加利亚语,中文,捷克语,英语,芬兰语(不完整),法语,德语,希腊语,匈牙利语,意大利语,日语,波兰语,葡萄牙语(BR),俄语,塞尔维亚语,西班牙语,瑞典语,土耳其语。 100% 免费软件!- 用于私人和商业用途。该程序不需要注册,没有内置限制。 该程序有 32 位和 64位版本。64 位版本的转换过程要快几到20%。
Tag&Rename 中文多语别版是一款方便的音乐文件管理工具。利用 Tag&Rename 你可以快速,容易地使用嵌入式的标签数据重命名你的音乐收藏,写入新的或编辑现存的标签信息,基于文件名产生标签信息,从freedb/amazon等服务器获得歌曲信息。Tag&Rename 现在支持mp3 (ID3v1, ID3v2.2, ID3v2.3 and ID3v2.4 tags), MusePack mpc/mp+ (APEv1, APEv2 and ID3v1 tags), Windows Media wma, asf和wmv文件, Ogg Vorbis和Flac (vorbis注释), Apple iTunes 和 iPod aac (m4a) 文件包括mp4, 无损的m4a和保护的m4p文件, 大多数无损编解码包括monkey’s audio, wav pack, optim frog, flac, Apple 和 Windows Media无损格式 。 音乐文件管理工具 Tag&Rename 中文版音乐文件管理工具 Tag&Rename 中文版 强大的标签编辑功能 在 Tag&Rename 程序中,初始状态下会将文件夹定位于“我的音乐”目录。而后选择指定的MP3/VQF文件,按F5键即可调出标签编辑器,在此除了可设置标题、艺术家、专辑等常规标签信息外,还可指定音轨、输入编码信息、导入歌词、按喜好设置等级、自定义PCDJ结构(仅适用于MP3)… 此外,我们还可在“Multi file tag editor”标签页中利用多文件标签编辑器,批量更改多个选定文件的年份、注释、流派及艺术家等信息。如果点击“Edit all supported tag fields”按钮,可在弹出对话框中编辑所有支持的标签信息栏,其中囊括了我们以上所提及的所有针对单一文件的标签信息(ID3)。 从文件名获取标签 在 Tag&Rename 程序中,我们查看“Get gags from file name”标签页,在“File name mask”选项中点击“Mask editor”按钮,在弹出对话框中设置文件名掩码。例如,笔者希望在文件名中依次显示“名称-艺术家-专辑”就设置为“2%-1%-3%”,大家可参看“Get gags from file name”标签页“File name variables”项目中显示的变量参数。当调出程序选项后,还可在“File rename strings”标签页中设置文件重命名的替代字符。 快捷查找文件 当按Shift+F8激活过滤视图后,查看“Filer by”下拉列表,在其中可选择艺术家、专辑、流派、无标签、注释、低比等条件,而后按需输入关键字即可实际快捷查找文件的目的。其中如果我们直接选择过滤无标签文件,则可针对所有显示结果中的文件批量化设置标签。 标签同步 Tag&Rename支持按向导同步所有选择文件的标签信息ID3v1复制信息至ID3v2或互换;也支持当标签已存在时,选择不同的写入模式。 多样化文件显示模式 可以选择查看所有支持格式的文件,也可分别按需选择ID3v1模式、ID3v2模式、Wma模式或Ogg模式等。 导出库文件 对于当前音乐库中已编辑完毕的标签的音频文件,我们可在输入向导中,选择输出模板,再选择预输出的文件信息(包括文件路径、比及播放时间等)与标签信息,而后指定输出路径与文件,存储即可。 评测报告:Tag&Rename的优势集中体现在MP3标签编辑方面,尤其是批量化处理功能远比同类软件细化得多,其它各项辅助功能也大都是为它服务,与其有关联的。此外,利用该程序还可通过网络获取专辑标题。不过,程序不是很易于上手,而且也存着一些BUG,偶尔在执行联网操作后可能出现不响应的问题。
解析MP3音频格式 一、概述 MP3 文件是由帧(frame)构成的,帧是MP3 文件最小的组成单位。MP3 的全称应为MPEG1 Layer-3 音频文件,MPEG(Moving Picture 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,也就是说,一分钟CD 音质的音乐,未经压缩需要10MB的存储空间,而经过MP3 压缩编码后只有1MB 左右。不过MP3 对音频信号采用的是有损压缩方式,为了降低声音失真度,MP3 采取了“感官编码技术”,即编码时先对音频文件进行频谱分析,然后用过滤器滤掉噪音电平,接着通过量化的方式将剩下的每一位打散排列,最后形成具有较高压缩比的MP3 文件,并使压缩后的文件在回放时能够达到比较接近原音源的声音效果。 名词解释: 比是指每秒传送的比(bit)数。单位为 bps(Bit Per Second),比越高,传送的数据越大。 比表示经过编码(压缩)后的音、视频数据每秒钟需要用多少个比来表示,而比就是二进制里面最小的单位,要么是0,要么是1。比与音、视频压缩的关系,简单的说就是比越高,音、视频的质量就越好,但编码后的文件就越大;如果比越少则情况刚好相反。 采样(也称为采样速度或者采样频)定义了每秒从连续信号中提取并组成离散信号的采样个数,单位用赫兹(Hz)来表示。采样频的倒数是采样周期(也称为采样时间),它表示采样之间的时间间隔。这里要注意不要将采样与位速相混淆。 二、MP3文件整体结构 MP3文件大体分为三部分:TAG_V2(ID3V2),Frame, TAG_V1(ID3V1) ID3V2标签帧 ID3v2在文件头,以字符串“ID3”为标志,包含了演唱者,作曲,专辑等信息,长度不固定,扩展了ID3V1的信息量。 音频数据帧 一系列的帧,个数由文件大小和帧长决定,每个FRAME的长度可能不固定,也可能固定,由位bitrate决定,每个FRAME又分为帧头和数据实体两部分,帧头记录了mp3的位,采样,版本等信息,每个帧之间相互独立 ID3V1标签帧 ID3v1在文件结尾,以字符串“TAG”为标记,其长度是固定的128个字节,包含了演唱者、歌名、专辑、年份等信息。 三、MP3结构具体分析 1.ID3V2标签 每个ID3V2.3 的标签都一个标签头和若干个标签帧或一个扩展标签头组成。关于曲目的信息如标题、作者等都存放在不同的标签帧中,扩展标签头和标签帧并不是必要的,但每个标签至少要有一个标签帧。标签头和标签帧一起顺序存放在MP3 文件的首部。 标签头 在文件的首部顺序记录10 个字节的ID3V2.3 的头部。数据结构如下: char Header[3]; /*必须为"ID3"否则认为标签不存在*/ char Ver; /*版本号ID3V2.3 就记录3*/ char Revision; /*副版本号此版本记录为0*/ char Flag; /*存放标志的字节,这个版本只定义了三位,稍后详细解说*/ char Size[4]; /*标签大小,包括标签头的10 个字节和所有的标签帧的大小*/ 注:最后4个字节表示ID3V2标签的大小,在实际寻找首帧的过程中,我发现大部分的mp3文件的标签大小是包含标签头的,但有的又是不包含的,可能是某些mp3编码器写标签的BUG,所以为了兼容只好认为其是包含的,如果按大小找不到,再向后搜索,直到找到首帧为止。 计算ID3V2标签帧的大小: 最后四个字节表示,但每个字节只用7 位,最高位不使用恒为0。所以格式如下: 0xxxxxxx 0xxxxxxx 0xxxxxxx 0xxxxxxx 计算大小时要将0 去掉,得到一个28 位的二进制数,就是标签大小(不懂为什么要这样做),计算公式如 下: int ID3V2_Size; ID3V2_Size = (Size[0]&0x7F;)*0x200000 +(Size[1]&0x7F;)*0x4000 +(Size[2]&0x7F;)*0x80 +(Size[3]&0x7F;) (2) 标签帧 每个标签帧都有一个10 个字节的帧头和至少一个字节的不固定长度的内容组成。它们也是顺序存放在文件中,和标签头和其他的标签帧也没有殊的字符分隔。得到一个完整的帧的内容只有从帧头中的到内容大小后才能读出,读取时要注意大小,不要将其他帧的内容或帧头读入。 一般我们从标签头中获取信息计算出整个ID3V2标签的大小即可,对于ID3V2的标签帧就不再仔细分析。 2.音频数据 数据帧往往有多个,至于有多少,由文件大小和帧大小来决定。每个帧都有一个四字节长的帧头,接下来可能有两个字节的CRC校验,其存在由帧头中的具体信息决定。接着就是帧的实体数据,也就是MAIN_DATA了。 (1)音频数据帧的帧头 格式如下: AAAAAAAA AAABBCCD EEEEFFGH IIJJKLMM 符号 长度(bit) 位置(bit) 描述 A 11 (31~21) 帧同步(所有位置1) B 2 (20~19) MPEG 音频版本ID 00 – MPEG 2.5 01 – 保留 10 – MPEG 2 (ISO/IEC 13818-3) 11 – MPEG 1 (ISO/IEC 11172-3) C 2 (18~17) Layer描述 00 - 保留 01 - Layer III 10 - Layer II 11 - Layer I D 1 (16) 校验位(0 - 紧跟帧头后有16位即2个字节用作CRC校验1 - 没有校验) E 4 (15~12) 比(位)(见比索引表) F 2 (11~10) 采样(见采样索引表) G 1 (9) 填充位(填充用来达到正确的比。) 0 – 没有填充 1 – 填充了一个额外的空位 H 1 (8) 私有bit,可以用来做殊应用。例如可以用来触发应用程序的殊事件。 I 2 (7~6) 声道 00 立体声 01 联合立体声(立体声) 10 双声道(立体声) 11 单声道(单声) J 2 (5~4) 扩展模式(仅在联合立体声时有效) 扩展模式用来连接对立体声效果无用的信息,来减少所需的资源。这两个位在联合立体声模式下有编码器动态指定。 K 1 (3) 版权 0无版权 1有版权 L 1 (2) 原创 0 原创拷贝 1 原创 M 2 (1) 强调 00 - 无 01 - 50/15 ms 10 - 保留 11 - CCIT J.17 【帧头信息表】 索引值 MPEG1 MPEG2&MPEG2;.5 Layer1 Layer2 Layer3 Layer1 Layer2&3 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 Bad 【比索引表】 Bits MPEG1 MPEG2 MPEG3 00 44100 22050 11025 01 48000 24000 12000 10 32000 16000 8000 11 保留 【采样索引表】 (2)如何计算音频数据帧长度 我们首先区分两个术语:帧大小和帧长度。帧大小即每帧采样数表示一帧中采样的个数,这是恒定值。其值入下表所示 MPEG1 MPEG2 MPEG2.5 Layer1 384 384 384 Layer2 1152 1152 1152 Layer3 1152 576 576 【每帧采【每帧采样数表】 帧长度是压缩时每一帧的长度,包括帧头。它将填充的空位也计算在内。LayerI的一个空位长4字节,LayerII和LayerIII的空位是1字节。当读取MPEG文件时必须计算该值以便找到相邻的帧。 注意:因为有填充和比变换,帧长度可能变化。 从头中读取比,采样频和填充, LyaerI使用公式: 帧长度(字节) = 每帧采样数 / 采样频(HZ) * 比(bps)/ 8 +填充 * 4 LyerII和LyaerIII使用公式: 帧长度(字节)= 每帧采样数 / 采样频(HZ) * 比(bps)/ 8 + 填充 例: LayerIII 比 128000,采样频 44100,填充0 =〉帧大小 417字节 (3)计算每帧的持续时间 之前看了一些文章都说mp3的一帧的持续时间是26ms,结果在实际程序的编写中发现无法正确按时间定位到帧,然后又查了一些文章才知道,所谓26ms一帧只是针对MPEG1 Layer III而且采样为44.1KHz来说是对的,但mp3文件并不都是如此,其实这个时间也是可以通过计算来获得,下面给出计算公式 每帧持续时间(秒) = 每帧采样数 / 采样频(HZ) 可以这么理解:每帧采用数就是要采取的总数,采样就是采取的速度,相除 就得到时间。 这样通过计算可知 MPEG1 Layer III 采样为44.1KHz的一帧持续时间为26.12...不是整数,不过我们权且认为它就是26毫秒吧。 如果是MPEG2 Layer III 采样为16KHz的话那一帧要持续36毫秒,这个相差还是蛮大的,所以还是应该通过计算来获的,当然可以按MPEG版本,层数和采样来建一个表,这样直接查表就可以知道时间了。 3.ID3V1标签 ID3v1标签用来描述MPEG音频文件。包含艺术家,标题,唱片集,发布年代和流派。另外还有额外的注释空间。位于音频文件的最后固定为128字节。可以读取该文件的最后这128字节获得标签。以最后128个字节的头三个字节为“TAG”作为有ID3V1的判断依据。 结构如下: AAABBBBB BBBBBBBB BBBBBBBB BBBBBBBB BCCCCCCC CCCCCCCC CCCCCCCC CCCCCCCD DDDDDDDD DDDDDDDD DDDDDDDD DDDDDEEE EFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFG 符号 长度(byte) 位置 描述 A 3 (0~2) 标签标志。如果存在标签并且正确的话,必须包含'TAG'。 B 30 (3~32) 标题 C 30 (33~62) 艺术家 D 30 (63~92) 唱片集 E 4 (93~96) 年代 F 30 (97~126) 注释 G 1 (127) 流派 有了上述的这些信息,我们就可以自己写代码,从MP3文件中抓取信息以及修改文件名了。但是,如果真的想写一个播放软件,还是需要读它的数据帧,并进行解码。 四、解析方法 当你想读取MPEG文件的信息时,解析前三个字节,判断是否有ID3V2标签,有则根据上面的方法算出ID3V2标签的总大小,这样就找到了音频数据帧的第一帧,读取它的头信息,获取比、采样MPEG版本号、Layer描述号等信息,根据上面提供的方法算出每帧的长度和每帧持续时间,对于定比的其它帧是相同的,也就是说解析第一帧就达到了目的。但这也不是所有情况。变比MPEG文件使用使用所谓比变换,也就是说每一帧的比依照具体内容变化。这时就需要你每一帧都解析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

边陲码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值