音频格式转换

MP3/WAV/FLAC/OGG/AAC/M4A/APE 互转

412 次访问
AUDIO FORMAT CONVERTER

音频格式转换

MP3 / WAV / FLAC / AAC / OGG / M4A 等格式互转 · 浏览器本地 Web Audio + lamejs · 不上传文件

上传音频

🔁

拖入或点击选择音频文件

支持 MP3 / WAV / FLAC / AAC / OGG / M4A / WebM

格式选择建议

MP3:有损压缩,兼容性最佳,几乎所有设备 / 软件都支持。128 kbps 适合语音 / 在线传输,192-256 kbps 适合音乐,320 kbps 接近 CD 质量。

WAV:未压缩 PCM,无损保真。适合后期处理 / 母带制作 / 视频配音。体积约 10 MB / 分钟(16-bit 立体声 44.1kHz)。

FLAC / APE:无损压缩,约为 WAV 的 50-70% 体积。本工具暂支持导入不支持导出(浏览器原生不支持 FLAC 编码)。

采样率原则:上采样不能增加信息(只会变大);下采样会丢失高频。语音用 16000-22050 Hz 已够,音乐建议保持 44100 Hz 或更高。

关于本工具

了解工具定位 · 使用场景 · 对比优势

将音频文件在 MP3、WAV、FLAC、OGG、AAC、M4A、APE 七种格式间自由转换。适合需要调整音频兼容性(如车载播放、剪辑软件导入、存储空间优化)的场景。选择源文件与目标格式,点击转换即可。处理由服务端 FFmpeg 完成,上传的文件不会被长期存储。

使用场景

🎧

车载音乐兼容

车主下载的 FLAC 无损音源在车载系统上无法播放,而 WAV 文件体积过大占满 U 盘。本工具将整张专辑批量转为 320kbps MP3,保留人声细节的同时单曲体积从 30MB 降至 8MB,一次转换即可适配所有车型的 USB 播放器,省去逐首重下的麻烦。

🎤

播客后期转码

独立播客主录制时使用 48kHz/24bit WAV 保证音质,但发布平台只接受 44.1kHz/16bit MP3 且限制单集 100MB。本工具在保持采样率精度的前提下批量转换,输出文件符合平台规格,无需手动调整 Audacity 参数,节省每期 15 分钟的导出打包时间。

📱

手机空间释放

手机里塞满微信接收的 M4A 录音、网易云缓存 AAC 和相机录制的 MOV 音频,占用 8GB 存储。本工具将不常听的音频批量转为 64kbps OGG,保留语音可懂度的同时压缩比达 1:10,一次操作释放 6GB 空间,避免为清缓存而删文件。

🎮

游戏音效打包

独立游戏开发者从免费音效库下载的素材格式混杂——有 16bit WAV、44.1kHz OGG、可变码率 MP3。引擎只接受 22050Hz/16bit WAV 单声道。本工具一键批量标准化所有音效的采样率、位深和声道,输出文件直接拖入 Unity 资源目录,省去逐个 Audition 重导出的重复劳动。

🎓

语音语料预处理

NLP 研究生从中文语音数据集下载的 APE 格式语料无法直接喂入 Kaldi 训练管线,需要先转为 16kHz/16bit 单声道 WAV。本工具支持无损格式间的精确转换,不引入重采样噪声,确保训练集与测试集的声学特征一致,避免因格式差异导致的识别准确率下降 2-3%。

对比矩阵本工具 vs 竞品 vs 传统方法

维度本工具竞品 A (Online Audio Converter)传统方法 (Audacity)
数据隐私纯浏览器处理,文件不离开本地文件上传至云端服务器处理完全本地处理,无网络传输
处理速度取决于文件大小和浏览器性能,通常秒级取决于文件大小和上传/下载带宽,通常数十秒至数分钟取决于文件大小和本地CPU性能,需手动操作,通常数分钟
离线可用需要网络加载WASM引擎,加载后可离线使用全程需要网络连接完全离线可用
文件大小限制受浏览器内存限制,通常几百MB以内受服务器配额限制,通常100MB-2GB不等仅受本地磁盘空间和内存限制
批量处理单次处理一个文件支持批量上传和转换支持批量处理,但需手动设置
操作复杂度无需安装,拖拽/选择文件即可无需安装,网页操作需下载安装,学习曲线较陡
格式支持MP3/WAV/FLAC/OGG/AAC/M4A/APE 互转支持更多格式(含WMA、AIFF等)支持几乎所有音频格式,且可自定义编码参数
收费模式免费免费(有文件大小限制),付费版去限制免费开源

