我有大量的 wav 文件(超过 50 000 个),我需要将每个 wav 文件拆分为 10 秒长的部分。
几乎不可能一一做到这一点,所以我的问题是:我怎样才能在 ffmpeg (或在 sox )中做到这一点?
答案1
中提到了这一点man sox
:
将输入文件拆分为多个长度为 30 秒的文件。每个输出文件名的名称中都有唯一的编号,如输出文件部分中所述。
sox infile.wav output.wav trim 0 30 : newfile : restart
因此,假设您的 wav 文件位于目录下~/myfiles
,并且您想要创建分割版本,~/split
您可以这样做
mkdir ~/split
cd ~/myfiles
find . -name '*.wav' \
-exec sh -c 'mkdir -p ~/split/$(dirname "{}")' \; \
-exec sox {} ~/split/{} trim 0 10 : newfile : restart \;