5 Stimmen

Berechnung der Prüfsumme von Audiodateien ohne Berücksichtigung des Headers

Ich möchte programmatisch eine SHA1-Prüfsumme von Audiodateien (MP3, Ogg Vorbis, Flac) erstellen. Die Anforderung ist, dass die Prüfsumme stabil sein sollte auch wenn sich der Header (z.B. ID3) ändert .
Hinweis: Die Audiodateien haben keine CRCs

Das habe ich inzwischen ausprobiert:

1) Lesen und Hashing aller MPEG-Frames mit Perl und MPEG::Audio::Rahmen

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

2) Dekodierung + Hashing aller MPEG-Frames mit Python und libmad (pymad)

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

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

3) Verwendung mp3cat

> mp3cat - - < file.mp3 | sha1sum

Keine dieser Methoden lieferte jedoch eine stabil Prüfsumme. Und zwar in algunos Fälle, in denen sich die Prüfsumme nach der erneuten Kennzeichnung der Datei mit Picard .

Gibt es Bibliotheken, die bereits das bieten, was ich brauche?
Die Programmiersprache ist mir egal

Aktualisierung: Ich habe den Fall noch etwas weiter untersucht. Die libmad-Prüfsummeninkonsistenz scheint in Fällen aufzutreten, in denen libmad einige Dekodierungsfehler bekommt, wie "Huffman-Datenüberlauf (0x0238)" . Da dies wirklich bei vielen mp3-Dateien vorkommt, bin ich nicht sicher, ob es wirklich auf eine defekte Datei hinweist

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X