使用 FFmpeg 调整音频文件音量大小

老牛浏览 12评论 0发表于 更新于

问题说明

最近在整理音乐文件时,可能由于音源问题,出现了有的文件在播放时声音大甚至爆音,有的声音小听不清的问题。我们需要调整下文件的默认音量,进行固定增益或响度归一化操作。

解决方案

涉及音视频我们首选用 FFmpeg 来处理。

1. 固定增益

如果只是想简单地把整首歌的音量调高或调低一个固定的倍数,用 volume 滤镜最直接。

bash
# 使用倍数调整 (1 为原始音量)
ffmpeg -i input.flac -filter:a "volume=2.0" output.flac

# 使用分贝(dB)调整 (更符合听觉感知)
ffmpeg -i input.flac -filter:a "volume=5dB" output.flac
  • volume=2.0:将音量翻倍。设置范围在 0~1 之间是降低,大于 1 是提高。

  • volume=5dB:将音量提升 5 分贝。使用 -5dB 则是降低 5 分贝。

关于失真的提醒
随意增加固定增益很容易导致声音“破音”(削波失真)。保险起见,可以先分析一下音频当前的峰值电平,再进行调整。

bash
# 分析音频峰值电平,为调整提供参考
ffmpeg -i input.flac -af "volumedetect" -f null /dev/null

2. 响度归一化

如果不确定调高多少合适,或者不同歌曲之间的响度差异大,用 loudnorm 滤镜让 FFmpeg 智能分析并自动调整到统一的目标响度,效果更专业。

bash
# 使用 EBU R128 标准进行智能归一化
ffmpeg -i input.flac -af loudnorm output.flac

默认情况下,它会将音频的整体响度(而非峰值)调整到 -23 LUFS,这是广播电视的国际标准,通常听起来会比原文件更“饱满”且不会轻易破音。如果想让它更响一点,可以调整 I 参数(目标响度):

bash
# 调整到更响的 -16 LUFS,适合个人欣赏
ffmpeg -i input.flac -af "loudnorm=I=-16" output.flac
点赞
收藏
暂无评论,快来发表评论吧~
私信
老牛,俗称哞哞。单纯的九零后理工小青年。喜欢折腾,爱玩,爱音乐,爱游戏,爱电影,爱旅游...
最后活跃于