程序人生 A log of my life

文件压缩

开发过程中经常需要对一些资源文件压缩,已减小文件体积,这里记录一二。

mp3

用ffmpeg就可以对mp3进行压缩了,最常见的cbr,vbr模式,ffmpeg都支持,二者质量的参数不一样,对于cbr,直接使用 -b:a 指定比特率就可以了,可选8, 16, 24, 32, 40, 48, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320,后面价格k就可以了,对于vbr,一共有10个质量等级,从-q:a 0到-q:a 10, 下面是两个例子:

ffmpeg -i input.mp3 -q:a 10 output.mp3
ffmpeg -i input.mp3 -b:a 16k output.mp3

我的测试结果,对于人声文件,我能结受的最低质量就是 -q:a 10和-b:a 16k,-q:a 10产生的平均比特率大约20k,所以要想得到最小的文件,我通常使用-b:a 16k,虽然-b:a 8k可以再减小一半大小,但质量已经明显不可接受了。最后给出ffmpge的官网说明

另一个常见的用来减小文件的手段是crop,就是掐头去尾,使用ffmpeg也很简单,下面是从1分10秒点2截到1分30秒的例子:

ffmpeg -i input.mp3 -ss 1:10.2 -to 1:30 -b:a 16k output.mp3

如果是截取一定长度,用-t替代-to就可以了。

mp4

用ffmpeg也可以压缩视频文件到h265,参数比较复杂,用封装的一个h265ize就简单一些,主要是两个参数:-q控制质量,-m控制模式,这两个参数组合可以得到很多用法,但是似乎不是线性的变化,我实际用h264视频来压缩成h265,用-m fast和-m ultrafast,文件大小基本都没有改善,且速度其慢,fast模式甚至比播放速度还要慢。(i7-3632qm)

jpg/png

jpg的算法里,mozilla有个很多的算法。但是简单的话,用这个就可以了。