ffmpeg volumedetect returns 结果不稳定
ffmpeg volumedetect returns unstable result
我正在使用 ffmpeg 来计算我的音频文件的音量,但我发现 ffmpeg returns 不同容器的不同值(如 mp3 v.s.ogg)
这是一个例子。我正在使用来自 Wikimedia Commons 的 ogg 文件,并将其转换为 mp3,然后分析这两个文件的音量。对于 ogg 文件,我得到 -3.0 dB 的平均音量,但对于 mp3 文件,我得到 -3.4 dB。当我使用其他文件时,我也会得到不同的最大音量和直方图。
[user@localhost tmp]$ wget https://upload.wikimedia.org/wikipedia/commons/b/b9/Audio_Frequency_tone%2C_Middle_C%2C_C4%2C_261.63hz.ogg -O a.ogg 2> /dev/null
[user@localhost tmp]$ ffmpeg -i a.ogg a.mp3 2> /dev/null
[user@localhost tmp]$ ffmpeg -i a.ogg -af volumedetect tmp.ogg 2>&1 | grep volumedetect
[Parsed_volumedetect_0 @ 0x555f69f3f4a0] n_samples: 88768
[Parsed_volumedetect_0 @ 0x555f69f3f4a0] mean_volume: -3.0 dB
[Parsed_volumedetect_0 @ 0x555f69f3f4a0] max_volume: 0.0 dB
[Parsed_volumedetect_0 @ 0x555f69f3f4a0] histogram_0db: 27541
[user@localhost tmp]$ ffmpeg -i a.mp3 -af volumedetect tmp.mp3 2>&1 | grep volumedetect
[Parsed_volumedetect_0 @ 0x55fd62be4740] n_samples: 88768
[Parsed_volumedetect_0 @ 0x55fd62be4740] mean_volume: -3.4 dB
[Parsed_volumedetect_0 @ 0x55fd62be4740] max_volume: -0.0 dB
[Parsed_volumedetect_0 @ 0x55fd62be4740] histogram_0db: 21340
[user@localhost tmp]$
为什么会出现这个错误?我应该相信哪一个?
您正在对音频进行转码。因此,输出与输入不同。如果您转码为 WAV 或 FLAC 等无损格式,您应该会得到相同的结果。
我正在使用 ffmpeg 来计算我的音频文件的音量,但我发现 ffmpeg returns 不同容器的不同值(如 mp3 v.s.ogg)
这是一个例子。我正在使用来自 Wikimedia Commons 的 ogg 文件,并将其转换为 mp3,然后分析这两个文件的音量。对于 ogg 文件,我得到 -3.0 dB 的平均音量,但对于 mp3 文件,我得到 -3.4 dB。当我使用其他文件时,我也会得到不同的最大音量和直方图。
[user@localhost tmp]$ wget https://upload.wikimedia.org/wikipedia/commons/b/b9/Audio_Frequency_tone%2C_Middle_C%2C_C4%2C_261.63hz.ogg -O a.ogg 2> /dev/null
[user@localhost tmp]$ ffmpeg -i a.ogg a.mp3 2> /dev/null
[user@localhost tmp]$ ffmpeg -i a.ogg -af volumedetect tmp.ogg 2>&1 | grep volumedetect
[Parsed_volumedetect_0 @ 0x555f69f3f4a0] n_samples: 88768
[Parsed_volumedetect_0 @ 0x555f69f3f4a0] mean_volume: -3.0 dB
[Parsed_volumedetect_0 @ 0x555f69f3f4a0] max_volume: 0.0 dB
[Parsed_volumedetect_0 @ 0x555f69f3f4a0] histogram_0db: 27541
[user@localhost tmp]$ ffmpeg -i a.mp3 -af volumedetect tmp.mp3 2>&1 | grep volumedetect
[Parsed_volumedetect_0 @ 0x55fd62be4740] n_samples: 88768
[Parsed_volumedetect_0 @ 0x55fd62be4740] mean_volume: -3.4 dB
[Parsed_volumedetect_0 @ 0x55fd62be4740] max_volume: -0.0 dB
[Parsed_volumedetect_0 @ 0x55fd62be4740] histogram_0db: 21340
[user@localhost tmp]$
为什么会出现这个错误?我应该相信哪一个?
您正在对音频进行转码。因此,输出与输入不同。如果您转码为 WAV 或 FLAC 等无损格式,您应该会得到相同的结果。