我知道许多实用程序可以告诉我 MP3 文件的比特率,但我从未见过可以告诉我 MP3 文件是 VBR(可变比特率 - 文件内的比特率波动)还是CBR(恒定比特率 - 文件中的比特率保持不变)。我的猜测是,大多数程序对找出这一点不感兴趣,因为它涉及到对文件进行一些分析以查看比特率是否发生变化,这会降低速度。
所以,代替寻找实用程序,我想写一个 - 那么我如何以编程方式确定 MP3 文件是 VBR 还是 CBR?我有大约 15,000 个文件要检查,所以我需要自动化这个过程。
MP3 文件本质上是由所谓的帧构建的。每个帧都有一个小的标头,用于存储有关该帧的信息。标头还存储用于帧的比特率。在 CBR 文件中,所有帧都使用相同的比特率,因此每个标头都具有相同的比特率信息。
要检测文件是否使用 VBR,您必须检查文件的每一帧,查看文件头并检查比特率字段是否发生变化。如果是这样,它是一个 VBR MP3。
MP3 格式的完整描述在这里:http ://www.mpgedit.org/mpgedit/mpeg_format/mpeghdr.htm
检查这个MP3Header Class,它有一个方法告诉你 mp3 文件是否是 VBR,以及所有 mp3 头信息...
...
boolVBitRate = LoadVBRHeader(bytVBitRate);
...