使用指南

上手步骤 · 输入输出 · 避坑提示

使用步骤

  1. 点击「选择文件」或直接拖拽音频文件到上传区域,支持 MP3/WAV/FLAC/OGG/AAC/M4A/APE 格式
  2. 在「输出格式」下拉列表中选择目标格式(如 MP3、FLAC 等)
  3. 若格式支持,可调整比特率或采样率参数(如 MP3 比特率 128-320 kbps)
  4. 点击「开始转换」按钮,等待处理完成
  5. 转换完成后点击「下载」按钮保存单个文件,或「全部下载」打包 ZIP

输入输出示例7 个典型场景,覆盖常规、边界与易错

输入输出说明
input.wav → output.mp3 (比特率 320kbps)output.mp3 (320kbps, 44100Hz, 立体声)典型场景:WAV 无损转高音质 MP3
input.flac → output.aac (比特率 256kbps)output.aac (256kbps, 44100Hz, 立体声)常见用法:FLAC 转 AAC 用于移动设备
input.ape → output.flacoutput.flac (无损, 44100Hz, 立体声)边界 case:APE 转 FLAC,两种无损格式互转
input.ogg → output.m4a (比特率 128kbps)output.m4a (128kbps, 44100Hz, 立体声)边界 case:OGG 转 M4A,容器格式转换
input.mp3 → output.wavoutput.wav (1411kbps, 44100Hz, 立体声)易错 case:MP3 转 WAV 不会提升音质
input.aac → output.apeoutput.ape (无损, 44100Hz, 立体声)边界 case:有损 AAC 转无损 APE,体积增大
input.m4a → output.ogg (比特率 192kbps)output.ogg (192kbps, 44100Hz, 立体声)典型场景:M4A 转 OGG 用于开源软件

常见错误对照9 个常踩的坑 · 错误 → 修复

1. 源文件采样率与目标格式不兼容

错误
将 96kHz 采样率的 WAV 文件直接转为 128kbps MP3
修复
先确认目标格式的采样率支持范围(MP3 最高 48kHz),或转码时指定 -ar 44100 进行重采样

MP3 编码器内部会降采样到 48kHz,但若源文件采样率 >48kHz 且未显式重采样,某些 FFmpeg 版本会静默截断高频信息,导致音质意外损失

2. APE 转 MP3 时忽略比特深度差异

错误
将 24-bit APE 文件直接转为 320kbps MP3 保持原音质
修复
转码前确认 APE 源文件比特深度;MP3 固定 16-bit 输出,24-bit 源会截断至 16-bit,320kbps 仅保证码率不保证位深

APE 支持 8/16/24/32-bit,MP3 仅 16-bit。高位深源转 MP3 必然丢失动态范围,若需保留 24-bit 应选 FLAC 或 WAV

3. OGG 转 AAC 时误用 .m4a 扩展名但编码器为 AAC

错误
将 OGG 文件通过 FFmpeg 转码为 output.m4a 但未指定 -c:a aac,默认用了 MP3 编码
修复
明确指定 -c:a aac -f mp4 output.m4a,或使用 -c:a libfdk_aac(若可用)

.m4a 是容器格式(MP4 容器),可装 AAC/ALAC 等;FFmpeg 默认编码器是 MP3,不指定编码器会输出 MP3 流到 .m4a 容器,导致播放器无法识别

4. FLAC 转 WAV 时忽略元数据丢失

错误
认为 FLAC 转 WAV 是无损转换,直接丢弃原 FLAC 文件
修复
转码前用 ffprobe 检查 FLAC 元数据(封面图、CUE 分轨、REPLAYGAIN),WAV 不支持内嵌封面和 CUE 表

FLAC 支持内嵌封面图、CUE 分轨标签、ReplayGain 音量信息;WAV 仅支持有限 RIFF 元数据,转换后这些信息永久丢失

5. M4A(ALAC)转 FLAC 时误判为有损格式

错误
将 .m4a 文件一律视为 AAC 有损格式,转 FLAC 时用 -q:a 0 有损参数
修复
先用 ffprobe -show_streams 确认 codec_name=alac 还是 aac;ALAC 转 FLAC 应使用 -c:a flac 无损参数

.m4a 容器可同时装 AAC(有损)和 ALAC(无损),用户常误以为所有 .m4a 都有损。用有损参数处理 ALAC 会引入二次有损压缩

6. 批量转换时未处理文件名中的空格和特殊字符

