我是 Loudnorm 过滤器的新手。我曾成功地用它让文件声音变小,但却无法让它让文件声音变大。
传递 1 个命令:
ffmpeg -i in.wav -af loudnorm=I=-16:TP=-1.5:LRA=11:print_format=json -f null -
输出:
{
"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"
}
传递 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
输出:
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
我期望输出数字接近指定值,例如Output Integrated: -16.0 LUFS
。为什么事实并非如此?
更新:如果我对峰值进行归一化,in.wav
测量结果input_i
为 -15.55。将 Loudnorm 应用于该文件可获得预期的输出。因此,Loudnorm 会使高音量文件更安静,但不会使安静文件更响亮。
答案1
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
Loudnorm 按预期工作。
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
要恢复原始长度,您可以运行上述命令并在末尾添加一个 trim 过滤器
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
其中 atrim 的第二个参数是原始持续时间,以秒为单位。