我有一个包含多个 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-...
,以将内容分开。