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

如何使用FFmpeg批量转换文件夹中的所有MP3文件

如何使用FFmpeg批量转换文件夹中的所有MP3文件

嘿,很高兴看到你的压缩效果这么棒!要批量处理整个文件夹里的MP3,其实只需要给你的FFmpeg命令套个循环就行,我给你分不同系统的方案,你按需选:

一、Linux/macOS 用Shell脚本处理

1. 保留原文件,转换后存到新文件夹(推荐,安全不丢原文件)

先创建一个存放转换后文件的文件夹,然后逐个处理每个MP3:

# 先创建目标文件夹,-p参数确保文件夹不存在时自动创建
mkdir -p converted_mp3s
# 循环遍历当前文件夹下所有MP3文件
for file in *.mp3; do
  # 对每个文件执行转换,输出文件名加前缀方便区分
  ffmpeg -i "$file" -ac 1 -ab 8000 -ar 22050 "converted_mp3s/BR_8k-SR_22050_$file"
done

执行完后,所有压缩好的MP3都会在converted_mp3s文件夹里,原文件完全不受影响。

2. 直接覆盖原文件(谨慎操作!转换失败可能损坏原文件)

如果确定不需要保留原文件,可以用临时文件过渡,避免转换过程中损坏原文件:

for file in *.mp3; do
  # 先转换到临时文件,成功后再替换原文件
  ffmpeg -i "$file" -ac 1 -ab 8000 -ar 22050 temp.mp3 && mv temp.mp3 "$file"
done

二、Windows 用CMD或批处理处理

1. 保留原文件到新文件夹

先在当前文件夹下新建converted_mp3s文件夹(可以直接右键新建,或者在CMD里输mkdir converted_mp3s),然后执行:

for %f in (*.mp3) do ffmpeg -i "%f" -ac 1 -ab 8000 -ar 22050 "converted_mp3s\BR_8k-SR_22050_%f"

如果是把命令写到.bat批处理文件里,要把%f改成%%f:

mkdir converted_mp3s
for %%f in (*.mp3) do ffmpeg -i "%%f" -ac 1 -ab 8000 -ar 22050 "converted_mp3s\BR_8k-SR_22050_%%f"

2. 直接覆盖原文件(同样谨慎)

for %f in (*.mp3) do ffmpeg -i "%f" -ac 1 -ab 8000 -ar 22050 temp.mp3 && move /y temp.mp3 "%f"

批处理文件里同样把%f换成%%f。

小提示

你原来的命令ffmpeg -i *.mp3 ...其实会把所有MP3合并成一个输出文件,这就是为什么单文件能用、批量不行的原因,所以必须逐个循环处理每个文件哦~

备注:内容来源于stack exchange,提问作者Gene Tyle

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 10:23:16