使用 FFmpeg 可以进行简单的峰值标准化吗?

使用 FFmpeg 可以进行简单的峰值标准化吗?

我拍摄了无损视频录像带,但不幸的是,其中一些录像带的输出音量受到两个因素的限制:一是摄像机没有除内置扬声器以外的音量滑块,二是 Dazzle DVC100 USB 视频捕获设备没有音量设置(尽管 VirtualDub2 可以正常检测和录制,但 Windows 音频混音器或录制设备面板上却无法显示)。

最初,我一直用它来规范音频。

-af loudnorm=I=-16:LRA=11:TP=-1.5

然而,在进一步阅读FFmpeg 文档维基百科上有关音频标准化的文章,我意识到“响度标准化”与“峰值标准化”不同。由于 ffmpeg 的loudnorm函数就是这个名字,所以我需要确保我所做的正是我想要的。

我只想尽可能地提高音量,而不会削波不会丢失任何动态范围或在整个录音中平均音量。这在 ffmpeg 中可行吗?我搜索了很多,loudnorm似乎太受欢迎了,以至于淹没了与标准化相关的任何其他内容。

答案1

您可以先运行音量检测过滤器来识别峰值音量。然后在第二遍中运行音量过滤器来添加均匀增益。

第 1 道

ffmpeg -i input -af volumedetect -vn -f null -

输出:

[Parsed_volumedetect_0 @ 0000022356a12940] n_samples: 495350
[Parsed_volumedetect_0 @ 0000022356a12940] mean_volume: -28.9 dB
[Parsed_volumedetect_0 @ 0000022356a12940] max_volume: -4.2 dB
[Parsed_volumedetect_0 @ 0000022356a12940] histogram_4db: 26
[Parsed_volumedetect_0 @ 0000022356a12940] histogram_5db: 107
[Parsed_volumedetect_0 @ 0000022356a12940] histogram_6db: 182
[Parsed_volumedetect_0 @ 0000022356a12940] histogram_7db: 153
[Parsed_volumedetect_0 @ 0000022356a12940] histogram_8db: 158

最大音量就是您的峰值。

第 2 道

ffmpeg -i input -af volume=+4.2dB -c:v copy output

相关内容