ffmpeg Lounorm 过滤器不会使音频更响亮

gau*_*256 5 audio ffmpeg

我是 Lounorm 滤波器的新手。我已经成功地使用它使文件更安静,但我无法让它更响亮。

传递 1 个命令:

ffmpeg -i in.wav -af loudnorm=I=-16:TP=-1.5:LRA=11:print_format=json -f null -
Run Code Online (Sandbox Code Playgroud)

输出:

{
        "input_i" : "-23.54",
        "input_tp" : "-7.96",
        "input_lra" : "0.00",
        "input_thresh" : "-34.17",
        "output_i" : "-23.09",
        "output_tp" : "-7.51",
        "output_lra" : "0.00",
        "output_thresh" : "-33.72",
        "normalization_type" : "linear",
        "target_offset" : "7.09"
}
Run Code Online (Sandbox Code Playgroud)

传递2命令:

ffmpeg -y -i in.wav -af loudnorm=I=-16:TP=-1.5:LRA=11:measured_I=-23.54:measured_TP=-7.96:measured_LRA=0.00:measured_thresh=-34.17:offset=7.09:linear=true:print_format=summary -ar 16k out.wav
Run Code Online (Sandbox Code Playgroud)

输出:

Input Integrated:    -23.5 LUFS
Input True Peak:      -8.0 dBTP
Input LRA:             0.0 LU
Input Threshold:     -34.2 LUFS

Output Integrated:   -23.1 LUFS
Output True Peak:     -7.5 dBTP
Output LRA:            0.0 LU
Output Threshold:    -33.7 LUFS

Normalization Type:   Linear
Target Offset:        +7.1 LU
Run Code Online (Sandbox Code Playgroud)

我希望输出数字接近指定的值,例如,Output Integrated: -16.0 LUFS. 为什么不是这样?

更新:如果我峰值归一化,in.wav则测量input_i值为 -15.55。对那个文件应用 Loudnorm 会得到预期的输出。所以 Loudnorm 会使响亮的文件更安静,但不会使安静的文件更响亮。

Gya*_*yan 6

Loudnorm 滤波器使用(重叠)3 秒音频的窗口来计算源中的短期响度并调整目标以满足目标参数。样本文件只有一秒长,这看起来是异常归一化的原因。

如果我将音频填充到 3 秒并运行,

ffmpeg -i in.wav -af apad,atrim=0:3,loudnorm=I=-16:TP=-1.5:LRA=11:measured_I=-23.54:measured_TP=-7.96:measured_LRA=0.00:measured_thresh=-34.17:offset=7.09:linear=true:print_format=summary -ar 16k pad-out.wav
Run Code Online (Sandbox Code Playgroud)

Lounorm 按预期工作。

Input Integrated:    -23.8 LUFS
Input True Peak:      -8.0 dBTP
Input LRA:             0.2 LU
Input Threshold:     -36.0 LUFS

Output Integrated:   -15.9 LUFS
Output True Peak:     -1.5 dBTP
Output LRA:            0.0 LU
Output Threshold:    -26.7 LUFS

Normalization Type:   Dynamic
Target Offset:        -0.1 LU
Run Code Online (Sandbox Code Playgroud)

要恢复原始长度,您可以在最后运行带有修剪过滤器的上述命令

ffmpeg -i in.wav -af apad,atrim=0:3,loudnorm=I=-16:TP=-1.5:LRA=11:measured_I=-23.54:measured_TP=-7.96:measured_LRA=0.00:measured_thresh=-34.17:offset=7.09:linear=true:print_format=summary,atrim=0:1.0 -ar 16k trimmed-out.wav
Run Code Online (Sandbox Code Playgroud)

其中 atrim 的第二个参数是原始持续时间,以秒为单位。

  • 感谢您提供的信息和解决方法,这似乎非常有效。一些实验表明,如果您也填充 Pass 1 步骤,最终结果会更准确。 (3认同)