Base64를 MP3로 디코딩하는 방법
- Base64 또는 data URI에 Base64를 붙여넣으세요. 순수 Base64나
data:audio/mpeg;base64,…URI 전체 모두 되며, 줄 바꿈은 상관없습니다. - 파일 정보 아래 플레이어에서 재생을 누르세요. 브라우저가 파일 앞부분을 읽는 즉시 재생 시간이 나타납니다.
- 안내 영역을 확인하세요. 오디오가 MP3가 아니라면 무엇인지 알려 줍니다.
- 파일 다운로드를 눌러 .mp3를 저장하거나,
<audio>요소에 쓰려면 data URI로 복사를 누르세요.
모든 처리는 브라우저에서 이루어집니다. 페이지는 Cloudflare 조회수 집계 외에는 네트워크 요청을 할 수 없으므로 녹음은 기기에 남습니다.
도구가 MP3를 알아보는 방법
MP3 파일에는 고정된 시그니처가 하나만 있는 것이 아닙니다. ID3v2 태그로 시작하거나, 바로 첫 오디오 프레임의 헤더로 시작합니다.
| Base64 시작 부분 | 첫 바이트 | 의미 |
|---|---|---|
SUQz | ID3 | 오디오 앞의 ID3v2 태그: 제목, 아티스트, 흔히 앨범 아트 |
//s 또는 //o | FF FB, FF FA | MPEG-1 Layer III 프레임, 32–48 kHz의 일반적인 MP3 |
//M 또는 //I | FF F3, FF F2 | MPEG-2 Layer III, 더 낮은 샘플 레이트(16–24 kHz), 음성에 흔함 |
/+M | FF E3 | MPEG-2.5 Layer III, 8–12 kHz |
//E 또는 //k | FF F1, FF F9 | MP3가 아님: ADTS 스트림의 AAC |
TTS 출력과 음성 녹음에는 ID3 태그가 없는 경우가 많아 바로 //M이나 //s로 시작합니다. ID3 태그의 앨범 아트가 파일 대부분을 차지할 수도 있습니다. 인코딩 전에 이를 제거하는 방법은 MP3를 Base64로에서 설명합니다.
MP3가 아닐 때
MP3라고 적힌 데이터가 다른 형식인 경우가 있고, 그러면 확장자를 믿는 플레이어는 재생을 거부합니다. 도구는 실제 형식을 알려 주고 올바르게 저장하는 버튼을 보여 줍니다.
| 안내 | 실제 형식 |
|---|---|
| “MP3이(가) 아니라 M4A(으)로 보입니다.” | 휴대폰과 많은 앱이 녹음하는 MP4 컨테이너 안의 AAC 오디오 |
| “MP3이(가) 아니라 WAV(으)로 보입니다.” | 대개 비압축 오디오: CD 음질이면 128 kbit/s MP3의 약 11배 크기 |
| “MP3이(가) 아니라 OGG(으)로 보입니다.” 또는 “…Opus(으)로 보입니다.” | Ogg Vorbis 또는 Opus, 웹과 채팅 앱에서 흔함 |
| “MP3이(가) 아니라 WebM(으)로 보입니다.” | 브라우저 녹음, 대개 WebM 안의 Opus |
| “MP3이(가) 아니라 AAC(으)로 보입니다.” | 원시 AAC 스트림(.aac) |
.m4a(으)로 다운로드(또는 제안된 다른 확장자)를 눌러 내용에 맞는 확장자로 저장하세요. 진짜 MP3로 변환하려면 ffmpeg 같은 인코더가 필요합니다: ffmpeg -i input.m4a -b:a 128k output.mp3.
재생 시간과 비트레이트
재생 시간은 프레임 헤더를 읽는 브라우저 미디어 엔진에서 나옵니다. 고정 비트레이트 파일이라면 정확합니다. 가변 비트레이트 MP3에는 보통 프레임 수가 담긴 Xing 또는 VBRI 헤더가 있는데, 이 헤더가 없으면 브라우저가 첫 프레임들로 길이를 추정하므로 재생이 끝에 이를 때까지 수치가 크게 틀릴 수 있습니다.
디코딩된 크기를 길이와 비교해 대략 검증할 수 있습니다. 128 kbit/s에서 오디오 1분은 960,000바이트로, Base64로 약 128만 자입니다. 어떤 크기든 Base64 부분은 크기 계산기가 계산해 줍니다.
명령줄에서 MP3를 디코딩하고 재생 시간 읽기
base64 -d voice.b64 > voice.mp3
ffprobe -v error -show_entries format=duration,bit_rate -of default=nw=1 voice.mp3
128 kbit/s의 3초짜리 테스트 톤이라면 ffprobe가 duration=3.030204와 bit_rate=129216을 출력합니다. 늘어난 30 ms와 약간 높은 비트레이트는 인코더의 패딩과 ID3 태그 때문입니다. 셸에서 디코딩하는 방법은 Bash에서 Base64에, 다른 오디오 형식은 Base64를 오디오로에 더 자세히 있습니다.
자주 묻는 질문
Base64를 MP3 파일로 바꾸려면 어떻게 하나요?
위에 Base64를 붙여넣고 재생되는지 확인한 뒤 파일 다운로드를 누르세요. data URI나 연 텍스트 파일에 이름이 없으면 decoded.mp3로 저장됩니다.
이 페이지의 예시는 왜 소리가 나지 않나요?
무음이 든 실제 MPEG 오디오 프레임 1초 분량으로, 플레이어와 형식 감지를 보여 주기 위한 것입니다. 실제 소리를 들으려면 직접 Base64를 붙여넣으세요.
`audio/mp3`는 올바른 MIME 유형인가요?
MP3의 등록된 유형은 audio/mpeg입니다. 브라우저는 data:audio/mp3;base64,…도 받아들이고 도구도 경고 없이 디코딩하지만, 다운로드와 data URI로 복사에는 audio/mpeg를 씁니다.
도구가 제목과 아티스트를 보여 주나요?
아니요, ID3 태그는 표시하지 않습니다. 태그는 다운로드한 파일에 그대로 남아 있으므로 음악 플레이어에서는 평소처럼 제목, 아티스트, 앨범 아트가 표시됩니다.