如何知道特定CBR MP3帧的字节偏移量?



我创建了自己的MP3框架解析器。如果我按顺序读取,我可以单独读取每一帧。

我的问题是,我还没有弄清楚如何找到第n帧的字节偏移量(而不必读取所有先前的帧)。

CBR使这个过程更容易,但我仍然不知道填充位是如何起作用的。

例如,取一个包含以下信息的文件:

Total file length:  4916595
===== ID3 METADATA =====
ID3v2 header length:  143
===== MP3 FRAMES =====
Version: MPEG Version 1
Layer: Layer III
Error protection: No
Bitrate: 192
Frequency: 44.1

有些帧的字节长度是626,有些帧的字节长度是627

假设我想找到第100帧,我不能简单地做100 * 626,也不能做100 * 627

我应该如何在公式中考虑填充位来找到第n帧的字节偏移?

也许MP3val能解决你的问题。安装完成后,运行:

mp3val -f file.mp3

最新更新