Saltar al contenido
AZ Tools

Inspector de metadatos FLAC

Un archivo FLAC son cuatro bytes de marca seguidos de una cadena de bloques de metadatos —cada uno con una cabecera de cuatro bytes que lleva el indicador de último bloque, el tipo y una longitud de 24 bits— y después las tramas de audio. Esta página recorre esa cadena y muestra lo que hay de verdad: qué bloques existen, en qué orden, en qué desplazamiento, cuánto ocupa cada uno, cuál está marcado como último y, por tanto, dónde empieza exactamente el audio. De STREAMINFO salen la frecuencia de muestreo, el número de canales, la profundidad de bits y el total de muestras, así que la duración es exacta y no una estimación a partir de la tasa de bits; y comparar los bytes posteriores a los metadatos con el PCM sin comprimir que esas cifras implican da el ratio de compresión real de este archivo. Un total de muestras igual a cero es legal: significa que el codificador iba en streaming y nunca supo la duración. VORBIS_COMMENT es la parte que más lectores de etiquetas se equivocan: es un multimapa, así que ARTIST puede aparecer tres veces y un programa que lo cargue en un diccionario normal se queda con un valor y descarta el resto sin avisar. Aquí se listan todas las líneas en el orden del archivo, con los nombres repetidos señalados. Los bloques PICTURE declaran ancho, alto, profundidad de color y número de colores que nadie verifica, de modo que cada imagen se decodifica en el navegador y sus dimensiones reales aparecen junto a las declaradas. De SEEKTABLE se resumen los puntos, cuántos son marcadores de posición y el tramo que cubren; de CUESHEET, el número de catálogo, la entrada y las pistas; de APPLICATION, su identificador registrado; de PADDING, cuántos bytes están sin usar. Una etiqueta ID3v2 pegada delante no forma parte del formato pero es frecuente y desplaza la marca fLaC del desplazamiento 0: se detecta y se informa en lugar de tratar el archivo como roto. Lo que no puede decirte es si el audio decodifica: el MD5 de STREAMINFO es del PCM decodificado, así que verifica un ciclo sin pérdidas y no los bytes del disco, y comprobarlo exige decodificar todo el flujo.

Cómo usar

  1. Suelta un archivo .flac en el recuadro. Solo se lee el principio del archivo, así que un tema largo se abre igual de rápido que uno corto.
  2. Mira primero las fichas del flujo: la frecuencia, la profundidad y los canales vienen de STREAMINFO, y la duración es exacta porque el total de muestras está guardado, no estimado.
  3. Compara el ratio de compresión con el tamaño del PCM sin comprimir que tiene al lado: ese es el ahorro real, y un ratio pobre suele hablar más del máster que del codificador.
  4. Recorre la tabla de bloques para ver la estructura: qué bloques hay, dónde empieza cada uno, cuál está marcado como último y en qué desplazamiento arrancan las tramas.
  5. En la lista de comentarios, fíjate en los campos marcados como repetidos: son los que llevan más de un valor y los que los editores de etiquetas suelen fundir en uno.

Preguntas frecuentes

La misma etiqueta aparece dos veces. ¿Es un error?
No: así es como el formato guarda varios valores. Un bloque de comentarios Vorbis es una lista de líneas NOMBRE=valor, no un diccionario, de modo que ARTIST puede aparecer tres veces en una colaboración y GENRE dos en un disco a caballo entre dos estilos. Los nombres de campo no distinguen mayúsculas, así que artist y ARTIST son el mismo campo, y el orden de las líneas es el que escribió el codificador. Un lector que convierta el bloque en un mapa normal conserva un valor por nombre y tira el resto sin decir nada: por eso un tema etiquetado con tres artistas vuelve con uno tras pasar por el editor equivocado. Esta página muestra todas las líneas en orden y marca los nombres que salen más de una vez.
¿Qué es el MD5 de STREAMINFO y demuestra que el archivo está intacto?
Es el MD5 del audio decodificado —las muestras entrelazadas, con signo y en little-endian, tal como salen del decodificador— y no del archivo. Ahí está su utilidad: si recodificas el mismo audio con otro nivel de compresión, cambian todos los bytes del archivo pero este MD5 sigue igual, y eso es lo que demuestra que la conversión fue sin pérdidas. También es la razón de que no se pueda comprobar mirando el archivo: hay que decodificar el flujo entero y calcular el hash del resultado, que es lo que hace flac -t. Algunos codificadores dejan el campo en dieciséis bytes a cero, lo que significa que no se guardó firma, no que la firma falle.
La duración es desconocida y el total de muestras es 0. ¿Está roto?
Es un flujo, no un archivo roto. El número de muestras de STREAMINFO se escribe al final, cuando el codificador ya sabe cuánto duraba la entrada; uno que escribe en una tubería o en una emisión no puede volver atrás para rellenarlo, así que deja cero, algo que la especificación permite de forma explícita. Los reproductores lo resuelven decodificando hasta que se acaban las tramas, y algunos muestran una duración que crece mientras suena. El resto de STREAMINFO —frecuencia, canales, profundidad, MD5— sigue siendo válido y el archivo se reproduce con normalidad. Decodificarlo y volver a codificarlo a un archivo real es lo que escribe esa cifra.
¿Por qué mi FLAC empieza con una etiqueta ID3?
Porque lo escribió una herramienta pensada sobre todo para MP3. FLAC guarda sus etiquetas en el bloque VORBIS_COMMENT y la especificación no tiene sitio para ID3, pero ID3v2 está diseñado para ir al principio del archivo, así que algunos extractores, reproductores y aplicaciones de móvil lo añaden igualmente. La mayoría de decodificadores lo saltan; unos pocos rechazan el archivo porque fLaC no está en el desplazamiento 0. Esta página detecta la etiqueta, dice cuántos bytes ocupa y lee los metadatos reales desde donde empieza de verdad la marca. Conviene saber que lo escrito en ese ID3 es invisible para el software que entiende FLAC, así que el mismo archivo puede mostrar un título aquí y otro distinto en otro sitio.
¿Qué ratio de compresión es normal en FLAC?
La mayoría de la música se queda entre el 50% y el 70% del PCM sin comprimir, y la cifra de aquí se calcula justo así: los bytes posteriores al último bloque de metadatos divididos entre muestras totales × canales × profundidad ÷ 8. El material tranquilo o poco denso comprime mucho mejor; los másteres altos y muy limitados, bastante peor; y lo que se parece al ruido, casi nada. El nivel del codificador (-0 a -8) cambia el tiempo de codificación y mueve el tamaño un par de puntos, pero nunca cambia el audio, porque todos los niveles son sin pérdidas. Un máster de 24 bits suele dar peor ratio que uno de 16 porque los bits bajos se parecen al azar y no hay nada que predecir.
¿Se sube el archivo? ¿Puede verificar el audio?
No a las dos cosas. El archivo se abre con la File API del navegador y se analiza en la página; ni siquiera se lee entero, porque los metadatos están al principio y las tramas posteriores solo se miden. No se envía nada a ningún sitio y no hay servidor al que enviarlo. La segunda mitad de la respuesta importa igual: nada de lo que se muestra aquí afirma nada sobre el audio. Las longitudes de bloque, las etiquetas y las imágenes salen de los metadatos, las tramas no se decodifican nunca y el MD5 guardado se copia en vez de comprobarse, así que un archivo con metadatos perfectos y audio corrupto se ve perfectamente sano en esta página. Lo que descubre eso es decodificar.

Herramientas relacionadas