¿Existe una herramienta que pueda detectar (y, si es posible, corregir) fallas en los archivos MP3? [cerrado]

31

Mi colección contiene algunos MP3 que tienen algunos problemas técnicos como:

  • mostrando la duración incorrecta al cargar
  • saltos menores
  • que termina repentinamente a pesar de la duración reclama otro minuto restante
  • ruido

Estoy buscando una herramienta que pueda detectar la mayor cantidad posible de estos problemas técnicos y corregir los que se pueden arreglar (obviamente, por ejemplo, el ruido no se puede eliminar simplemente en la mayoría de los casos).

Tobias Kienzler
fuente
Esos suenan como problemas de jugadores. ¿Estás seguro de que son causados ​​por tus archivos MP3?
digitxp
@digitxp el final repentino probablemente se deba a que faltan partes del archivo, pero el tiempo que se muestra incorrectamente puede ser causado por VLC. Pero aún así eso significa que hay algo mal con el archivo ya que otros archivos muestran la hora correcta. El ruido y los saltos pueden deberse a una mala lectura del CD, digitalicé mi colección sin hacer verificaciones dobles: - /
Tobias Kienzler
hm, la duración incorrecta podría provenir de VBR vs CBR ... por lo que los problemas restantes son incompletos y errores de lectura de CD
Tobias Kienzler

Respuestas:

35

La herramienta de línea de comandos mp3val agiliza el escaneo y, opcionalmente, la reparación de defectos estructurales en archivos mp3. Intento ejecutarlo en casi todos los archivos de mi colección, con el principio de "no puedo hacer daño". Identifica un número sorprendente de archivos ostensiblemente buenos con defectos que van desde intrascendentes hasta severos.

mp3val es especialmente bueno para reconocer y corregir las deficiencias de encabezado, como la falta de encabezados VBR en un archivo VBR (la fuente de la mayoría de los problemas de búsqueda y duración incorrecta). Pero también eliminará los datos de la trama de audio dañada / dañada, una información inutilizable que algunos jugadores pueden manejar con menos elegancia si se deja en el archivo.

Incluso se le puede pedir que ejecute un directorio completo de mp3, reparando solo aquellos archivos con los que encuentra problemas, manteniendo copias de seguridad (u opcionalmente no), conservando marcas de tiempo (opcionalmente) y registrando la sesión en un archivo de texto (opcionalmente).

¡Y es gratis y de código abierto! (El enlace es a su proyecto sourceforge).

EDITAR: Una última cosa que olvidé mencionar. "¡Pero mp3val no se ha actualizado desde 2009!", Te escucho llorar. Eso es muy cierto ! Ha estado funcionando bien desde 2009, y no ha necesitado una actualización. (¡Después de todo, no es que el formato de archivo MP3 haya cambiado en los últimos 2 años!)

