1 votos

Duración de archivos MP3 en metadatos

Para el estudio del idioma, descargo frecuentemente nueve archivos MP3 de varias fuentes diferentes y los importo a Music.app. Todos son monaurales (es decir, una pista única). Music.app muestra una duración incorrecta para la mayoría de ellos. La mayoría de los incorrectos muestran una duración aproximadamente la mitad de lo que debería ser, pero más alejado que un simple error de redondeo. eyeD3 y exiftool también muestran duraciones incorrectas pero significativamente diferentes de las que muestra Music.app. Finder muestra la duración correcta.

Si reproduzco una de estas pistas con Music.app, la barra de progreso va hasta el final como si la duración mostrada fuera correcta, y se queda allí mientras la pista sigue tocando.

Si edito el audio con Amadeus Pro para eliminar silencios excesivos en cada extremo, y lo guardo, eyeD3 y exiftool luego mostrarán la duración correcta. Music.app la corregirá si/cuando reproduzco el archivo o obtengo información sobre el archivo corregido. (Amadeus muestra el valor correcto antes de la edición.)

¿Cómo obtienen Music.app, eyeD3 y exiftool duraciones que no solo son incorrectas, sino diferentes entre sí? ¿Existe alguna manera de corregir la duración sin editar el archivo? (Reproducirlo antes de editar no corrige el valor en ninguna de las tres herramientas.)

0voto

gnasher729 Puntos 320

Dado que preguntas "cómo"...

Un archivo mp3 consta principalmente de bloques de música/sonido. Cada bloque tiene una cabecera. La cabecera describe exactamente cómo está codificada la música en el bloque, y a partir de eso un reproductor de MP3 sabe exactamente cuántos bytes y cuántos microsegundos tiene ese bloque, y cómo reproducirlo. Ten en cuenta que cada bloque de sonido podría estar en un formato diferente, y tu reproductor de MP3 manejará esto.

En principio, esa es toda la información necesaria para determinar exactamente cuántos segundos dura todo el archivo. Simplemente lee el archivo desde el principio, averigua dónde comienzan los bloques de música, calcula su tiempo y los suma todos. Por lo tanto, no se necesita ningún metadato excepto las cabeceras de estos bloques.

Para comenzar la reproducción instantáneamente (especialmente para la transmisión), a menudo hay un metadato que describe cuánto dura el archivo en segundos. El reproductor de MP3 confiará en esto. Así que si el metadato es incorrecto, mostrará resultados incorrectos. El metadato también puede contener posiciones, por ejemplo, dónde comienzan los bloques a 1 segundo, 2 segundos, y así sucesivamente, para que el reproductor de MP3 pueda saltar rápidamente a cualquier punto.

Como alternativa, el reproductor de MP3 puede hacer conjeturas. Por ejemplo, si tu archivo comienza con 20 bloques a 128 kilobits, estéreo, tasa fija. Entonces el reproductor de MP3 podría suponer que todo el archivo es a 128 kilobits, estéreo, tasa fija. Entonces sabe la longitud del archivo en bytes y calcula cuánto tiempo duraría todo el archivo. Si la conjetura es incorrecta, la salida será incorrecta. Por ejemplo, si el archivo cambia de tasa de bits de bloque a bloque. Si dos reproductores de MP3 adivinan incorrectamente el tiempo y de manera diferente, entonces estos reproductores mostrarán diferentes longitudes incorrectas de archivo.

Si el problema es el metadato, entonces puedes eliminar el metadato. Sin metadatos, el reproductor debería leer todos los bloques y calcular el tiempo. Incluso para 50 MB / una hora, eso sería rápido. Si el reproductor no reproduce correctamente sin metadatos, entonces lo único que puedes hacer es agregar metadatos correctos.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X