Audio 如何检测文件是否使用mp3PRO编码?

Audio 如何检测文件是否使用mp3PRO编码?,audio,hex,mp3,file-format,Audio,Hex,Mp3,File Format,我有一个文件夹,其中包含了很多MP3文件,其中一些是编码使用 由于这种格式现在已经过时,我想把它们转换回MP3格式(可以很容易地找到转换器) 是否有方法通过编程检测文件是否使用mp3PRO格式编码?(例如:使用十六进制编辑器查看文件头或特定签名) 可以检测文件是否使用mp3PRO编码(徽标是否突出显示),因此我认为这在技术上是可能的 到目前为止,我发现mp3PRO文件的比特率似乎很低(占非编码文件的50%):例如:一个128kbps的文件将显示为64kbps。但是,320 kbps的文件将显示为

我有一个文件夹,其中包含了很多MP3文件,其中一些是编码使用

由于这种格式现在已经过时,我想把它们转换回MP3格式(可以很容易地找到转换器)

是否有方法通过编程检测文件是否使用mp3PRO格式编码?(例如:使用十六进制编辑器查看文件头或特定签名)

可以检测文件是否使用mp3PRO编码(徽标是否突出显示),因此我认为这在技术上是可能的


到目前为止,我发现mp3PRO文件的比特率似乎很低(占非编码文件的50%):例如:一个128kbps的文件将显示为64kbps。但是,320 kbps的文件将显示为160 kpbs(这是非常常见的),因此不能作为规则使用。

以下是我的发现和修复方法。我在这里写道,以防有人需要它:

MP3Pro文件在mp3头中不包含任何有助于识别它们的特殊标志

它们在技术上与普通mp3文件非常相似,只是编码的比特率和采样率只有原来的一半(例如:128kpbs 44100hz文件将编码为64kps 22050hz文件,导致mp3pro文件的大小约为原始文件的一半)

这是为了兼容性而做的,所以默认玩家可以在不做任何更改的情况下播放它们

它们还包含一些SBR数据,允许综合重建丢失的音频部分(高频),并播放mp3 pro转换之前的音频

检测SBR数据似乎非常困难(如果不是不可能的话):它需要解码实际的mp3帧。此外,也没有找到有关mp3pro格式的文档

我所做的(虽然有效,但需要一些手动操作):我将所有要检查的文件添加到mp3播放器的播放列表中(我的例子是foobar 2000),然后在采样率列中对文件进行排序:大多数22050 hz mp3文件确实是mp3 pro文件。


使用winamp+为其制作的mp3pro插件将它们转换回mp3,可在此处获得:

vlc处理它,因此检查vlc源以了解它们如何检测格式。你是指逐个吗?或者有没有一种方法可以对文件列表执行此操作?VLC可以将其解码为基本mp3文件。使用vlc播放时,在工具->编解码器信息下会看到什么?与任何MP3文件非常相似:Steam 0类型:音频编解码器:MPEG音频层1/2(mpga)通道:立体声采样率:22050 Hz比特率:64kbps