Audio 独立于ID3标签访问MP3音频数据?

Audio 独立于ID3标签访问MP3音频数据?,audio,mp3,id3,Audio,Mp3,Id3,这是一个由两部分组成的问题。首先,是否可以独立于ID3标签访问MP3中的音频数据,其次,是否可以使用可用的库来访问音频数据 最近,我整合了3台电脑的音乐收藏,最终得到的歌曲改变了ID3标签,但音频数据本身没有修改。运行重复文件搜索失败,因为文件随ID3标记更改而更改,但我认为如果我只是使用音频数据进行重复数据消除以进行比较,则应该可以识别重复文件 我知道可以通过文件中的ID3头查找特定位置,并直接读取数据,但我想知道是否有一个库可以公开音频数据,这样我就可以提取数据,对其运行校验和,并将计算结果

这是一个由两部分组成的问题。首先,是否可以独立于ID3标签访问MP3中的音频数据,其次,是否可以使用可用的库来访问音频数据

最近,我整合了3台电脑的音乐收藏,最终得到的歌曲改变了ID3标签,但音频数据本身没有修改。运行重复文件搜索失败,因为文件随ID3标记更改而更改,但我认为如果我只是使用音频数据进行重复数据消除以进行比较,则应该可以识别重复文件


我知道可以通过文件中的ID3头查找特定位置,并直接读取数据,但我想知道是否有一个库可以公开音频数据,这样我就可以提取数据,对其运行校验和,并将计算结果存储在某个位置,然后查找相同的校验和。另外,当考虑可变长度的标题时,我可能不得不使用某种库。

巧合的是,前几天我想做一些类似的事情

下面是我编写的一个Ruby脚本:

它将mpeg帧转储到标准输出,因此可以获取如下校验和:


mp3dump.rb file.mp3 | md5sum

类似的问题,因为似乎没有“链接到不同的问题”框:阅读ID3标签-共识:使用Java库标签阅读器-而且,就我所知,这似乎是我最好的选择:嗯。这是我一直在寻找的,尽管我不知道它在做什么。我会接受的,但我不介意解释一下它在做什么。我假设除非序列以某种方式过滤掉ID3标记,但不知道如何过滤。链接到您用来创建此文档的任何文档都将非常棒是的,它可能有点模糊;意识流编码。。。它的要旨是:打开一个mp3文件;读取4个字节;如果我们读取的字节是有效的mp3头,则读取帧并将其发送到stdout;否则,我们将倒带3个字节,然后重试,直到到达文件末尾。我使用了以下MPEG帧资源:这个脚本将我的MP3变为54 KB。