나는 많은 수의 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 \;