FFmpeg 是一款功能强大的开源多媒体处理工具,支持音视频格式转换、剪辑、合并、压缩等多种操作。在实际应用中,我们经常需要通过**调整码率(bitrate)**来控制视频文件的大小和质量。本文将详细介绍如何使用 FFmpeg 按照指定码率压缩视频。
基本命令格式如下:
ffmpeg -i input.mp4 -b:v 1M -bufsize 1M -maxrate 1M -b:a 128k output.mp4
参数说明:
-i input.mp4 输入视频文件名
-b:v 1M:设置视频码率为 1 Mbps(即每秒传输比特数),数值越小画质越低,体积越小
-bufsize 1M:设置解码缓冲区大小,通常设置为与码率相同
-maxrate 1M:设置最大码率,用于限制动态码率下的最高值
-b:a 128k:设置音频码率为 128 kbps,常见于高质量音频
output.mp4:输出视频文件名
假设你有一个名为 video.mp4 的视频,想将其压缩成码率为 500kbps 的视频,并保留较好的音频质量:
ffmpeg -i video.mp4 -b:v 500k -bufsize 500k -maxrate 500k -b:a 96k compressed_video.mp4
⚠️ 注意:码率设置过低会导致画质明显下降,建议根据用途合理选择码率。
3 Mbps 以上 高清视频,适合本地播放
2 Mbps ~ 3 Mbps 网络高清流媒体
1 Mbps ~ 2 Mbps 标清视频,适合普通网络上传
500 kbps ~ 1 Mbps 移动端观看、节省流量
500 kbps 以下 极低带宽环境,画质较差
你可以使用简单的 shell 脚本批量压缩多个视频文件:
for file in *.mp4; do
ffmpeg -i "$file" -b:v 1M -bufsize 1M -maxrate 1M -b:a 128k "compressed_$file"
done
这个脚本会对当前目录下所有 .mp4 视频进行压缩,输出文件名为 compressed_原文件名.mp4。
通过 FFmpeg 指定码率压缩视频是一种灵活且高效的方法,既能控制文件体积,又能保证一定的画质。你可以根据具体需求调整视频码率、音频码率等参数,实现最佳的压缩效果。
📝 小贴士:
如果对画质要求较高,可以适当提高码率;
如果主要用于网络传输,推荐使用 CRF(恒定质量)模式 或 两遍编码(Two-pass encoding) 进一步优化;
FFmpeg 支持多种编码器(如 H.264、H.265),可结合编码器进一步提升压缩效率。
除了使用 FFmpge 命令进行压缩视频外,我们还可以通过使用简鹿视频格式转换器中的视频压缩功能对视频进行批量压缩,它提供了多种视频格式以及编码预设,让普通用户转换视频会更轻松便捷。