You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux下使用find与ffmpeg命令行批量转换多媒体文件

解决FLAC转MP3时文件名冗余的问题

这个问题我之前也碰到过,直接在原文件名后追加.mp3肯定会留下.flac后缀,只要借助shell的参数扩展功能处理文件名,就能得到你想要的结果。

调整后的命令如下:

find ./ -name "*.flac" -exec sh -c 'ffmpeg -i "$0" -b:a 320k "${0%.flac}.mp3"' {} \;

命令详解:

  • -exec sh -c '...' {} \;:通过调用shell执行ffmpeg命令,这样就能用上shell的字符串处理能力
  • ${0%.flac}:这是shell的参数扩展语法,$0代表当前传入的FLAC文件路径,%.flac表示移除路径末尾的.flac后缀
  • 最后拼接.mp3,就生成了Artist - Title.mp3的正确文件名

如果你更习惯分两步操作,也可以先按原命令转换,再批量重命名修正:

# 第一步:批量转换音频
find ./ -name "*.flac" -exec ffmpeg -i "{}" -b:a 320k "{}".mp3 \;
# 第二步:批量移除冗余的.flac后缀
find ./ -name "*.flac.mp3" -exec rename 's/\.flac\.mp3$/.mp3/' {} \;

不过第一种方法一步到位,效率更高。

内容的提问来源于stack exchange,提问作者free_speech

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:14:10