用FFmpeg修改视频码率
广告
{{v.name}}
固定目标码率(Average Bitrate, ABR)。使用 -b:v 参数指定一个目标平均码率,代码如下
$ ffmpeg -i input.mp4 -b:v 2000k output.mp4
恒定质量(Constant Rate Factor, CRF)。使用 -crf 参数,其后跟随一个整数值。CRF值越小,质量越高,文件越大,代码如下
$ ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4
恒定比特率(Constant Bitrate, CBR)。通过同时指定目标码率 (-b:v)、最小码率 (-minrate)、最大码率 (-maxrate) 并配合缓冲区大小 (-bufsize) 来实现,通常要求 -minrate、-maxrate 和 -b:v 三者相等,代码如下
$ ffmpeg -i input.mp4 -b:v 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k output.m2v
二次编码(Two-Pass Encoding)。二次编码适用于对输出文件大小有精确要求的情况。
第一次编码:分析视频并生成日志文件,代码如下
$ ffmpeg -i input.mp4 -c:v libx264 -b:v 2000k -pass 1 -an -f null /dev/null
第二次编码:根据第一次分析的结果进行实际编码,代码如下
$ ffmpeg -i input.mp4 -c:v libx264 -b:v 2000k -pass 2 -c:a aac -b:a 128k output.mp4
可变比特率(Variable Bitrate, VBR)。设置缓冲区大小(-bufsize),编码器预设(-preset),配置文件(-profile:v),级别(-level:v),代码如下
$ ffmpeg -i input.mp4 -b:v 2000k -bufsize 4000k -preset veryslow -profile:v high -level:v 4.1 output.mp4