FFmpeg 音频格式转换实用指南

前言

手里一堆 WAV 文件占了几十 G 硬盘,想转成 MP3 省空间?从网上下了一首 FLAC 无损,但播放器不支持?录了一段 M4A 会议录音,需要转成 WAV 给剪辑软件用?

这些问题,ffmpeg 一行命令就能解决。

ffmpeg 是目前最强大的开源音视频处理工具,几乎所有你能想到的格式它都支持。这篇文章只聚焦一个场景:音频格式转换。掌握几个核心命令,日常的转换需求基本够用了。

一、安装 ffmpeg

先确认有没有装过:

1
ffmpeg -version

没装的话:

1
2
3
4
5
6
7
8
# macOS
brew install ffmpeg

# Ubuntu / Debian
sudo apt install ffmpeg

# Windows
# 去 https://ffmpeg.org/download.html 下载解压,把 bin 目录加到 PATH

装好之后,ffmpeg -version 能输出版本信息就 OK。

二、最基础的转换

ffmpeg 格式转换的核心逻辑很简单:输入文件 + 输出文件,后缀名决定格式

2.1 WAV 转 MP3

1
ffmpeg -i input.wav output.mp3

就这么简单。ffmpeg 会根据输出文件的后缀名 .mp3 自动选择 MP3 编码器。

2.2 FLAC 转 MP3

1
ffmpeg -i input.flac output.mp3

2.3 M4A 转 WAV

1
ffmpeg -i input.m4a output.wav

2.4 其他常见互转

1
2
3
4
5
6
7
8
9
10
11
# MP3 转 AAC
ffmpeg -i input.mp3 output.aac

# WAV 转 FLAC(无损转无损,不损失质量)
ffmpeg -i input.wav output.flac

# MP3 转 OGG
ffmpeg -i input.mp3 output.ogg

# WAV 转 AAC
ffmpeg -i input.wav output.m4a

有没有发现规律?**-i 指定输入,输出文件名写什么后缀,就转什么格式。** ffmpeg 会自动匹配编码器。

三、控制码率

默认转换的 MP3 码率是 128kbps,音质一般。想提高音质或者进一步压缩体积,用 -b:a 指定音频码率:

1
2
3
4
5
6
7
8
# 转成 320kbps 高品质 MP3
ffmpeg -i input.wav -b:a 320k output.mp3

# 转成 192kbps MP3,音质和体积的平衡点
ffmpeg -i input.flac -b:a 192k output.mp3

# 转成 64kbps AAC,语音录音够用,体积很小
ffmpeg -i input.wav -b:a 64k output.m4a

码率参考:

码率 适合场景
320k 高品质音乐存档
192k 日常听歌,音质和体积平衡
128k 默认值,节省空间
64k 语音、播客录音

四、控制采样率

采样率影响音频的频率范围。CD 品质是 44100Hz,专业录音常用 48000Hz。用 -ar 指定:

1
2
3
4
5
# 降采样到 22050Hz(语音场景够用,体积更小)
ffmpeg -i input.wav -ar 22050 output.mp3

# 升采样到 48000Hz
ffmpeg -i input.wav -ar 48000 output.flac

一般来说,降采样会损失高频信息,升采样不会提升音质,但能兼容某些对采样率有要求的软件或设备。

五、声道控制

-ac 指定声道数:

1
2
3
4
5
# 立体声转单声道(语音录音常见操作,体积减半)
ffmpeg -i input.wav -ac 1 output.mp3

# 单声道转立体声
ffmpeg -i input.wav -ac 2 output.mp3

语音播客、会议录音转单声道是最实用的操作,文件体积直接减半,听感基本没差别。

六、组合使用

实际使用中,经常需要同时指定多个参数:

1
2
3
4
5
6
7
8
# WAV 转 MP3:320kbps + 48000Hz + 立体声
ffmpeg -i input.wav -b:a 320k -ar 48000 -ac 2 output.mp3

# 会议录音压缩:64kbps + 22050Hz + 单声道(体积最小化)
ffmpeg -i meeting.wav -b:a 64k -ar 22050 -ac 1 meeting.mp3

