У меня есть звуковой файл волны, который я хочу обрезать в несколько точек, как это.

Аудио длится 1 час, и я хочу иметь первые 3 минуты и от 6 минут до 30 минут. Другими словами, я хочу удалить от 3 минут до 6 минут и от 30 минут до 60 минут.

Я могу сделать с ffmpeg, как это.

ffmpeg -i audio.wav -t 00:03:00 -c copy 01.wav
ffmpeg -i audio.wav -ss 00:06:00 -t 00:24:00 -c copy 02.wav
ffmpeg -i 01.wav -i 02.wav -filter_complex '[0:0][1:0]concat=n=2:v=0:a=1[out]' -map '[out]' output.wav

Но если возможно, я хочу написать это в строке с опциями. Я не настаиваю на использовании ffmpeg, если его можно использовать из командной строки.

Есть ли способ сделать это?

1 ответ1

3

Используйте Сокс. Команда будет:

sox inputfile.wav outputfile.wav trim 0 =3:00 =6:00 =24:00

для вашего примера. Смотрите здесь.

В параметрах усечения каждая пара значений входит в выход. 0 - точка, 3:00 точка, затем 6:00 точка и 24:00 точка. Знак = означает относительно начала.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .