如何解压 ID3 header 的大小
How to unpack ID3 header's size
我正在尝试使用 Python 2.7 解压缩 ID3v2.3 header。但是,我并不完全理解 MP3 格式的前 10 个字节。例如:
49 44 33 03 00 00 | 00 00 21 76 | 54 41 4C 42
.I .D .3 .3 .0 | RawSize | Size
使用 Synalyze it! 我可以看到 RawSize
是 0x2176
而 Size
是 4342
。
偏移量 4352
是 MPEG 数据帧的开始位置。我需要知道怎么做
54 41 4C 42
被转换为 4342
因为当我尝试时:
>>> unpack('i', '\x54\x41\x4C\x42')
(1112293716,)
反正看起来不像 4352
!
我应该如何阅读它们?
首先,你给了 14 个字节,而不是 10 个。
其次,您完全读错了尺码。该大小使用解压缩的 7 位值而不是 8 位值。
>>> 0x00 << 21 | 0x00 << 14 | 0x21 << 7 | 0x76
4342
我正在尝试使用 Python 2.7 解压缩 ID3v2.3 header。但是,我并不完全理解 MP3 格式的前 10 个字节。例如:
49 44 33 03 00 00 | 00 00 21 76 | 54 41 4C 42
.I .D .3 .3 .0 | RawSize | Size
使用 Synalyze it! 我可以看到 RawSize
是 0x2176
而 Size
是 4342
。
偏移量 4352
是 MPEG 数据帧的开始位置。我需要知道怎么做
54 41 4C 42
被转换为 4342
因为当我尝试时:
>>> unpack('i', '\x54\x41\x4C\x42')
(1112293716,)
反正看起来不像 4352
!
我应该如何阅读它们?
首先,你给了 14 个字节,而不是 10 个。
其次,您完全读错了尺码。该大小使用解压缩的 7 位值而不是 8 位值。
>>> 0x00 << 21 | 0x00 << 14 | 0x21 << 7 | 0x76
4342