概述
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会将该文件的85%用192kbps固定编码,然后对剩余15%进行动态优化:复杂部分用高于192kbps 来编码、简单部分用低于192kbps来编码。与192kbps CBR相比,192kbps ABR在文件大小上相差不多,音质却提高不少。ABR编码在速度上是VBR编码的2到3倍,在128-256kbps范围内质量要好于CBR。
可以做为 VBR和CBR的一种折衷选择。一般情况下,很少碰到这种编码方式的文件
2 FFMPEG编码
注:libmp3lame 在使用-q:a时 ,CBR设置-b:a将无效。 如果您从FFmpeg Wiki查看MP3编码指南,则会发现-q:a的可能值及其相应的平均比特率。
/* rate control */
if(avctx->flags & CODEC_FLAG_QSCALE){ //VBR
lame_set_VBR(s->gfp,vbr_default);
lame_set_VBR_quality(s->gfp,avctx->global_quality /(float)FF_QP2LAMBDA);
}else{
if(avctx->bit_rate){
if(s->abr){
lame_set_VBR(s->gfp,vbr_abr);
lame_set_VBR_mean_bitrate_kbps(s->gfp,avctx->bit_rate / 1000);
}else{
lame_set_brate(s->gfp,avctx->bit_rate / 1000);
}
}
}
2.1 可变码率VBR
ffmpeg -i sample.wav -vn -c:a libmp3lame -aq 4 -ac 2 sample.mp3
2.2 恒定码率CBR
ffmpeg -i sample.wav -vn -c:a libmp3lame -b:a 192k -ac 2 sample.mp3
最后
以上就是眼睛大衬衫为你收集整理的MP3比特率编码模式的全部内容,希望文章能够帮你解决MP3比特率编码模式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复