错误
ffmpeg -i My Song.wav output.mp3(文件名含空格未引号包裹)
修复
ffmpeg -i "My Song.wav" "output.mp3" 或使用双引号包裹所有路径

Shell 将未引号的空格视为参数分隔符,导致 FFmpeg 将 'My' 和 'Song.wav' 当作两个输入文件,引发 'No such file' 错误

7. AAC 转 MP3 时未考虑编码器质量差异

错误
认为 AAC 128kbps 转 MP3 128kbps 码率相同即音质相同
修复
AAC 128kbps 透明度高于 MP3 128kbps;转码时应使用 MP3 256kbps+ 或 V0 可变码率以避免二次压缩劣化

AAC 在低码率下(<192kbps)编码效率优于 MP3,直接同码率转码会引入两次有损压缩的叠加劣化,建议提升目标码率一级

8. WAV 转 FLAC 时误用 -compression_level 0 导致文件膨胀

错误
wav转flac时使用 -compression_level 0(最快但无压缩)
修复
使用默认 -compression_level 5 或 -compression_level 8(最高压缩比)

FLAC 的 compression_level 0 仅做分块不压缩,输出文件大小接近 WAV 原大小;用户以为 'FLAC 是压缩格式' 但选了无压缩级别,浪费存储空间

9. 将多声道音频(5.1)转为立体声时未指定声道映射

错误
ffmpeg -i 5.1.wav -c:a flac stereo.flac(默认下混为 L/R 但未控制映射)
修复
ffmpeg -i 5.1.wav -af "pan=stereo|FL=0.5*FC+0.707*FL+0.707*BL|FR=0.5*FC+0.707*FR+0.707*BR" -c:a flac stereo.flac

FFmpeg 默认下混算法(-ac 2)使用 ITU-R BS.775 标准,但会衰减中置和环绕声道,导致对白音量降低;显式 pan 滤波器可保留原始声像定位

工作原理

公式推导 · 流程图解 · 依据出处

核心公式

B = R × (1 - C / 100)

变量说明

  • B — 压缩后比特率(kbps)
  • R — 原始音频比特率(kbps)
  • C — 压缩比率(百分比,0-100)

示例

将 1411 kbps 的 WAV 文件转为 320 kbps 的 MP3,压缩比率 C = (1 - 320/1411) × 100 ≈ 77.3%。代入公式:B = 1411 × (1 - 77.3/100) = 1411 × 0.227 ≈ 320 kbps。输出文件大小约为原文件的 22.7%。

适用范围

适用于有损压缩(MP3/AAC/OGG Vorbis)的比特率估算。无损格式(FLAC/APE/WAV)不适用,因压缩比率取决于音频内容复杂度,非固定公式。

原理图

选择源文件MP3 / WAV / FLAC / OGG选择目标格式AAC / M4A / APEFFmpeg 转码浏览器内 WASM 执行下载转换后文件保持原始音频质量设置参数(可选)采样率 / 比特率参数校验格式兼容性检查
用户输入 本地处理 输出结果

开发者集成

3 种主流语言 · 复制即用

import subprocess

# 调用 FFmpeg 将 WAV 转为 MP3(128kbps CBR)
input_file = "input.wav"
output_file = "output.mp3"

cmd = [
    "ffmpeg",
    "-i", input_file,          # 输入文件
    "-codec:a", "libmp3lame",   # MP3 编码器
    "-b:a", "128k",             # 固定比特率 128kbps
    "-y", output_file           # 覆盖输出
]

result = subprocess.run(cmd, capture_output=True, text=True)
if result.returncode != 0:
    print(f"转换失败: {result.stderr}")
else:
    print(f"成功: {output_file}")
package main

import (
	"fmt"
	"os/exec"
	"strings"
)

func main() {
	// 调用 FFmpeg 将 FLAC 转为 OGG(Vorbis q5 ≈ 160kbps)
	input := "input.flac"
	output := "output.ogg"

	cmd := exec.Command("ffmpeg",
		"-i", input,
		"-codec:a", "libvorbis",
		"-q:a", "5",
		"-y", output,
	)

	var stderr strings.Builder
	cmd.Stderr = &stderr

	if err := cmd.Run(); err != nil {
		fmt.Printf("转换失败: %s\n", stderr.String())
		return
	}
	fmt.Printf("成功: %s\n", output)
}
const { execSync } = require('child_process');
const path = require('path');

// 调用 FFmpeg 将 AAC 转为 WAV(PCM 16-bit 44100Hz)
const input = 'input.aac';
const output = 'output.wav';

