使用ffmpeg处理mp3文件

ffmpeg处理mp3文件

MP3比特率编码模式

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

CBR 固定比特率

CBR是constant bitrate的缩写,中文意思是固定比特率。
对于比特率为128 kbps的CBR MP3歌曲来说,歌曲的前128kb描述的是第一秒的声音,第二个128 Kb描述的是第二秒的声音……如果这首歌唱完要640秒钟,那么这首歌的大小就是128kb × 640 = 80Mb = 10MB。所谓128kbps就是128kb每秒的意思。
细心的你会发现,这种编码方式压缩出来的体积会很大,因为码率都是固定的。当然,音质相对于其他两种,会有些优势,虽然这个优势可能微乎其微。

VBR 动态比特率

VBR(Variable Bitrate)动态比特率。也就是没有固定的比特率,压缩软件在压缩时根据音频数据即时确定使用什么比特率。 简单理解就是,歌曲在细节表现比较丰富的时间点,比特率此时会比较高,其他情况下会比较低,这样就兼顾了音质和体积大小。举个例子:在歌曲的开始,一个人独唱,声音比较简单,我们就用64kb来描述一秒种内的声音;在歌曲的高潮,大家合唱,声音比较复杂,我们就用256kb来描述一秒种内的声音。

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。 在容量要求固定的情况下,适用这种方式. 比如压缩后要刻录到光盘上,光盘的容量是固定的,可以算出平均值, 然后根据这个平均值操作.

使用 ffmpeg 压缩

可变码率 VBR

1
2
3
4
5
6
7
8
ffmpeg -i sample.wav -vn -c:a libmp3lame -aq 4 -ac 2 sample.mp3

参数说明:  
-i 输入音频文件
-vn 不处理视频 
-c:a 指定音频编码器 copy、mp3(libmp3lame)、aac、
-aq 质量  数字越小,编码音质约好,体积越大
-ac 声道数

恒定码率 CBR

1
2
3
4
5
6
7
ffmpeg -i sample.wav -vn -c:a libmp3lame -b:a 192k -ac 2 sample.mp3

-i 输入音频文件
-vn 不处理视频 
-c:a 指定音频编码器 copy、mp3(libmp3lame)、aac、
-b:a 固定编码率
-ac 声道数

metadata

1
2
3
ffmpeg -i sample.wav -map_metadata -1 -vn -c:a libmp3lame -aq 8 -ac 2 sample.mp3

-map_metadata -1  清除metadata
记录并分享
Built with Hugo
主题 StackJimmy 设计