# FLAC 无损转 192kbps MP3
ffmpeg -i input.flac -b:a 192k output.mp3

七、批量转换

一个一个转太慢,用 shell 循环批量处理:

1
2
3
4
5
6
7
8
9
# 把当前目录所有 WAV 转成 MP3(192kbps)
for f in *.wav; do
ffmpeg -i "$f" -b:a 192k "${f%.wav}.mp3"
done

# 把所有 FLAC 转成 320kbps MP3
for f in *.flac; do
ffmpeg -i "$f" -b:a 320k "${f%.flac}.mp3"
done

${f%.wav} 是 shell 的字符串截取语法,去掉文件名的 .wav 后缀,再拼上 .mp3

八、从视频中提取音频

这是 ffmpeg 的一个隐藏实用技巧——直接从视频文件里把音轨抽出来:

1
2
3
4
5
# 从 MP4 中提取音频,转成 MP3
ffmpeg -i video.mp4 -vn -b:a 192k audio.mp3

# 从 MKV 中提取音频,保留原始格式
ffmpeg -i video.mkv -vn -c:a copy audio.aac

-vn 表示忽略视频流,只处理音频。-c:a copy 表示直接拷贝音频编码不重新编码,速度极快且无质量损失。

九、不只是音频:视频格式转换

ffmpeg 的能力远不止音频。视频格式转换同样是它的强项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# MKV 转 MP4
ffmpeg -i input.mkv output.mp4

# AVI 转 MP4
ffmpeg -i input.avi output.mp4

# MOV 转 MP4(iPhone 录制的视频)
ffmpeg -i input.mov output.mp4

# 指定视频编码为 H.264,音频编码为 AAC
ffmpeg -i input.avi -c:v libx264 -c:a aac output.mp4

# 压缩视频:降低码率
ffmpeg -i input.mp4 -b:v 1M -b:a 128k output_compressed.mp4

# 仅保留视频,去掉音频
ffmpeg -i input.mp4 -an output_silent.mp4
参数 含义
-c:v 视频编码器(libx264 / libx265 / copy
-c:a 音频编码器(aac / mp3 / copy
-b:v 视频码率
-an 去掉音频
-vn 去掉视频

copy 这个值很实用——如果你只是换个容器格式(比如 MKV 转 MP4),视频和音频的编码本身不需要变,直接用 -c:v copy -c:a copy 就行,转换速度飞快,而且零质量损失。

十、命令行太复杂?试试青萍 AI 语音

ffmpeg 功能强大,但命令行确实有门槛。如果你只是想快速转换音频格式——把录音转成 MP3,把 WAV 压缩一下——完全可以不用记这些参数。

青萍 AI 语音内置了音频格式转换功能,支持常用格式快速互转:

官网:https://audio.lusyoe.com

  • 常用格式全覆盖:MP3、WAV、AAC、FLAC、OGG 等一键互转
  • 无需记命令:上传文件,选目标格式,点击转换,搞定
  • 免费使用:格式转换功能完全免费,不限制次数
  • 音频处理一站搞定:转换之外,还支持音量调整、裁剪、拼接等操作
  • 配音能力:AI 语音合成、音色克隆、多人对话,格式转换只是其中一个小功能

适合不想折腾命令行、只想快速完成转换的场景。当然,如果你是开发者或者需要批量脚本处理,ffmpeg 依然是首选。

总结

需求 方案
单个音频格式转换 ffmpeg -i input.wav output.mp3
控制码率/采样率/声道 -b:a / -ar / -ac 参数
批量转换 shell for 循环
提取视频音轨 ffmpeg -i video.mp4 -vn audio.mp3
视频格式转换 ffmpeg -i input.mkv output.mp4
不想用命令行 青萍 AI 语音,免费在线转换

ffmpeg 的核心就一句话:输入文件、输出文件,后缀决定格式,参数控制质量。
记住这个逻辑,日常的音视频格式转换基本都能搞定。