我正在使用ffmpeg来计算我的音频文件的音量,但我发现ffmpeg为不同的容器返回不同的值(如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]$
为什么会发生这个错误?我应该相信哪一个?
答案 0 :(得分:1)
您正在转码音频。因此,输出与输入不同。如果转码为无损格式(如WAV或FLAC),则应获得相同的结果。