ffmpeg 减慢目录中的多个音频文件的速度并将它们放在同一路径中

ffmpeg 减慢目录中的多个音频文件的速度并将它们放在同一路径中

我正在使用 FFMPEG 将 .wav 文件的速度降低到原始速度的 20%。

音频文件位于许多子文件夹中,我想要一个 bat 文件来减慢它们所有的速度,并用这些减慢速度的版本替换原始文件。

如果无法替换正在处理的文件,则可以选择创建一个单独的目录,其中包含已处理文件的文件夹层次结构与原始文件相匹配。

答案1

ffmpeg 不想覆盖它当前正在处理的文件,因此最简单的选择是输出到另一个文件夹。

这是一个简单的单行批处理文件(您可以将其全部粘贴为命令,甚至不需要使用批处理文件):

for %f in (*.mp3) do ffmpeg -i "%f" -filter:a "atempo=0.5" "output\slow_%f"

分解一下,因为您需要根据您的具体用例进行调整:

  • for %f in (*.mp3) do表示我们要收集当前目录中所有与 *.mp3 匹配的文件,并要对每个文件运行以下命令一次,将变量%f设置为特定文件的名称。更改*.mp3以匹配您要处理的文件名/类型。
  • ffmpeg -i "%f"是我们在 for 循环中运行的命令的开头。每次循环时,%f都会替换为要处理的下一个文件的名称。
  • -filter:a "atempo=0.5"这只是减慢音频速度的一个例子。将其替换为您的工作过滤器表达式。
  • "output\slow_%f"意思是,给定一个名为 foo.mp3 的输入文件,我们希望在子目录“output”中创建名为“slow_foo.mp3”的输出文件。在运行此命令之前,请在与所有音频文件相同的目录中创建“output”目录。

相关内容