当前位置:  开发笔记 > 编程语言 > 正文

在不考虑标题的情况下计算音频文件的校验和

如何解决《在不考虑标题的情况下计算音频文件的校验和》经验,为你挑选了0个好方法。

我想以编程方式创建音频文件的SHA1校验和(MP3,Ogg Vorbis,Flac).要求是即使标题(例如ID3)改变,校验和也应该是稳定的.
注意:音频文件没有CRC

这是我现在尝试的:

1)使用Perl和MPEG :: Audio :: Frame读取+散列所有MPEG帧

my $sha1 = Digest::SHA1->new;
while (my $frame = MPEG::Audio::Frame->read(\*FH)) {
    $sha1->add($frame->content());
}

2)使用Python和libmad(pymad)解码+散列所有MPEG帧

mf = mad.MadFile(path)
sha1 = hashlib.sha1()

while 1:
    buf = mf.read()
    if (buf is None):
        break
    sha1.update(buf)

3)使用mp3cat

> mp3cat - - < file.mp3 | sha1sum

但是,这些方法都没有提供稳定的校验和.也就是说,在某些情况下,在使用picard重新归档文件后,校验和发生了变化.

是否有任何图书馆已经提供了我想要的东西?
我不关心编程语言......

更新: 我进一步调试了案例.libmad校验和不一致似乎发生在libmad获得一些解码错误的情况下,例如"Huffman数据溢出(0x0238)".因为这确实发生在许多mp3文件上,我不确定它是否真的表明文件损坏...

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有