Como converter MP3 para Base64
- Arraste um arquivo
.mp3para a caixa ou escolha-o no seletor de arquivos. - Ouça na prévia para confirmar o trecho.
- Mantenha Saída como em Data URI para HTML e JavaScript, ou troque para Base64 puro ou JSON para uma API.
- Clique em Copiar saída, ou em Salvar como .txt para arquivos longos.
Tamanho por bitrate
O tamanho de um MP3 é o bitrate vezes a duração, e o Base64 o deixa um terço mais longo. Os números abaixo são só dos dados de áudio, sem tags:
| 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 um som de notificação ou uma mensagem falada, 64 kbps mono costuma bastar e mantém a string curta. Exporte o trecho de novo com um bitrate menor num editor de áudio antes de codificar, se ele for mais longo que o necessário.
A tag ID3 pode ser a maior parte do arquivo
Arquivos MP3 de bibliotecas de música trazem uma tag ID3v2 no começo, e essa tag muitas vezes contém a capa embutida. Um efeito sonoro de dois segundos pode vir com uma imagem de capa maior que o próprio áudio, e tudo isso vai para o Base64.
Num arquivo com tag, a saída começa com SUQz. SUQzBA significa ID3 versão 2.4 e SUQzAw, versão 2.3. Se o arquivo vai virar um som de interface ou ir para uma API, remova as tags com um editor de áudio ou de tags e codifique o arquivo limpo. O medidor abaixo da saída mostra a diferença.
Usar um MP3 em Base64
Em HTML:
<audio controls src="data:audio/mpeg;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2..."></audio>
Em JavaScript, um data URI funciona em qualquer lugar que aceite uma URL:
const ping = new Audio("data:audio/mpeg;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2...");
document.querySelector("#send").addEventListener("click", () => ping.play());
play() precisa rodar depois de um gesto do usuário, como um clique, senão o navegador o bloqueia.
Para APIs JSON, use Base64 puro, a menos que a API documente um data URI. Serviços de speech-to-text em especial costumam querer Base64 puro mais um campo separado para o formato do áudio.
Problemas comuns
- O player fica mudo. Confira se o data URI começa com
data:audio/mpeg;base64,e se URL-safe e Quebrar em 76 estão desligados. Caracteres URL-safe não são válidos numa URLdata:, e quebras de linha encerram uma string literal em JavaScript. - A duração está errada ou o avanço pula. MP3s com bitrate variável sem um cabeçalho adequado podem confundir os players. O problema está no próprio arquivo; exporte de novo com um editor de áudio.
- Você precisa do arquivo de volta. O Base64 para MP3 decodifica a string e permite tocar ou baixar o arquivo. Para outros formatos, veja Áudio para Base64.
Perguntas frequentes
Qual é o MIME type correto para um MP3 em Base64?
audio/mpeg. Você vai ver audio/mp3 em alguns códigos, mas o tipo registrado é audio/mpeg, e é ele que as APIs que validam o tipo esperam.
Por que o Base64 do meu MP3 começa com SUQz?
SUQz é ID3, o começo de uma tag ID3v2 com título, artista e talvez a capa. Arquivos MP3 sem tag começam direto com um frame de áudio, que vira // seguido de uma letra, como //uQ ou //OQ.
Quantos caracteres tem um minuto de MP3 em Base64?
A 128 kbps, um minuto de áudio tem 960.000 bytes, que viram 1.280.000 caracteres. A 64 kbps, é a metade. Tags e capa vêm por cima.