创建 SOX 批处理脚本以提取前 15 秒并重命名文件夹中的多个文件

创建 SOX 批处理脚本以提取前 15 秒并重命名文件夹中的多个文件

我有一个包含多个 MP3 文件的文件夹,我需要从中提取 10-15 秒的音频。我还想通过将 example-(name).mp3 附加到转换后的文件来重命名它们。

我如何通过 Shell 脚本执行此操作?

答案1

如果你想/需要使用sox它,你可以使用它的trim命令:

for i in *.mp3
do 
  sox "$i" sample-"$i" trim 0 10
done

您还可以使用命令行实用程序来进行分割,该实用程序是mp3splt。您使用 显式设置输出文件-o,因此不会触及原始文件,只需在完成后将其删除即可。这允许您将文件中定义的标签合并到输出名称中sox(您现在似乎不需要):

for i in *.mp3
do 
  mp3splt "$i" 00.00.00 00.10.00 -o sample-"${i%.mp3}"
done

请注意,-o通常与基于指令一起使用@以在输出名称中包含标签元素并附加.mp3。没有${i%.mp3}你就会得到.mp3.mp3文件。

时间是点分隔的,不要尝试使用:它,您会收到一条不太有用的错误消息,表明您没有足够的分割点。

在您测试脚本是否有效之前,我不会删除输入文件。另请注意,如果中途停止或稍后添加文件,则在不先删除任何sample-文件的情况下无法重新运行它。您可能需要在 之前指定一个目录sample-...,以将内容分开。

相关内容