https://trac.ffmpeg.org/wiki/AudioVolume#LoudnessNormalization
但是,建议进行两次标准化运行,从第一次运行中提取测量值,然后在启用线性标准化的情况下在第二次运行中使用这些值。
ffmpeg -i UvL8OsG75f0.opus -filter:a loudnorm -pass 1 -f null /dev/null
ffmpeg -i UvL8OsG75f0.opus -filter:a loudnorm -pass 2 tmp.opus
第一个命令根本没有生成“ffmpeg2pass-...”日志。
如何正确地以两遍方法标准化音量?
答案1
该-pass
选项仅对某些视频编码器有效。
您必须手动运行设置了目标选项的过滤器,将其输出统计信息打印到命令行,然后使用这些输出统计信息进行第二次运行(参数measured_
)。
为了实现此过程的自动化,有一个Ruby 脚本一次性完成,或者你可以使用ffmpeg-normalize
,它可以完成所有工作,还可以处理批处理以及视频直通和其他选项(免责声明:我是该工具的作者)。
例如,要规范化 Opus 文件:
ffmpeg-normalize input.opus -c:a libopus -o output.opus
(您可能需要指定比特率和其他编解码器选项。)