【问题标题】:What is the proper length of an ID3v2 frame?ID2V2 帧的正确长度是多少
【发布时间】:2023-04-02 13:10:01
【问题描述】:

在描述 ID3v2 标头和其中的帧时,https://id3.org/id3v2.3.0#ID3v2_frame_overview 声明: “帧 ID 后跟一个大小描述符,使得每帧的总头大小为 10 个字节”

然而,当我使用十六进制编辑器查看 ID3 标记的帧时,该帧似乎是 12 个字节。我看过很多歌曲,它们似乎有标签,然后是一个 4 字节大小的描述符,然后是 4 个额外的字节(描述说这应该是两个标志字节)

我承认我在这里有点深度,但我正在尝试使用 PHP 编写 ID3v2 标签,但我有点难过。

谢谢

【问题讨论】:

  • 我现在找到了一些尊重十字节帧头的歌曲,所以我将继续写十字节,除非这里有人说这是个坏主意。

标签: mp3 mpeg id3v2


【解决方案1】:

你还没有读过3.3.1. Frame header flags

一些标志表明帧头扩展了附加信息。该信息将按照与指示添加的标志相同的顺序添加到帧头中。 IE。解压后大小的四个字节将在加密方法字节之前。

除了3.3. ID3v2 frame overview之外还有以下意思:

帧头的布局:

Frame ID       $xx xx xx xx (four characters)
Size           $xx xx xx xx
Flags          $xx xx

如果仔细查看 10 字节帧头的这 2 个字节“标志”,那么您必须根据设置的标志期待额外的字节:

  • 第 7 位(“i”)= 4 个字节“解压缩后的大小”
  • 第 6 位(“j”)= 1 个字节“加密方法”
  • 第 5 位(“k”)= 多 1 个字节的“组标识符”

所以你的观察可能是正确的。如果您链接到此类文件的前 4096 个字节,那么我可以告诉您它们是否仍然按照标准正确,尽管它们“看起来”像每个标题有 12 个字节。

【讨论】:

    猜你喜欢
    • 2020-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 1970-01-01
    • 2010-11-20
    相关资源
    最近更新 更多