我有一个包含大量 MP3 文件的文件夹,其中一些是使用 mp3PRO 编码的.
由于这种格式现在已经过时,我想将它们转换回 MP3(可以很容易地找到转换器)。
有没有办法以编程方式检测文件是否使用 mp3PRO 格式编码? (例如:通过使用十六进制编辑器查看文件头或特定签名)
official player能够检测文件是否使用 mp3PRO 编码( Logo 是否突出显示)所以我认为这在技术上是可能的。
到目前为止,我发现 mp3PRO 文件的比特率似乎很低(非编码文件的 50%):例如:128 kbps 文件将显示为 64kbps。但是,320 kbps 文件将显示为 160 kpbs(这很常见),因此不能将其用作规则。
最佳答案
这是我发现的内容以及我如何修复它。我写在这里以防有人需要它:
MP3Pro 文件在 mp3 header 中不包含任何有助于识别它们的特殊标志。
它们在技术上与通常的 mp3 文件非常相似,除了它们被编码为一半的比特和采样率(例如:128kpbs 44100hz 文件将被编码为 64kps 22050hz 文件,导致 mp3pro 文件大约是原始文件大小的一半)。
这样做是为了兼容,因此默认播放器无需任何更改即可播放它们。
它们还包含一些 SBR 数据,允许综合重建丢失的音频部分(高频)并在 mp3 pro 转换之前播放它们。
如果不是不可能的话,检测 SBR 数据似乎非常困难:它需要解码实际的 mp3 帧。也没有关于 mp3pro 格式的文档。
我做了什么(有效但需要一些手动操作):我将所有要检查的文件添加到 mp3 播放器(在我的情况下为 foobar 2000)的播放列表中,然后在采样率列上对文件进行排序:大多数 22050 hz mp3 文件确实是 mp3 pro 文件。
使用 winamp + 为它制作的 mp3pro 插件将它们转换回 mp3,可在此处获得:http://www.wav-mp3.com/mp3pro-to-mp3.htm
关于audio - 如何检测文件是否使用 mp3PRO 编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31618480/