Autor
|
Tema: como encontrar la duracion de un mp3 (Leído 7,981 veces)
|
Belial & Grimoire
Desconectado
Mensajes: 559
Tea_Madhatter
|
hola tengo una duda, estoy sacando los tags de un mp3, y se me ocurrió encontrar la duración del mismo hasta ahorita mediante fseek he logrado sacar los hexadecimales, donde se encuentra la mayoria de las cosas, pero después de usar un rato el buscador del foro me encontré con esto, pero es para visual basic Para la duración de un archivo de audio, lo primero que tienes que plantearte es el formato. ¿Es un MP3? Por ejemplo, un archivo de tres minutos en MP3 codificado a 128 kilobits por segundo (Kbps) ocupa 2,8 Megabytes en disco duro.
Bien, 2,8 * 1048575 = 2936010 bytes. Ok, entonces 3 minutos a 128 kbps son unos 2936010 bytes lo que nos salen unos 978670 bytes por minuto.
Entonces, coges el tamaño del archivo con FileLen. Supongamos que te devuelve 1174404 bytes. Divide 1174404 entre 978670 y ¡voila! tenemos que el archivo tiene 1,2 minutos de duración con ftell puedo sacar el tamaño del archivo, y al parecer se multiplica por 1048576, que seria 128kb a bits (128x1024x8bits) lo que no entiendo es de donde salio la cantidad 978670?, alguien sabe como o de donde se obtiene esa cantidad? porque después de eso se obtiene la longitud y se divide entre esa cantidad y podría encontrar la duración espero me puedan ayudar
|
|
|
En línea
|
.
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
Bien, 2,8 * 1048575 = 2936010 bytes. Ok, entonces 3 minutos a 128 kbps son unos 2936010 bytes lo que nos salen unos 978670 bytes por minuto. lo que no entiendo es de donde salio la cantidad 978670?, alguien sabe como o de donde se obtiene esa cantidad? Se calcula, división entre tres. Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
Belial & Grimoire
Desconectado
Mensajes: 559
Tea_Madhatter
|
jeje ok gracias, lo intente entre 60 y entre 180 y no se me ocurrió entre 3
gracias de nuevo
|
|
|
En línea
|
.
|
|
|
engel lex
|
y que pasa si es un mp3 con bitrate variable? D:
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Belial & Grimoire
Desconectado
Mensajes: 559
Tea_Madhatter
|
mmm cierto, no lo habia pensado, mmm creo tendre que googlear un poco mas
bueno, ahorita intente hacer lo mismo en un mp3 de 128kbps que pesa 4.1mb y al final me dio 3.88, que redondeando me aparece 3.9, y para encontrar el tamaño exacto dividi la longitud, ((longitud/1024.0)/1024.0) = 3.9 y le tuve que sumar 0.2 para que me aparezca igual que en las propiedades 4,1
al hacer la misma operacion de arriba, multiplique 4.1 * 1048576, despues dividi el resultado por el mismo tamaño redondeado y me aparecio 1074790
y para finalizar, dividi la longitud entre los bites por minuto
4064417÷1074790 = 3,781591753, lo que serian 3 minutos y siete segundos, redondeado serian 3.8, y le sume 0.2, de los primeros 0.2 que le sume al principio, asi que seria 3.8+0.2= 4.1
la duracion del mp3 es de 4:12, seria muy cercano a 4.1, pero no sabria si es 4:01 o 4:10, a lo que le veo muchos problemas porque ademas la duracion es de 4:12 y no 4:01 ni 4:10
alguien sabria otra forma de hacer esto, o como podria mejorarlo?
salu2
|
|
|
En línea
|
.
|
|
|
engel lex
|
4.1 minutos = 4.1 * 60 = 246 = 4:06 y te debe descuadrar porque no todos los bits son "musica" hay cabeceras y ciertas codificaciones (ya tu mismo las viste)
de donde sacas ese 0.2? fue arbitrario?
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Belial & Grimoire
Desconectado
Mensajes: 559
Tea_Madhatter
|
sip, 0.2 lo puse solo para llegar a 4,1, ya que por la longitud, me salio 3.9 redondeado, asi que hice la prueba con un mp3 y un .avi y me aparecio bien la cantidad al sumarle 0.2 al final
(((longitud/1024.0)/1024.0) + 0.2);
pues creo buscare otra forma de encontrar la duracion, se me ha ocurrido encontrar la longitud eliminando los ID3_tags del inicio y del final, y luego dividirlo entre el bitrate, el problema es como mencionaste, como saber cuando el bitrate es variable
|
|
|
En línea
|
.
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
alguien sabria otra forma de hacer esto, o como podria mejorarlo?
Creo que simplemente es esto:3,9 MB* 1024 KB/MB = 3993,6 KB 3993,6 KB * 8 kb/kB = 31948,8 kb en total 31948,8 kb / 128 kb/s = 249,6 segundos / 60 S= 4,16 MIN = 4 MIN 9,6 SEG
O sea los 4.10, redondeando, que te marcaba.Saluditos!. .... ..
|
|
« Última modificación: 28 Mayo 2013, 12:04 pm por leosansan »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Duracion de sesiones
PHP
|
XafiloX
|
3
|
6,405
|
4 Abril 2009, 12:13 pm
por XafiloX
|
|
|
¿cómo modificar TOC de audio CD para emular una duración mayor a la real?
Ingeniería Inversa
|
4rm4ndo
|
1
|
3,785
|
18 Marzo 2011, 16:16 pm
por apuromafo CLS
|
|
|
Sabeis como programar o donde encontrar un textbox numérico como el de la imagen
Programación Visual Basic
|
P0wer_
|
3
|
2,646
|
12 Noviembre 2012, 19:50 pm
por seba123neo
|
|
|
como reparo duración errónea de audio mp3
Multimedia
|
franfis
|
1
|
3,291
|
12 Marzo 2015, 14:51 pm
por Songoku
|
|
|
Como obtener la duracion de los videos de una forma mas optima
.NET (C#, VB.NET, ASP)
|
juanedwin
|
3
|
6,016
|
11 Enero 2022, 13:29 pm
por Mohicano
|
|