exiftool 显示不正确的 MP3 持续时间。这是怎么发生的?

exiftool shows incorrect Duration for MP3. How does that happen?

从网站下载了七个 MP3 文件。 exiftool 说持续时间是两分钟。

用音频编辑器打开,发现居然是四分钟。

在同一编辑器中打开了一个(未下载的)MP3 文件,持续时间不同于两个或四个。

已复制下载文件中的所有音频并粘贴到其他音频上。编辑显示其他更改为四分钟。

exiftool 显示第二个文件的持续时间为四分钟。

其他六个下载文件的行为相同(不同的数字)。第一个是唯一一个差异大约是两倍的(所以它不是立体声与单声道)

持续时间是一个可以伪造的 ID3 标签,而不是从实际音频中测量出来的吗?

Duration 值之后的 exiftool 输出中应该有一个 (approx)Duration 不是嵌入式标签,它是由 exiftool 即时计算的值。如果加上-G (-groupNames) option to your command, you'll see that it is part of the Composite tag group。如果你查看那里的列表,你会看到 exiftool 用来计算 Duration 的标签。很可能是包含 ID3SizeMPEG:AudioBitrate.

的组

Exiftool 不会读取和解析流数据,音频编辑器会这样做并获得更准确的结果。很可能您文件的 header 有问题。

Related post 在 exiftool 论坛上。