我想问一下每个MP3帧的标记字节?我们如何知道它是来自 MP3 的帧? 在一些文章中说,每个帧头的标记是 Hexa (FF FB)。是真的吗?
最佳答案
所有 MP3 帧的开头都有一个同步字标记。这个同步字长 11 位,全为 1。所以 MP3 帧将以 FFF 或 FFE 开头。更多信息请参见以下链接 details关于MP3帧结构
这并不意味着任何以 0xFFE 或 0xFFF 开头的字节序列都是 MP3 帧头。可能还有很多其他情况
(a) 其他格式如 ADTS(AAC) 也有类似的同步字。 ADTS框架的更多细节是here .
(b) MP3 帧内的数据也可以包含 FFF/FFE 序列。
因此,确定字节序列是否为 MP3 的最佳方法是执行以下操作
(o) 搜索syncword(FFF或FFE)序列
(o) 通过解析sync word之后的header block来找出帧的长度
(o) 按帧长查找文件,看是否有另一个同步字。
如果是MP3文件,那么在当前同步字上加上帧长后,再找一个同步字。
关于mp3 - MP3 帧的标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10926967/