Base64 오디오를 재생하는 방법
- Base64 또는 data URI에 Base64나
data:audio/…;base64,URI를 붙여넣으세요. 긴 문자열은 .txt 파일 열기로 불러올 수 있습니다. 페이지를 열면 음 두 개짜리 짧은 WAV 예시가 들어 있습니다. - 파일 정보 아래에 플레이어가 나타납니다. 브라우저가 헤더를 읽으면 재생 시간에
0:03.0처럼 길이가 표시됩니다. - 파일 이름, 확장자, MIME 유형은 감지된 형식에 맞춰 채워집니다. 필요하면 바꾸세요.
- 오디오를 저장하려면 파일 다운로드를,
<audio src>에 넣을 문자열이 필요하면 data URI로 복사를 누르세요.
소리는 브라우저 안에서 디코딩되고 재생됩니다. 페이지의 Content Security Policy가 Cloudflare 조회수 집계를 제외한 모든 네트워크 요청을 차단하므로 여기서 녹음 파일이 어디로도 전송될 수 없습니다.
브라우저에서 재생되는 형식
플레이어는 브라우저 자체의 <audio> 요소이므로 재생 여부는 내장 디코더에 달려 있습니다. 최신 버전은 대부분의 형식을 처리합니다.
| 형식 | Base64 시작 부분 | Chrome, Edge, Firefox | Safari |
|---|---|---|---|
| MP3 | SUQz (ID3 태그 포함), //s, //M | 예 | 예 |
| PCM 샘플 WAV | UklGR | 예 | 예 |
| M4A 안의 AAC | AAAAHGZ0eXBNNEEg 등 | 예 | 예 |
| FLAC | ZkxhQw | 예 | 예 |
| Ogg Vorbis | T2dnUw | 예 | Safari 18.4부터 |
| Ogg 또는 WebM 안의 Opus | T2dnUw, GkXfo | 예 | 버전과 컨테이너에 따라 일부 |
| AMR (오래된 휴대폰 녹음) | IyFBTVIK | 아니요 | 아니요 |
| ADPCM 또는 GSM WAV | UklGR | 대개 안 됨 | 대개 안 됨 |
WAV는 코덱 필드가 있는 컨테이너이므로 같은 .wav 파일이라도 다르게 동작할 수 있습니다. 예를 들어 Chrome은 µ-law와 A-law 전화 음성 WAV도 재생하지만 ADPCM은 재생하지 않습니다. 브라우저가 파일을 디코딩하지 못하면 재생 시간에 해당 없음이 표시되고 플레이어 위에 “이 브라우저는 이 AMR 파일을 재생할 수 없습니다. 다운로드해 미디어 플레이어에서 여세요.“라는 안내가 나타납니다. VLC와 ffmpeg는 위의 모든 형식을 처리합니다.
동영상 컨테이너 안의 오디오
오디오가 늘 오디오 형식으로 오는 것은 아닙니다. Chrome에서 MediaRecorder로 만든 브라우저 녹음은 기본적으로 Opus가 든 WebM이고, 일부 서비스는 M4A 브랜드 없이 MP4 파일에 AAC를 담습니다. 이때 도구는 오디오가 아니라 WebM 또는 MP4로 보인다고 알려 주고 해당 확장자의 다운로드 버튼을 보여 주며, 플레이어도 그대로 작동합니다. 크기 행에는 오디오만이 표시됩니다. .webm이나 .mp4로 저장하는 것이 맞으며, 대부분의 오디오 플레이어가 이런 파일도 엽니다.
도구가 그냥 바이너리로 감지했지만 코덱을 알고 있다면 MIME 유형에 audio/ogg처럼 MIME 유형을 입력하세요. 그 유형의 오디오 플레이어로 미리보기가 다시 만들어지므로 추측이 맞는지 빠르게 시험할 수 있습니다.
헤더 없는 원시 오디오
일부 음성 API는 WAV 헤더 없이 원시 샘플만 돌려줍니다. 흔히 16 kHz나 24 kHz의 16비트 PCM입니다. 이런 바이트에는 시그니처가 없으므로 도구는 “오디오 형식으로 보이지 않습니다(감지됨: 바이너리)“라고 알려 주며, 아무것도 재생할 수 없습니다. 해결책은 API 문서에 나온 샘플 레이트로 헤더를 붙이는 것입니다. Base64를 WAV로에서 몇 줄짜리 Python 코드로 방법을 보여 줍니다.
Base64 오디오가 나오는 곳
TTS(텍스트 음성 변환) API는 합성한 음성을 JSON 안의 Base64 필드로 돌려줍니다. 채팅과 메신저 내보내기도 음성 메시지를 같은 방식으로 저장합니다. 웹 앱은 짧은 효과음을 코드나 CSS 안에 data:audio/… URI로 두고, 브라우저에서 녹음한 오디오는 JSON 요청 안의 Base64로 서버에 전달되는 경우가 많습니다. 반대로 사운드 파일을 문자열로 바꾸려면 오디오를 Base64로를 사용하세요.
명령줄에서 코덱 확인하기
파일이 재생되지 않을 때는 ffprobe가 안에 든 코덱을 알려 줍니다.
base64 -d clip.b64 > clip.bin
ffprobe -v error -show_entries stream=codec_name,sample_rate,channels -of csv=p=0 clip.bin
전화 녹음이라면 adpcm_ima_wav,8000,1 같은 결과가 나오며, 브라우저가 재생을 포기한 이유가 여기에 있습니다. 일반 PCM으로 변환하면 어디서나 재생됩니다: ffmpeg -i clip.bin -c:a pcm_s16le clip.wav. 셸 활용법은 Bash에서 Base64에, 형식에 관한 자세한 내용은 Base64를 MP3로에 있습니다.
자주 묻는 질문
Base64 오디오 문자열을 재생하려면 어떻게 하나요?
위 입력란에 붙여넣고 나타나는 플레이어에서 재생을 누르세요. 일반 Base64와 data:audio/…;base64, URI 모두 됩니다. 형식은 도구가 바이트를 보고 판단합니다.
Base64 오디오가 재생되지 않는 이유는 무엇인가요?
브라우저에 그 안의 코덱(예: AMR, ADPCM이나 GSM WAV 파일)용 디코더가 없거나, 데이터가 파일 헤더 없는 원시 샘플이기 때문입니다. 플레이어 아래 안내 문구가 어느 경우인지 알려 줍니다. 아래 표와 헤더 없는 원시 오디오 섹션을 참고하세요.
Base64 오디오의 올바른 MIME 유형은 무엇인가요?
형식에 따라 다릅니다. MP3는 audio/mpeg, WAV는 audio/wav, Ogg Vorbis와 Opus는 audio/ogg, M4A는 audio/mp4, FLAC은 audio/flac입니다. 디코딩하면 MIME 유형 필드에 감지된 형식에 맞는 값이 표시됩니다.
Base64 오디오의 재생 시간은 어떻게 확인하나요?
여기서 디코딩하세요. 브라우저가 파일 메타데이터를 읽는 즉시 재생 시간 행에 분과 초가 표시됩니다. 코드에서는 파일로 디코딩한 뒤 ffprobe -show_entries format=duration을 실행하세요.