产品帮助中心
欢迎来到简鹿技术支持中心,我们可以为您提供哪些帮助?

MP4 视频体积太大?用 FFmpeg 指定码率一键压缩理小

时间:2026-10-29 作者:小鹿 来源:简鹿办公
简鹿视频格式转换器
官方正版
纯净安全
软件评分:
万能视频转换好吗?快来试试这款简鹿视频格式转换器是一款全方位视频转换工具,支持多种音视频格式之间的快速转换,满足您不同的视频编辑和播放需求。
Win下载 Mac下载

在视频处理工作流中,码率往往是决定文件体积、画质和传输成本的关键因素。FFmpeg 提供了非常灵活的码率控制能力,既可以指定平均码率,也可以限制最大码率,甚至可以实现接近恒定码率的输出。

FFmpeg 压缩视频指定码率

不过,实际压缩时如果只写 -b:v 2000k,并不一定能得到最理想的体积和画质,还需要结合编码器、音频码率、分辨率、预设值以及码率缓冲参数一起调整。

一、先搞清楚码率、体积和时长是什么关系

码率的本质是“每秒视频占用的数据量”。粗略计算时,可以用下面这个公式:


码率 ≈ 文件大小 × 8 ÷ 视频时长


例如一个 100MB、时长 60 秒的视频,总码率约为:100 × 8 ÷ 60 ≈ 13.3 Mbps


如果音频码率固定为 128kbps,那么视频码率大约需要减去音频部分。实际工程中常用 128kbps 作为 AAC 音频码率,既能兼顾音质,也便于计算。


需要注意的是,FFmpeg 中的码率控制并不是“绝对精确的文件大小控制器”。即使指定了目标码率,最终体积仍可能有一定偏差。如果对文件大小要求非常严格,建议配合双遍编码或更严格的码率上限参数使用。

二、最基础的指定码率命令

如果只是想把视频码率降低,可以使用 -b:v 直接指定视频码率:

ffmpeg -i input.mp4 -c:v libx264 -b:v 2000k -c:a aac -b:a 128k output.mp4

FFmpeg 压缩视频指定码率方式一

其中:

-i input.mp4:输入文件

-c:v libx264:使用 H.264 编码器,兼容性较好

-b:v 2000k:视频目标码率 2000kbps

-c:a aac -b:a 128k:音频使用 AAC,码率 128kbps

output.mp4:输出文件

这条命令适合快速压缩高码率视频,例如把相机拍摄的原始视频压成适合上传、备份或二次分发的版本。

三、平均码率、最大码率和缓冲区

只写 -b:v 时,FFmpeg 通常会按平均码率进行控制。也就是说,复杂画面可能暂时使用更高码率,简单画面则使用更低码率。


如果希望码率波动不要太大,可以加上 -maxrate 和 -bufsize:

ffmpeg -i input.mp4 -c:v libx264 -b:v 2000k -maxrate 2500k -bufsize 4000k -c:a aac -b:a 128k output.mp4

FFmpeg 压缩视频指定码率方式二

-b:v 2000k:目标平均码率

-maxrate 2500k:限制最高瞬时码率

-bufsize 4000k:码率控制缓冲区,影响码率波动范围

-bufsize 可以理解为编码器用来平衡码率波动的“缓冲池”。缓冲区过小,可能导致画质不稳定;缓冲区过大,则可能降低对码率峰值的限制效果。

四、需要严格限制体积时,使用双遍编码

如果希望输出文件更接近目标体积,推荐使用双遍编码。第一遍分析视频内容,第二遍根据分析结果分配码率。


Windows 下示例:

ffmpeg -i input.mp4 -c:v libx264 -b:v 2000k -pass 1 -an -f mp4 NUL

ffmpeg -i input.mp4 -c:v libx264 -b:v 2000k -pass 2 -c:a aac -b:a 128k output.mp4


Linux/macOS 下可将 NUL 替换为 /dev/null。

双遍编码通常比单遍编码更慢,但在目标码率明确、文件体积要求严格时效果更好。比如需要把视频控制在某个平台上传限制内,或者批量导出统一体积的素材时,双遍编码更可靠。

五、指定码率和 CRF 如何选择?

FFmpeg 中常见的两种思路是:

指定码率:使用 -b:v,适合有明确体积或带宽限制的场景。

指定质量:使用 -crf,适合更关注画质、对体积没有严格限制的场景。


CRF 示例:

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k output.mp4

FFmpeg 压缩视频指定码率方式三

CRF 取值范围是 0–51,默认 23,数值越小画质越高、文件越大,数值越大压缩越强、画质越低。通常 18–23 可以获得较好的视觉质量,23–28 适合网络传输。


如果既想保持质量,又不希望码率过高,可以组合使用 CRF 和最大码率:

ffmpeg -i input.mp4 -c:v libx264 -crf 22 -maxrate 2500k -bufsize 4000k -c:a aac -b:a 128k output.mp4

FFmpeg 压缩视频指定码率方式四

这种写法会以 CRF 22 为目标质量,但当码率超过上限时会自动降低局部画质,避免体积失控。


H.265 在相同画质下通常比 H.264 更节省体积,但编码速度更慢,兼容性也略差一些。

H.265 示例:

ffmpeg -i input.mp4 -c:v libx265 -b:v 1500k -preset medium -c:a aac -b:a 128k output.mp4


如果使用 GPU 加速,例如 NVIDIA NVENC,可以改为:

ffmpeg -hwaccel cuda -i input.mp4 -c:v h264_nvenc -b:v 2000k -preset p6 -c:a aac -b:a 128k output.mp4


硬件编码速度更快,但同码率下画质通常不如软件编码精细,适合对吞吐量要求较高的场景。


FFmpeg 指定码率压缩视频的核心,是在“文件大小、画质、编码速度、兼容性”之间找到平衡。日常压缩可以直接用 -b:v 或 -crf;需要严格控制体积时加入双遍编码;面向直播或带宽受限场景时,再配合 -maxrate、-bufsize 和 CBR 参数。掌握这些组合,基本就能覆盖大多数视频压缩需求。

热门教程
年
月
周
音频格式转换器 格式转换工厂
办公软件,就选简鹿 简便、快捷、高效

客户服务

帮助中心

关注我们

百家号 搜狐号 抖音号 CSDN B站平台
QQ客服
QQ:3236169202 复制
简鹿办公QQ客服二维码
微信客服
微信:jianlu365 复制
简鹿办公微信公众号
回到顶部