SoX не работает с файлами Opus Audio

Я записываю входной микрофон с веб-страницы с помощью WebRTC и обрабатываю его через SoX.

Проблема в том, что записи Firefox находятся в формате Opus Audio (согласно информации о медиа VLC) в контейнере Ogg, и SoX это не нравится: /opt/local/bin/sox FAIL formats: can't open input file `/Users/[...]/public/audio/7a0d13a501.ogg': Input not an Ogg Vorbis audio stream

Есть ли способ заставить его работать с SoX? Или мне следует использовать другой инструмент для работы со звуком из командной строки?


person ryancey    schedule 11.03.2014    source источник


Ответы (2)


В итоге я сделал это (либо работает, не знаю, что быстрее):

opusdec --force-wav file.ogg - | sox - file.mp3

or

sox "|opusdec --force-wav file.ogg -" file.mp3

person ryancey    schedule 13.03.2014
comment
Для использования опции opusdec должен быть установлен opus-tool: sudo apt-get install opus-tools - person HelloWorld; 06.12.2016
comment
У меня еще не работает конвейер, но использование opusdec, а затем sox также сработало для меня. В OSX brew позволяет установить sox с поддержкой opus, поэтому дополнительный шаг не требуется. Я предполагаю, что нам нужно будет вручную перекомпилировать sox с опцией opus, чтобы получить такое поведение. - person Chris; 09.12.2017

Вы можете просто указать -t opus при запуске sox

    sox -t opus file.ogg out.wav
person Contemplator    schedule 17.10.2020
comment
Я не знаю, какой у вас пакет, но пакет Debian завершается с ошибкой: sox FAIL formats: no handler for given file type 'opus' - person Tobia; 29.11.2020
comment
Я протестировал его на Mac OS (кажется, как и @ryancey) с последними соксами от brew. - person Contemplator; 04.02.2021