用 ffmpeg 批量把 flac 转成 mp3:一条命令搞定整目录
工具与效率339 阅读约 3 分钟
flac 是无损格式,音质好但体积大、部分老设备/车机不认。转成 mp3 体积小、兼容性好。用 ffmpeg 一条命令就能批量搞定整个目录,还能保留歌曲信息和封面。
单个文件
ffmpeg -i input.flac -ab 320k -map_metadata 0 -id3v2_version 3 output.mp3
参数说明:
-i input.flac:输入文件;-ab 320k:音频码率 320kbps(mp3 的实用上限,音质足够好);-map_metadata 0:把源文件的元数据(歌手、专辑、年份等)复制过来;-id3v2_version 3:用 ID3v2.3 标签,兼容性最好。
批量转换整个目录
用 shell 循环遍历所有 flac:
# 在含 flac 的目录里执行
for f in *.flac; do
ffmpeg -i "$f" -ab 320k -map_metadata 0 -id3v2_version 3 "${f%.flac}.mp3"
done
"${f%.flac}.mp3" 是参数展开——去掉 .flac 后缀换成 .mp3,保证输出文件名和原文件对应。文件名带空格务必加引号 "$f"。
递归处理子目录
按专辑分文件夹存放时,用 find 递归:
find . -name "*.flac" -exec sh -c '
ffmpeg -i "$1" -ab 320k -map_metadata 0 -id3v2_version 3 "${1%.flac}.mp3"
' _ {} \;
码率怎么选
- 320k(CBR):mp3 实用最高音质,体积约为 flac 的 1/3,绝大多数场景够用;
-q:a 0(VBR):可变码率最高质量,体积更优、音质相近,更推荐:
ffmpeg -i input.flac -q:a 0 -map_metadata 0 output.mp3
VBR 让 ffmpeg 按音频复杂度动态分配码率,同等音质下文件更小。
保留封面
带内嵌封面的 flac,加上视频流映射保留封面图:
ffmpeg -i input.flac -ab 320k -map 0:a -map 0:v? -c:v copy -map_metadata 0 output.mp3
-map 0:v? 里的 ? 表示「有就拷、没有也不报错」。
小结
ffmpeg 批量转码就是「一条命令 + 一个循环」:-ab 320k(或 -q:a 0 走 VBR)定音质、-map_metadata 0 保元数据、shell 的 for 或 find 做批量。记得给文件名加引号防空格,需要封面就加 -map 0:v?。一行命令搞定整张专辑。
相关文章
评论 (5)
老
老张同学
剪贴板那个坑我也遇到过,编译选项没开
梦
梦回
ffmpeg 那条命令直接存进我的 alias 了
辰
辰小白
码住,回头实践一下
T
Tina_w
mac 上 vim 怎么共享系统剪贴板最省事?
G
谢谢支持~有问题欢迎评论区继续聊





