2010-03-07 30 views
6

Comment puis-je créer une somme de contrôle de seulement les données de médias sans les métadonnées pour obtenir une identification stable pour un fichier multimédia. De préférence, une approche multi-plateforme avec une bibliothèque qui prend en charge de nombreux formats. par exemple. vlc, ffmpeg ou mplayer.Comment puis-je créer une somme de contrôle stable d'un fichier multimédia?

(fichiers multimédias doivent être audio et vidéo dans des formats communs, les images seraient bien d'avoir trop)

+2

Je pense que vous cherchez un algorithme de dactyloscopie ... Ce qui serait intéressant car il peut être utilisé pour identifier des médias similaires, aussi. Dans l'attente de réponses, se cogner. +1 – hurikhan77

+0

Les empreintes digitales sont intéressantes aussi, il y a par exemple. libofa [1] pour l'audio (que je n'ai pas pu compiler sur osx malgré les patches) mais je veux quelque chose de plus générique pour identifier les fichiers en double et ne pas dupliquer les chansons/films. [1] http://code.google.com/p/musicip-libofa/ – yawniek

+0

par "sans les tags" voulez-vous dire "sans les métadonnées"? si c'est le cas, dire "données médiatiques" peut confondre les choses. – cregox

Répondre

3

Je ne Je connais tout logiciel existant indépendant de la plate-forme qui accomplira ceci, mais je sais comment cela pourrait être accompli dans un langage interprété (indépendant de la plate-forme) tel que Java. Essentiellement, nous avons simplement besoin de supprimer toutes les métadonnées (étiquettes) du fichier, en démultiplexant les fichiers vidéo au préalable. Théoriquement, après le démultiplexage et la suppression des métadonnées, on pourrait hacher le fichier et comparer avec un autre fichier qui a subi le même processus pour faire correspondre des fichiers identiques malgré des balises différentes. Contrairement à une empreinte digitale, cela n'identifie pas les chansons/films similaires mais les fichiers identiques (imaginez que vous voulez les 10 versions différentes ou les débits d'une chanson donnée que vous avez archivée, mais ne voulez pas que 2 copies identiques flottent) . La partie la plus troublante de ceci est de retirer des étiquettes car il existe de nombreuses spécifications différentes pour les formats d'étiquettes qui ne sont pas forcément identiques pour différentes applications, à savoir le même fichier audio donné avec des étiquettes identiques séparément pour deux applications différentes. dans des fichiers de sortie identiques. La seule façon de résoudre le problème de la somme de contrôle audio uniquement est de savoir si un logiciel de balisage populaire apporte des modifications à la partie audio binaire du fichier ou si l'audio n'est pas standard. Prendre une somme de contrôle est trivial, mais je ne suis pas conscient de la tête de toutes les bibliothèques indépendantes de la plate-forme pour démultiplexer et detag les fichiers MPEG. Je sais que dans les environnements 'nix', mpgtx est un excellent outil de ligne de commande qui pourrait effectuer le demux et le detag, mais évidemment ce n'est pas une solution indépendante de la plate-forme.

Peut-être que quelqu'un se sent ambitieux?

+0

c'est la voie à suivre. Pendant ce temps, j'ai écrit ha patch pour ffmpeg pour calculer les hachages sha1 au lieu de somme de contrôle adler32. cela fait essentiellement l'affaire. si quelqu'un voudrait m'aider à apporter cela à ffmpeg ce serait génial. – yawniek

0

une solution que j'ai trouvé semble être avec vlc:

./VLC -I rc snd.mp3 :sout='#std{mux=raw,access=file,dst=-}' vlc://quit | sha1sum 
+0

semble ne pas fonctionner pour les films, ne semble pas être indépendant de la plate-forme – yawniek