我正在做一种flac解析器,我需要解析每一帧的标题。有一个字段以 flac 格式 ( https://xiph.org/flac/format.html#frame_header ) 描述



和 [4] 说:



如果它是 8-56 或 8-48 位,我绝对无法理解我应该如何知道这个字段的大小。为什么解码后的数字是 36 位或 31 位?此外,当我在十六进制编辑器中打开带有 UTF-8 编码的 flac 文件时,该字段中没有数字。我将非常感谢任何帮助。

最佳答案

UTF-8 编码样本意味着第一个字节(帧头的 5 个字节)包含重要位,它会告诉您有多少后续字节是帧/样本号的一部分。

您可以在此处检查有效位的格式:https://en.wikipedia.org/wiki/UTF-8

如果数字用 48 位编码,则如下所示:
1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

它有 31 位 ('x'),您可以将其提取并放入更易于管理的类型,例如 UInt32。

关于audio - 看不懂flac帧头格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53267434/

10-12 15:14