2016-04-15 7 views
0

Начнем с примера. Предположим, что у нас есть 3 аудиофайла: first.mp3, second.mp3, third.mp3. Я хотел бы сначала объединиться со вторым, а затем объединить 3.mp3 в объединенный звук. Можно ли сделать с одной командой?Sox - пара действий сразу

Я попытался вызвать такую ​​команду:

sox --combine mix first.mp3 second.mp3 --combine concatenate third.mp3 output.mp3 

но output.mp3 является результатом конкатенации всех трех звуковых файлов, так что эквивалентно

sox --combine concatenate first.mp3 second.mp3 third.mp3 output.mp3 

Мой общий вопрос, является ли возможно ли сделать пару действий в одной команде sox?

ответ

0

Я нашел ответ.

Мы должны использовать «-p», чтобы сохранить первый процесс в stdout и «-» для чтения из stdin во втором процессе.

Пример:

sox --combine mix first.mp3 second.mp3 -p | sox - --combine concatenate third.mp3 output.mp3 

Мы можем иметь несколько вложенности также:

sox --combine mix first.mp3 second.mp3 -p | sox - --combine concatenate third.mp3 -p | sox - --combine concatenate fourth.mp3 output.mp3