使用 ffmpeg 转换文件夹中的多个文件,而不是一次只转换一个

使用 ffmpeg 转换文件夹中的多个文件,而不是一次只转换一个

我的 MP3 收藏默认以 32k 的比特率保存。我喜欢在将它们加载到我的“日常驱动器”MP3 播放器之前尽可能地缩小它们。我发现并调整了下面的内容,效果非常好。现在,我可以将单个 MP3 文件缩小到其原始大小的 1/4 左右,而不会造成足够多的声音损失,以至于我的老耳朵无法注意到。:

$ ffmpeg -i *.mp3 -ac 1 -ab 8000 -ar 22050 BR_8k-SR_22050.mp3

那么,我怎样才能一次性转换文件夹中的所有文件?我不介意覆盖原始文件或创建另一个文件夹来保存修改后的 MP3。

答案1

你可以用循环来实现for。以下示例将转换所有文件并将文件保存到名为输出(运行命令之前子目录必须存在)。

在 Linux/macOS 中使用:

for i in *.mp3; do ffmpeg -i "$i" -ac 1 -ab 8000 -ar 22050 Output/"${i}"; done

在 Windows 中使用:

FOR /F "tokens=*" %G IN ('dir /b *.mp3') DO ffmpeg -i "%G" -ac 1 -ab 8000 -ar 22050 "Output\%G"

相关内容