Cómo convertir MP3 a Base64
- Suelta un archivo
.mp3en el recuadro o elígelo con el selector de archivos. - Escúchalo en la vista previa para confirmar el clip.
- Deja Salida como en Data URI para HTML y JavaScript, o cambia a Base64 simple o JSON para una API.
- Pulsa Copiar salida, o Guardar como .txt para archivos largos.
Longitud según el bitrate
El tamaño de un MP3 es su bitrate por su duración, y Base64 lo alarga un tercio. Las cifras de abajo corresponden solo a los datos de audio, sin etiquetas:
| Bitrate | 1 segundo | 10 segundos | 1 minuto |
|---|---|---|---|
| 64 kbps | 10.668 caracteres | 106.668 caracteres | 640.000 caracteres |
| 128 kbps | 21.336 caracteres | 213.336 caracteres | 1.280.000 caracteres |
| 192 kbps | 32.000 caracteres | 320.000 caracteres | 1.920.000 caracteres |
| 320 kbps | 53.336 caracteres | 533.336 caracteres | 3.200.000 caracteres |
Para un sonido de notificación o un mensaje hablado, 64 kbps en mono suele bastar y mantiene corta la cadena. Si el clip es más largo de lo que necesitas, vuelve a exportarlo con un bitrate menor en un editor de audio antes de codificar.
La etiqueta ID3 puede ser la mayor parte del archivo
Los MP3 de las bibliotecas de música llevan al principio una etiqueta ID3v2, y esa etiqueta a menudo contiene la portada incrustada. Un efecto de sonido de dos segundos puede venir con una imagen de portada más grande que el propio audio, y todo ello acaba en el Base64.
La salida de un archivo con etiquetas empieza por SUQz. SUQzBA significa ID3 versión 2.4 y SUQzAw, versión 2.3. Si el archivo es para un sonido de interfaz o una API, quita las etiquetas con un editor de audio o de etiquetas y después codifica el archivo limpio. El indicador bajo la salida muestra la diferencia.
Usar un MP3 en Base64
En HTML:
<audio controls src="data:audio/mpeg;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2..."></audio>
En JavaScript, un data URI funciona en cualquier sitio donde funcione una URL:
const ping = new Audio("data:audio/mpeg;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2...");
document.querySelector("#send").addEventListener("click", () => ping.play());
play() debe ejecutarse tras un gesto del usuario, como un clic, o el navegador lo bloquea.
Para API JSON, usa Base64 simple salvo que la API indique un data URI. En particular, los servicios de voz a texto suelen querer Base64 sin más, con un campo aparte para el formato del audio.
Problemas habituales
- El reproductor no suena. Comprueba que el data URI empieza por
data:audio/mpeg;base64,y que URL-safe (- _) y Ajustar a 76 están desactivados. Los caracteres URL-safe no son válidos en una URLdata:, y los saltos de línea cortan un literal de cadena de JavaScript. - La duración es incorrecta o el avance salta. Los MP3 de bitrate variable sin una cabecera adecuada pueden confundir a los reproductores. El problema viene del propio archivo; vuelve a exportarlo con un editor de audio.
- Necesitas recuperar el archivo. Base64 a MP3 decodifica la cadena y te deja reproducirla o descargarla. Para otros formatos, consulta Audio a Base64.
Preguntas frecuentes
¿Cuál es el tipo MIME correcto para un MP3 en Base64?
audio/mpeg. En algunos códigos verás audio/mp3, pero el tipo registrado es audio/mpeg, y las API que validan el tipo esperan ese.
¿Por qué el Base64 de mi MP3 empieza por SUQz?
SUQz es ID3, el inicio de una etiqueta ID3v2 con título, artista y quizá portada. Los MP3 sin etiqueta empiezan directamente con una trama de audio, que se codifica como // seguido de una letra, como //uQ u //OQ.
¿Cuántos caracteres ocupa un minuto de MP3 en Base64?
A 128 kbps, un minuto de audio son 960.000 bytes, que se codifican en 1.280.000 caracteres. A 64 kbps es la mitad. Las etiquetas y la portada van aparte.