Digamos que una longitud de cuadro MP3 en bytes es 104: ¿cómo obtener eso en milisegundos? ¿Hay alguna fórmula o algo para hacer eso?Cálculo de la longitud de las tramas MP3 en milisegundos
Respuesta
utilicé enfoque diferente para calcular el tiempo de cada fotograma en el archivo mp3 .. el supuesto de que todos los marcos presentan el mismo tamaño en el archivo .. así que acaba de obtener el tiempo total del archivo mp3 en milisegundos .. luego calcular cuadros en total en el archivo y finalmente dividir el tiempo total de cuadros en total .. lo que la fórmula se vería así:
float frameTime = totalTimeMillisec/totalFrames;
que obtendrá el tiempo total de todos los fotogramas de la pista en milisegundos .. después de hacerlo, obtuve alrededor de 52 milisegundos ... y eso fue similar a lo que dijo Mark Heath ..
todos modos gracias a todos por las soluciones ..
El marco no es lo mismo que el tiempo. PERO, si conoce el tamaño total, puede hacer algo como esto overhead + Frame * time = total size.
Tengo longitud de fotograma y tengo el tiempo de duración total del archivo mp3 ... pero necesito obtener de alguna manera el tiempo de cada fotograma en milisegundos ... por ejemplo, si obtengo 20 fotogramas mp3 obtengo alrededor de 1 milisegundos, lo que significa 1 segundo ... cómo lograr esto – SolidSnake
http://www.mp3-converter.com/mp3codec/frames.htm FrameSize = 144 * BitRate/(SampleRate + Padding) – Mikhail
http://en.wikipedia.org/wiki/MP3 tiene una entrada en la estructura de archivos MP3 pero debe intentar encontrar uno con más detalles.
El encabezado del marco contiene un campo denominado tasa de bits. Dada esta tasa de bits y el tamaño de los datos del fotograma, puede determinar la cantidad de tiempo real de la música en los datos de ese fotograma. Espero que la fórmula sea: DataSize = BitRate * TimeInterval.
Consulte http://www.mp3-tech.org/programmer/frame_header.html para obtener detalles sobre la codificación de la velocidad de bits.
No necesito el tamaño de la información .. Solo necesito el total tiempo de ese fotograma ... – SolidSnake
... que obtienes a través de una división. – Andrei
Debe analizar el encabezado del marco de MP3 para obtener la versión de MP3 y el número de capa (consulte this document para ver el formato de encabezado de marco). Una vez que los tenga, puede usar la siguiente tabla de búsqueda para obtener el número de muestras en el marco.
private static readonly int[,] samplesPerFrame = new int[,] {
{ // MPEG Version 1
384, // Layer1
1152, // Layer2
1152 // Layer3
},
{ // MPEG Version 2 & 2.5
384, // Layer1
1152, // Layer2
576 // Layer3
}
};
ok ... su MPEG versión 1 y la capa es 1152 ahora ¿dónde debería agregar eso para obtener el tiempo total del marco? – SolidSnake
la frecuencia de muestreo también se puede encontrar desde el encabezado MP3. La frecuencia de muestreo es muestras por segundo, por lo que el número de muestras dividido por la frecuencia de muestreo es la duración del cuadro. (No puedo recordar la parte superior de mi cabeza si tienes que factorizar el número de canales también, creo que sí, así que para el estéreo, primero reducirás a la mitad el número de muestras) –
hmm, ahora hice lo que me dijiste pero me estoy poniendo "0" siempre ... esto es lo que hice, "mp3Frame.SampleCount/mp3Frame.SampleRate" .. btw, mp3Frame.SampleCount = 576 y mp3Frame.SampleRate = 11025 .. tal vez necesito multiplicar el SampleCount por 2? – SolidSnake
Dado que los datos se cifran no puedes saber la velocidad de bits jugado hasta que los datos han sido descifrados. Nadie habla de cómo encriptar (comprimir) y descomprimir los datos. Todo lo que sé es que el programa Lame tomará un archivo de onda y luego lo filtrará/remuestreará y de alguna manera comprimirá los datos antes de colocarlos dentro de los marcos. No sé si estos reproductores de mp3 están usando palabras de 8 o 16 bits para reproducir en cada canal. Pero la velocidad de bits y todas están relacionadas con el tamaño del byte del canal y la frecuencia de muestreo reproducida. No es lo mismo que los datos primero afectan al codificador. Cómo ver los resultados finales que juega el jugador es el truco aquí. CBR hace una buena referencia para aprender más adelante VBR.
¿Cómo se toman 16 bits (WORD por muestra) de una muestra de un canal y se comprime ot para los datos de MP3? ¿Los resultados son de 12 bits o menos? ¿Cómo se llama la rutina de compresión?
cifrado? ¿Quieres decir comprimido? Tu respuesta es un poco confusa – nalply
Hmm, es extraño, pero nadie responde la pregunta correctamente. He estado investigando, aquí está la fórmula:
longitud de trama (en ms) = (muestras por velocidad de fotogramas/muestra (en Hz)) * 1,000
El MP3 típico (una capa de MPEG III, versión 1) tiene 1152 muestras por cuadro y la frecuencia de muestreo es (comúnmente) 44100 hz. Entonces (1152/44100) * 1000 = 26,122449 ms por cuadro.
Observe que la longitud de cuadro (tiempo) no depende de la velocidad de bits.
Más información: http://www.mp3-converter.com/mp3codec/frames.htm
- 1. Cálculo de milisegundos de la época
- 2. Encontrar la longitud de un archivo MP3
- 3. Encontrar longitud de MP3 en C#
- 4. longitud de tiempo de un archivo mp3
- 5. Cómo obtener la longitud de un MP3 en C#
- 6. Cálculo del tiempo transcurrido en un programa C en milisegundos
- 7. Insertar mp3 en ActionScript 3 no funciona
- 8. Android: ¿Cómo detener los medios (mp3) en la reproducción cuando vienen milisegundos específicos?
- 9. Tramas de cadena de subprocesos de Python
- 10. Cálculo de la longitud de los objetos en la imagen binaria - algoritmo
- 11. Disector de Wireshark: ¿cómo identificar las tramas UDP perdidas?
- 12. Cálculo de la longitud de una cadena multibyte japonesa con kana de ancho medio en PHP
- 13. ¿Existe un límite en la longitud del nombre de una hoja de cálculo de Excel?
- 14. Cómo leer las etiquetas de archivos MP3
- 15. Duración de la pantalla en milisegundos
- 16. ¿Cómo acelerar el cálculo de la longitud de la subcadena común más larga?
- 17. ¿cuál es la situación de las regalías actuales mp3/licencias
- 18. Obtener la duración de mp3 en Android
- 19. control de opacidad de la superposición de tramas
- 20. cálculo de las puntuaciones de las tablas de clasificación incompletas
- 21. R - Título común y leyenda para las tramas combinadas
- 22. ¿Cómo se implementa la longitud en las matrices de Java?
- 23. ¿Cómo marco las coordenadas de latitud/longitud en la pantalla?
- 24. Convertir fecha en milisegundos
- 25. Convertir la fecha UTC en milisegundos
- 26. Licencia de AAC/MP3
- 27. Redes de Windows usando solo tramas Ethernet
- 28. Mostrar milisegundos en Excel
- 29. la fusión de dos tramas de datos utilizando la coincidencia de cadenas Fuzzy/aproximado en R
- 30. Visualización de MP3 - PHP
Yo diría que la clave es bitrate. CBR es más fácil, VBR requerirá que preste atención a las variaciones de frecuencia. – sehe
¿por qué necesita esta información? – Andrei
¿Necesito explicar por qué? – SolidSnake