如何将 Base64 解码为 MP3
- 把 Base64 粘贴到 Base64 或 data URI。可以是纯 Base64,也可以是完整的
data:audio/mpeg;base64,…URI,换行不影响。 - 在文件信息下方的播放器中点击播放。浏览器读取文件开头后,时长 就会显示出来。
- 查看提示区域:如果音频不是 MP3,这里会说明它是什么。
- 点击 下载文件 保存 .mp3,或点击 复制为 data URI 用于
<audio>元素。
所有操作都在你的浏览器中进行;除 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 |
语音合成的输出和录音通常没有 ID3 标签,所以直接以 //M 或 //s 开头。ID3 标签中的封面图可能占据文件的大部分;MP3 转 Base64 介绍了如何在编码前去掉它。
不是 MP3 时
标为 MP3 的数据有时是另一种格式,相信扩展名的播放器就会拒绝播放。工具会报告实际格式,并提供按正确格式保存的按钮:
| 提示 | 实际是什么 |
|---|---|
| “这看起来是 M4A,而不是 MP3。” | MP4 容器中的 AAC 音频,手机和很多应用录制的就是这种 |
| “这看起来是 WAV,而不是 MP3。” | 通常是未压缩音频:CD 音质下大约是 128 kbit/s MP3 的十一倍大 |
| “这看起来是 OGG,而不是 MP3。”或“…Opus,而不是 MP3。” | Ogg Vorbis 或 Opus,常见于网页和聊天应用 |
| “这看起来是 WebM,而不是 MP3。” | 浏览器录音,通常是 WebM 中的 Opus |
| “这看起来是 AAC,而不是 MP3。” | 原始 AAC 流(.aac) |
点击 下载为 .m4a(或提供的其他扩展名),以与内容相符的扩展名保存。要转换成真正的 MP3,需要 ffmpeg 之类的编码器:ffmpeg -i input.m4a -b:a 128k output.mp3。
时长和码率
时长来自浏览器的媒体引擎,它会读取帧头。对于恒定码率的文件,时长是精确的。可变码率的 MP3 通常带有记录帧数的 Xing 或 VBRI 头;如果没有这个头,浏览器会根据前几帧估算长度,在播放到结尾之前,这个数字可能相差很多。
你可以用时长粗略核对解码后的大小:128 kbit/s 下一分钟的音频是 960,000 字节,约 128 万个 Base64 字符。大小计算器 可以计算任意大小对应的 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、三秒钟的测试音,ffprobe 输出 duration=3.030204 和 bit_rate=129216;多出的 30 ms 和略高的码率来自编码器的填充和 ID3 标签。在 shell 中解码的更多内容见 Bash 中的 Base64,其他音频格式见 Base64 转音频。
常见问题
怎么把 Base64 转换成 MP3 文件?
把 Base64 粘贴到上方,确认能正常播放后点击 下载文件。文件会保存为 decoded.mp3,除非 data URI 或你打开的文本文件提供了文件名。
为什么本页的示例没有声音?
它是一秒钟真实的 MPEG 音频帧,内容是静音,用来演示播放器和格式检测。粘贴你自己的 Base64 就能听到真正的声音。
`audio/mp3` 是有效的 MIME 类型吗?
MP3 的注册类型是 audio/mpeg。浏览器照样接受 data:audio/mp3;base64,…,工具解码时也不会发出警告,但下载和 复制为 data URI 使用的是 audio/mpeg。
工具会显示标题和艺术家吗?
不会,ID3 标签不会显示出来。它会保留在下载的文件中,所以音乐播放器照常会显示标题、艺术家和封面图。