我创建了自己的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