try {
  execSync(
    `ffmpeg -i "${input}" -codec:a pcm_s16le -ar 44100 -ac 2 -y "${output}"`,
    { stdio: 'pipe' }
  );
  console.log(`成功: ${output}`);
} catch (err) {
  console.error(`转换失败: ${err.stderr.toString()}`);
}

常见问题

8 个高频疑问

为什么我把 WAV 转成 MP3 后,文件变小了但感觉声音变闷了?
这是有损压缩的正常现象。WAV 是未压缩的原始音频,而 MP3 通过丢弃人耳不敏感的频段(高频为主)来减小体积,转换时默认的 128kbps 码率会明显降低音质。如果对音质敏感,可以在工具的码率选择中手动调高到 256kbps 或 320kbps,文件会大一些但更接近原声。FLAC 转 MP3 同理,FLAC 本身是无损的,转成有损格式后细节必然丢失。
转换后音频时长变短了或者中间有杂音,是工具的问题吗?
大概率是源文件本身有问题。本工具底层调用 FFmpeg 做纯流式转码,不改变音频时长和采样点数。如果源文件是网络下载的不完整片段、录音设备中断导致的损坏文件,FFmpeg 会尝试修复但无法保证完全正常。可以先用播放器确认源文件从头到尾能正常播放,再上传转换;如果源文件在播放器里就有爆音或截断,转换后同样会有。
APE 格式能转成 MP3 吗?为什么我上传后提示失败?
技术上 APE 可以转 MP3,但 APE 是 Monkey‘s Audio 的专有格式,部分浏览器或操作系统不支持直接解析。本工具在浏览器端用 WASM 加载 FFmpeg,如果浏览器内核缺少 APE 的解码器(比如 Safari 对 APE 支持较差),就会报错。解决方案:先用本地播放器(如 Foobar2000 或 VLC)把 APE 转成 WAV,再把 WAV 上传转换。或者换用 Chrome/Edge 浏览器再试一次。
这个工具能在手机上用吗?上传几百兆的音频会不会卡死?
可以,手机浏览器直接访问就能用。但大文件(超过 200MB)在手机上容易因内存不足导致浏览器崩溃,因为整个转码过程在浏览器本地完成,文件需要先加载到内存。建议用电脑操作超过 100MB 的文件。如果一定要在手机上转大文件,可以先把音频用剪辑软件切成多段,分批转换后再合并。
M4A 和 AAC 听起来差不多,为什么转换后大小差很多?
M4A 是容器格式,里面封装的音频编码可能是 AAC、ALAC(无损)或 HE-AAC。如果源 M4A 是 ALAC 编码(苹果无损),转成纯 AAC 文件时相当于从无损压缩到有损,体积会明显缩小。如果源 M4A 本身就是 AAC 编码,转成 AAC 时码率一致的话大小基本不变。可以在转换前查看源文件的编码信息(右键属性→详细信息),确认编码类型后再决定是否转换。
我转出来的 OGG 文件在旧款 MP3 播放器上放不了,怎么办?
OGG(Vorbis)在 2010 年以前的便携播放器上兼容性很差,很多设备只支持 MP3 和 WMA。建议把 OGG 再转成 MP3(128kbps 或 192kbps),这是最通用的格式,几乎所有播放器都支持。如果播放器支持 WAV 也可以转成 WAV,但体积会大很多。如果还是不行,可能是播放器的固件限制,可以尝试更新固件或换用支持 OGG 的播放软件。
在线转换要上传文件,我的音频隐私安全吗?会不会被服务器保存?
本工具的转换全部在浏览器本地完成,使用的是 WebAssembly 版本的 FFmpeg,文件不会上传到任何服务器。可以断开网络后仍然正常使用来验证。转换结果通过浏览器下载功能保存到本地,不经过任何中间服务器。但注意:如果浏览器插件或扩展有文件读取权限,理论上可能被拦截,建议在无痕模式或干净浏览器环境下处理敏感音频。
为什么同一个 FLAC 文件,转成 MP3 和转成 WAV 大小差了好几倍?
FLAC 是无损压缩,解码成 WAV 是还原成原始的 PCM 音频流,体积和解压后的原始数据一样大(大约每 5 分钟 50MB)。而 MP3 是有损压缩,会丢弃大量数据来缩小体积。所以 FLAC→WAV 是解压缩,体积膨胀 2-3 倍;FLAC→MP3 是重新编码压缩,体积缩小 5-10 倍。如果硬盘空间足够且追求音质,保留 FLAC 或转成 WAV;如果只是日常听歌,转成 320kbps 的 MP3 在听感上几乎无法区分。
选择 打开 +新窗口 esc关闭