2

我想问一下每个 MP3 帧的标记字节?我们如何知道它是来自 MP3 的帧?在一些文章中说每个帧头的标记是Hexa(FF FB)。这是真的吗?

4

1 回答 1

12

所有 MP3 帧的开头都有一个同步字标记。该同步字长 11 位,全为 1。因此 MP3 帧将以 FFF 或 FFE 开头。有关MP3 帧结构的更多详细信息,请参见下面的链接

这并不意味着任何以 0xFFE 或 0xFFF 开头的字节序列都是 MP3 帧头。可能还有许多其他情况
(a) 其他格式,如 ADTS(AAC) 也有类似的同步字。ADTS 框架的更多细节在这里
(b) MP3 帧内的数据也可以包含 FFF/FFE 序列。

因此,确定字节序列是否为 MP3 的最佳方法是执行以下操作
(o) 搜索同步字 (FFF 或 FFE) 序列
(o) 通过在同步字之后解析头块来查找帧的长度
(o) 搜索按帧长度文件,看看是否有另一个同步字。
如果是 MP3 文件,那么您应该在将帧长度添加到当前同步字后找到另一个同步字。

于 2012-07-03T16:47:12.640 回答