gpt4 book ai didi

audio - 解码二进制/十六进制WAV文件元数据的建议-Pro Tools UMID block

转载 作者:行者123 更新时间:2023-12-03 01:27:38 47 4
gpt4 key购买 nike

Pro Tools(AVID的DAW软件)具有使用Unique ID字段管理和链接到其所有唯一媒体的过程,该字段以umid元数据块的形式嵌入到WAV文件中。在Pro Tools中检查特定文件,我可以看到文件的Unique ID以11个字符串的形式出现,类似于:rS9ipS!x6Tf

当我检查WAV文件中的原始数据时,我发现一个32字节的数据块-字符'umid'为4字节;后续数据块的大小为4个字节-24;然后是24字节的数据块,在Hex Fiend中进行检查时,看起来像这样:

00000000 0000002A 5B7A5FFB 0F23DB11 00000000 00000000



如您所见,只有9个字节包含任何非零信息,但这是以某种方式用于存储11个char Unique ID字段。在我看来,似乎正在做一些事情来解释原始数据以检索该唯一ID字符串,但是我对原始数据进行解码的所有尝试都没有取得任何成果。我尝试使用 https://gchq.github.io/CyberChef/通过所有有意义的不同格式运行它,但是没有任何东西指向正确的方向。我还尝试了以6位为增量查看数据,看是否以某种方式进行了压缩(9字节* 8位== 72 == 12块* 6位),但还没有在模式上碰到任何运气。

因此,我想知道是否有人对如何最好地弄清这里可能发生的情况有任何具体的提示/技巧/建议-如何解压缩这些数据,使我可能最终获得足够的信息来生成这些数据11个字符,我猜很可能是UTF-8。

欢迎任何帮助/建议!谢谢。

最佳答案

看来这只是base64编码,只是字符映射略有不同,这是我发现与Pro Tools最匹配的python实现。

char_map = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789#!"

def encode_unique_id(uint64_value):
# unique id is a uint64_t, clamp
value = uint64_value & 0xFFFFFFFFFFFFFFFF
if value == 0:
return ""

# calculate the min number of bytes
# needed store value for int
byte_length = 0
tmp = value
while tmp:
tmp =tmp >> 8
byte_length += 1

# calculate number of chars needed to store encoding
char_total, remainder = divmod(byte_length * 8, 6)
if remainder:
char_total += 1

s = ""
for i in range(char_total):
value, index = divmod(value, 64)
s += char_map[index]
return s

运行 encode_unique_id(0x2A5B7A5FFB0F23DB11)应该会给你 rS9ipS!x6Tf

关于audio - 解码二进制/十六进制WAV文件元数据的建议-Pro Tools UMID block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59384539/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com