2010-03-07 13 views
6

¿Cómo puedo crear una suma de comprobación de solo los datos multimedia sin los metadatos para obtener una identificación estable para un archivo multimedia? preferiblemente un enfoque de plataforma cruzada con una biblioteca que tiene soporte para muchos formatos. p.ej. vlc, ffmpeg o mplayer.¿Cómo puedo crear una suma de comprobación estable de un archivo multimedia?

(archivos multimedia deben estar audio y vídeo en los formatos más comunes, las imágenes sería bueno tener también)

+2

Creo que está buscando algún algoritmo de huellas dactilares ... Lo que sería interesante, ya que también se puede utilizar para identificar medios similares. Esperando respuestas, golpes. El +1 – hurikhan77

+0

huella digital también es interesante, por ejemplo, libofa [1] para audio (que no pude compilar en osx a pesar de parches) pero quiero algo más genérico para identificar archivos duplicados y no duplicar canciones/películas. [1] http://code.google.com/p/musicip-libofa/ – yawniek

+0

por "sin las etiquetas" ¿quiere decir "sin los metadatos"? si es así, decir "datos de medios" puede confundir las cosas. – cregox

Respuesta

3

no lo hago Conozco cualquier software existente independiente de la plataforma que lo logre, pero conozco una forma de lograr esto en un lenguaje interpretado (independiente de la plataforma) como Java.

Esencialmente, simplemente necesitamos quitar todos los metadatos (etiquetas) del archivo, demultiplexando previamente los archivos de video. Teóricamente, después del demultiplexado y la eliminación de los metadatos, uno podría copiar el archivo y compararlo con otro archivo que haya pasado por el mismo proceso para hacer coincidir los archivos idénticos a pesar de tener etiquetas diferentes. A diferencia de una huella dactilar, esto no identificaría canciones/películas similares, sino archivos idénticos (imagine que puede desear las 10 versiones diferentes o bitrates de una canción dada que ha archivado, pero no quiere 2 copias idénticas de ninguna de ellas flotando) . La forma más problemática es eliminar etiquetas ya que hay muchas especificaciones diferentes para formatos de etiqueta que en archivos de salida idénticos. La única forma en que esto podría suponer un problema fatal para el concepto de una suma de comprobación de solo audio es si el popular software de etiquetado realiza algún cambio en la parte de audio binario del archivo, o rellena el audio de una manera no estándar.

Tomar una suma de verificación es trivial, pero no conozco de ninguna manera las bibliotecas independientes de la plataforma para demultiplexar y separar archivos mpeg. Sé que en los entornos 'nix, mpgtx es una gran herramienta de línea de comandos que podría realizar el demux y detag, pero obviamente esa no es una solución independiente de la plataforma.

Tal vez alguien por ahí se siente ambicioso?

+0

este es el camino a seguir. Mientras tanto, escribí un parche para ffmpeg para calcular hashes sha1 en lugar de checksum adler32. esto esencialmente hace el truco. si alguien quisiera ayudarme a llevar esto a ffmpeg sería genial. – yawniek

0

una posible solución que encontré parece ser con VLC:

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

parece no funcionar para películas, parece no ser plataforma independiente – yawniek

Cuestiones relacionadas