我们手机和电脑里的 MP4 视频文件动辄几个 G 甚至几十 G,不仅占用大量存储空间,在微信、邮件中发送也极不方便。作为音视频处理领域的瑞士军刀,FFmpeg 是一款极其强大的开源工具,能够帮助我们在尽量保持画质的前提下,大幅压缩视频体积。
接下来简鹿办公带你掌握 FFmpeg 压缩 MP4 视频的核心技巧,从基础命令到进阶调参,让你轻松应对各种压缩需求。
视频压缩的核心原理,通常是通过降低视频码率(比特率)、缩小分辨率或使用更高效的编码格式来实现。在 FFmpeg 中,最推荐的压缩方式是使用 CRF(恒定质量因子) 结合 H.264/H.265 编码器。
基础压缩命令
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k output.mp4
参数解析:
-c:v libx264:指定视频编码器为 H.264,兼顾了极高的兼容性和优秀的压缩率。
-crf 23:CRF 是控制画质与体积平衡的关键参数。取值范围是 0-51,数值越小画质越好、体积越大。23 是默认值,通常 18-28 之间都能提供不错的视觉体验。
-preset medium:控制编码速度与压缩效率的平衡。medium 是折中选择;如果时间充裕,可改为 slow 或 slower,能在同等画质下获得更小的体积。
-c:a aac -b:a 128k:音频使用 AAC 编码,码率设为 128kbps,足以满足日常观看需求。
如果基础命令压缩后的体积依然达不到你的要求,可以尝试以下几种进阶手段:
使用 H.265 编码器(体积更小)
H.265(HEVC)的压缩效率比 H.264 高出约 50%,能在同等画质下显著减小体积。
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -preset medium -c:a aac -b:a 128k output.mp4
注意:H.265 的 CRF 默认值通常为 28。由于压缩效率高,28 的画质大致相当于 H.264 的 23。不过,H.265 编码速度较慢,且部分老旧设备可能不支持播放。
降低视频分辨率
对于 4K 或 1080P 的视频,如果仅在手机上观看,降低到 720P 能大幅减少文件体积,且肉眼几乎看不出画质损失。
ffmpeg -i input.mp4 -vf "scale=1280:720" -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mp4
-vf "scale=1280:720":使用视频滤镜将分辨率强制缩放为 1280x720。*
如果你需要将视频严格控制在某个大小以内(例如微信限制 100M),可以直接指定视频码率。
ffmpeg -i input.mp4 -c:v libx264 -b:v 1M -c:a aac -b:a 64k output.mp4
-b:v 1M:将视频码率限制在 1Mbps。码率越低体积越小,但画质也会相应下降,建议根据实际需求在 0.5M 到 2M 之间测试。*
如果你需要批量处理大量视频,纯 CPU 编码可能会非常耗时。如果你的电脑配备了独立显卡,可以使用硬件加速:
NVIDIA 显卡: 将 -c:v libx264 替换为 -c:v h264_nvenc
Intel 核显: 将 -c:v libx264 替换为 -c:v h264_qsv
示例(N卡加速):
ffmpeg -i input.mp4 -c:v h264_nvenc -b:v 1M -c:a aac -b:a 128k output.mp4
注意:硬件编码的速度极快,但在同等码率下,画质通常略逊于 CPU 软编(libx264)。
在命令开头加上 -y 参数(如 ffmpeg -y -i...),可以在输出文件已存在时自动覆盖,省去手动确认的麻烦。压缩是一个有损过程,操作前务必备份原始视频,以防压缩参数设置过低导致画质崩坏。
在实际操作中,通常会将“降低分辨率 + 调整 CRF + 压缩音频”结合起来使用,以达到体积与画质的最佳平衡。掌握以上 FFmpeg 命令,你就能彻底告别视频体积焦虑,轻松实现视频的瘦身与高效传输。
当然,如果你觉得上面的方法比较麻烦,你也可以使用简鹿办公开发的简鹿视频格式转换噐或简鹿格式转换工厂这两款软件,它们都提供了视频压缩以及视频编码相关的功能,支持 Windows 和 macOS 系统。