ffmpeg max_volume 正分贝?

ffmpeg max_volume 正分贝?

ffmpeg 的max_volume参数是否返回正值或者是否达到最大值0

我看到多个文件恢复0到最大音量,但音量大小不一样。有些文件有震耳欲聋的杂音,我正尝试检测并消除这些杂音。

ffmpeg 输出示例:

frame=19323 fps=1143 q=0.0 Lsize=N/A time=00:12:52.92 bitrate=N/A    
video:1812kB audio:144184kB subtitle:0 global headers:0kB muxing overhead -100.000015%
n_samples: 73822208
[Parsed_volumedetect_0 @ 0x7f77e0] mean_volume: -22.6 dB
[Parsed_volumedetect_0 @ 0x7f77e0] max_volume: 0.0 dB
[Parsed_volumedetect_0 @ 0x7f77e0] histogram_0db: 8169
[Parsed_volumedetect_0 @ 0x7f77e0] histogram_1db: 388
[Parsed_volumedetect_0 @ 0x7f77e0] histogram_2db: 531
[Parsed_volumedetect_0 @ 0x7f77e0] histogram_3db: 2389
[Parsed_volumedetect_0 @ 0x7f77e0] histogram_4db: 5039
[Parsed_volumedetect_0 @ 0x7f77e0] histogram_5db: 12128
[Parsed_volumedetect_0 @ 0x7f77e0] histogram_6db: 24978
[Parsed_volumedetect_0 @ 0x7f77e0] histogram_7db: 48077

使用时:

ffmpeg -i /var/www/CDNFiles/Video_1Web.mp4 -af "volumedetect" -f null /dev/null/ 2>&1

...或者 ffmpeg 不是适合这个用途的工具?我有用 h264 编解码器编码的 mp4 视频文件。

谢谢。

答案1

“max_volume”不能大于 0。

根据libavfilter/af_volumedetect.c

av_log(ctx, AV_LOG_INFO, "max_volume: %.1f dB\n", -logdb(max_volume * max_volume));

因此,要按照您的要求返回正数,“logdb”需要返回一个负数。以下是 logdb:

#define MAX_DB 91

static inline double logdb(uint64_t v)
{
    double d = v / (double)(0x8000 * 0x8000);
    if (!v)
        return MAX_DB;
    return -log10(d) * 10;
}

如果“d”大于 1,“logdb”将返回负数:

$ awk 'BEGIN {print -log(2) / log(10) * 10}'
-3.0103

要使“d”大于 1,“max_volume”需要大于 0x8000。“max_volume”可以大于 0x8000 吗?不可以:

max_volume = 0x8000;
while (max_volume > 0 && !vd->histogram[0x8000 + max_volume] &&
                         !vd->histogram[0x8000 - max_volume])
    max_volume--;

如果您不想重新编码文件,只要文件具有音频流,您就可以使用 AacGain:

aacgain -k -r -s s -m 10 file

或者如果你只是想分析:

aacgain -s s file

信息:

-k - automatically lower Track/Album gain to not clip audio
-r - apply Track gain automatically (all files set to equal loudness)
-s s - skip (ignore) stored tag info (do not read or write tags)
-m <i> - modify suggested gain by integer i

相关内容