gpt4 book ai didi

c# - 如何确定 mp3 文件头的长度?

转载 作者:行者123 更新时间:2023-11-30 17:23:28 28 4
gpt4 key购买 nike

我正在编写一个程序来比较,并根据两端的变化复制整个文件或段(Rsync-esque...但更像 Unison)。主要想法是让我的音乐文件夹(所有 mp3)在多个位置保持最新。

如果文件只有一小部分发生变化,我想发送分段更新,而不是复制整个文件。为此,我需要一种方法来区分文件的各个部分。

我最初尝试为每个文件的 block 生成散列(每 n 个字节我会对段进行散列)。我注意到当我更改一个属性(mp3 上的 id3v2 标签)时,所有散列 block 都会更改。这是有道理的,因为我猜标题会随着获取新信息而增长。

这引出了我的实际问题。我想知道如何确定 mp3 header 的长度,以便创建 2 个可比较的哈希。

1) 文件的元信息(header)

2) 带有音频的实际 mpeg 流(如果我所做的只是更改标签信息,则此哈希应保持不变)

我还遗漏了什么吗?

谢谢!

最佳答案

如果你只想检查id3v2标签的长​​度,那么你可以在http://www.id3.org/id3v2.4.0-structure找到关于它的结构的信息。 .

如果读取前3个字节,等于“ID3”,则跳到第7个字节,再读取header size。不过要小心,因为大小存储为“同步安全整数”。

关于c# - 如何确定 mp3 文件头的长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2180521/

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