我需要从一批 wav 文件中截断前 3 秒。有没有办法从命令行或使用 Linux 本机程序来完成此操作?
谢谢。
答案1
您可以使用sox
(请参阅man sox
其选项)来处理一个文件:
sox music.wav shortermusic.wav trim 3
时序值为时:分:秒,如果省略部分,则默认为最小间隔,因此这里我们可以使用3
三秒。负值是从文件末尾开始测量的。
之后,这只是使用循环遍历文件集的情况
mkdir trimmed
for m in *.wav
do
printf 'Trimming: %s\n' "$m"
sox "$m" trimmed/"$m" trim 3
done
修剪后的文件将被放入一个子目录中,trimmed
这样您就不会意外地修剪它们两次
如果您已经ffmpeg
安装,您可以直观地检查文件的持续时间:
ffprobe music.wav 2>&1 | grep Duration
或一点点更优雅地很快:
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 music.wav