FeRD
fuente
también +1 por segunda vez para editar :-) aunque parece que todavía hay algunos errores válidos abiertos ...
Tobias Kienzler
1
Sí, parece que mp3val tiene algunos problemas reales en Windows 7 con algunos nombres de archivo esotéricos. Eso es lamentable. (Primera regla de la informática moderna: cualquier colección de MP3 suficientemente grande contendrá un archivo con cualquier forma de nombre de archivo esotérico.) ¡Podría usar algo de amor de un programador de Windows, si alguien está preparado! [OffTopic: Fue surrealista mirar el mp3val svn y descubrir que el parche más reciente había venido de mí, ¡especialmente porque me había olvidado por completo de hacerlo! ;-)]
FeRD
1
Lamentablemente, mp3val no pudo corregir algunos de mis archivos :(. Pero MP3Diagspude corregirlos (encabezado Xing en archivos VBR que conducen a una duración incorrecta que se muestra).
scai
@Marecky Eso es muy extraño. Acabo de probar mp3valFedora 28 y todavía funciona bien. La dependencia de biblioteca más esotérica que tiene es libm.so.6o libstdc++.so.6, por lo que no es probable que se produzca una ruptura ABI incompatible. Sin embargo, solo para verificar: en su modo predeterminado mp3val no tocará ningún archivo, solo realizará modificaciones si se ejecuta con la -fbandera, e incluso entonces, solo los archivos donde el modo de escaneo registró WARNING:o ERROR:serían modificados. Si no detecta ningún problema reparable, dejará sus archivos intactos.
FeRD
1
@FeRD - Tienes razón, ahora no recuerdo qué programa era (Audacious, Gnome MPV o Rhythmbox Music Player) pero después de extraer un CD con el último puse nuevos archivos en la lista de reproducción de uno de estos programas y vi mal tiempos de seguimiento, es por eso que pensé que los mp3 tienen índices incorrectos (o lo que sea que tenga dentro) y se ejecutan en ellos mp3val, pero los archivos eran correctos, es por eso que mp3valnunca mostraron ninguna advertencia y no corrigieron los archivos. No sé por qué el jugador mostró tiempos de seguimiento incorrectos, eliminaré mi comentario anterior.
Marecky
10

Supuse que ya probaste la primera opción en google ...? También un script perl, mp3checker , que podría ser útil.

Editar:

En cuanto a la reparación de sus pistas, puede darle un vistazo a MP3 Diags (enlaces a un artículo de lifehacker).

John
fuente
gracias, jaque mate es una buena herramienta para identificar archivos problemáticos (aunque todavía deja la tarea de arreglar las cosas si es posible)
Tobias Kienzler
1
Pulgares arriba para MP3 Diags. Tuve problemas con mi reproductor de mp3 que no informaba la duración correctamente. MP3 Diags encontró y solucionó el problema.
David L
4

mpck funciona en Windows y GNU / Linux.

Página de inicio: http://checkmate.gissen.nl/

Detecta cuadros defectuosos y genera informes opcionales.
También hay una interfaz gráfica de usuario para Windows.

mpck 0.19 - checks a MP3 file for errors

Usage: mpck [OPTION]... [FILE]...

Verbosity:
   -v, --verbose        print some extra info
   -q, --quiet          print only Ok or Bad per file
   -B, --badonly        only report bad files
Other options:
   -R, --recursive      check directories recursively
   -e, --extention=EXT  only check files ending on .EXT
   -r                   short for -R -e mp3
   -m, --maxname=NUM    report bad for filenames which exceed NUM characters
   -n, --namecheck      check for strange characters in the filename
   -x, --xmloutput      output results in XML
   -h, --help           print this help, then exit
   -V, --version        print version information

Actualizar:

Este programa parece ser totalmente capaz de manejar nombres de archivos utf-8, aunque no he probado glifos japoneses, chinos o más exóticos.

Gentoo (UTF-8)

$ mpck -r 2000\ -\ Завтрак\ на\ траве\ \(USA\)/  | grep SUM
SUMMARY: 2000 - Завтрак на траве (USA)//04-ja-sbrasyvaju-kozhu.mp3
SUMMARY: 2000 - Завтрак на траве (USA)//07-tak-vot-kakaja-ty-demo.mp3
SUMMARY: 2000 - Завтрак на траве (USA)//09-evrej-i-goj.mp3
SUMMARY: 2000 - Завтрак на траве (USA)//06-teplyj-dozhd'-demo.mp3
SUMMARY: 2000 - Завтрак на траве (USA)//01-vse-napominaet-o-tebe.mp3
SUMMARY: 2000 - Завтрак на траве (USA)//02-marsh-novoselov--sf-unplugged.mp3
SUMMARY: 2000 - Завтрак на траве (USA)//05-rubaha.mp3
SUMMARY: 2000 - Завтрак на траве (USA)//03-kalifornia-love.mp3

Cygwin con configuración regional UTF-8 (configuración regional japonesa en Windows)
El binario nativo de Windows no conoce Cygwin, así que tuve que convertir la salida.

$ mpck.exe -r "2000 - Завтрак на траве (USA)" | grep 'SUM' | 
       iconv -f CP932 -t UTF-8
SUMMARY: 2000 - Завтрак на траве (USA)\04-ja-sbrasyvaju-kozhu.mp3          
SUMMARY: 2000 - Завтрак на траве (USA)\07-tak-vot-kakaja-ty-demo.mp3       
SUMMARY: 2000 - Завтрак на траве (USA)\09-evrej-i-goj.mp3                  
SUMMARY: 2000 - Завтрак на траве (USA)\06-teplyj-dozhd'-demo.mp3          
SUMMARY: 2000 - Завтрак на траве (USA)\01-vse-napominaet-o-tebe.mp3        
SUMMARY: 2000 - Завтрак на траве (USA)\02-marsh-novoselov--sf-unplugged.mp3
SUMMARY: 2000 - Завтрак на траве (USA)\05-rubaha.mp3                     
SUMMARY: 2000 - Завтрак на траве (USA)\03-kalifornia-love.mp3            
Ярослав Рахматуллин
fuente
Gracias, aunque eso ya se ha mencionado en esta respuesta
Tobias Kienzler
mpck! = mp3check. ¿Me equivoco?
Ярослав Рахматуллин
No, es el enlace etiquetado como "la primera opción en google". Pero +1, sin embargo, ya que elaboras un poco sobre sus funciones
Tobias Kienzler
Correcto. Ignoré eso. Revisaré mp3val, pero hasta ahora mpck ha podido hacer todo lo que necesito desde un comprobador de mp3.
Ярослав Рахматуллин
2
En Linux, no me parece necesario aplicar ninguna solución para mp3val: AFAICT el error al que se hace referencia es un problema exclusivo de Windows. (Cualesquiera que sean las funciones que utiliza para analizar la línea de comando o manejar nombres de archivos no deben ser seguros para Unicode). En Linux, solo dañé a mano (al poner a cero bloques al azar con ghex) los archivos mp3 renombrados de la siguiente manera: Tësting 1.mp3 Testíng ®eally hµrd.mp3 ☭They don't get much weirder☭.mp3... mp3val no tenía problemas para procesarlos todos correctamente.
FeRD
0

Más simple es usar ffmpeg para copiar el archivo del que tiene la duración defectuosa en su etiqueta ID3. Esto hace que escriba la información correcta.

ffmpeg -i "audio.mp3" -acodec copy "audio_fixed.mp3"

Debido a que usa copia, toma una fracción del tiempo que toma la codificación original. Esto apenas se nota con una canción, pero realmente lo aprecias con un audiolibro de 7 horas. Después de volver a codificar, las etiquetas ID3 ahora tienen la información correcta.

Miriam English
fuente