压缩文件可以极大减少文件的体积,节约存储空间,这对于文件传输尤为重要。通过 ffmepg,有好几个方法来压缩文件体积。
Note: 文件压缩的太厉害会让文件质量显著降低。
首先,对于音频文件,可以通过降低比特率(使用 -b:a 或 -ab):
ffmpeg -i audio_input.mp3 -ab 128k audio_output.mp3
ffmpeg -i audio_input.mp3 -b:a 192k audio_output.mp3
再次重申,一些常用的比特率有: 96k, 112k, 128k, 160k, 192k, 256k, 320k.值越大,文件所需要的体积就越大。
对于视频文件,选项就多了,一个简单的方法是通过降低视频比特率 (通过 -b:v):
ffmpeg -i video_input.mp4 -b:v 1000k -bufsize 1000k video_output.mp4
Note: 视频的比特率和音频是不同的(一般要大得多)。
你也可以使用 -crf 参数 (恒定质量因子). 较小的 crf 意味着较大的码率。同时使用 libx264 编码器也有助于减小文件体积。这里有个例子,压缩的不错,质量也不会显著变化:
ffmpeg -i video_input.mp4 -c:v libx264 -crf 28 video_output.mp4
crf 设置为 20 到 30 是最常见的,不过您也可以尝试一些其他的值。
降低帧率在有些情况下也能有效(不过这往往让视频看起来很卡):
ffmpeg -i video_input.mp4 -r 24 video_output.mp4
-r 指示了帧率 (这里是 24)。
你还可以通过压缩音频来降低视频文件的体积,比如设置为立体声或者降低比特率:
ffmpeg -i video_input.mp4 -c:v libx264 -ac 2 -c:a aac -strict -2 -b:a 128k -crf 28 video_output.mp4
Note: -strict -2 和 -ac 2 是来处理立体声部分的。