使用 FFmpeg 可以進行簡單的峰值歸一化嗎?

使用 FFmpeg 可以進行簡單的峰值歸一化嗎?

我對錄影帶進行了無損視頻捕捉,不幸的是,其中一些錄像帶的輸出音量受到限制,因為攝像機除了內置揚聲器之外沒有音量滑塊,而且 Dazzle DVC100 USB 視頻捕捉設備缺乏音量設置(並且神秘)。 VirtualDub2 可以很好地偵測和錄音,但無法在Windows 音訊混音器或錄音設備面板中實現。

最初,我一直用它來標準化音訊。

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

然而,在進一步閱讀了FFmpeg 文件維基百科關於音頻標準化的文章,我意識到「響度歸一化」與「峰值歸一化」不同。由於 ffmpeg 的loudnorm函數就是這樣命名的,所以我需要確保我正在做的正是我想要的。

我只是想在不削波的情況下盡可能增加音量不會損失任何動態範圍或對整個錄音的音量進行平均。這在 ffmpeg 中可能嗎?我已經搜索了很多,並且loudnorm似乎很受歡迎,以至於淹沒了其他與標準化相關的內容。

答案1

您可以先執行 VolumeDetect 過濾器來識別峰值音量。然後在第二遍中運行音量濾波器以添加均勻增益。

透過 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

相關內容