Трубопроводы SoX и потеря данных

При выполнении операций с использованием SoX я заметил, что файлы становятся короче, чем должны:

Работает отлично:

sox -n -r 44100 silence.wav trim 0 1
sox --combine sequence silence.wav combined.wav
soxi -D combined.wav
> 1.000000

Полученный файл становится короче:

sox -n -r 44100 silence.wav trim 0 1
sox --combine sequence "|sox silence.wav -p" combined.wav
soxi -D combined.wav
> 0.998549 seconds

Протестировано с версией SoX 14.4.1 на Windows 7 64 Family Edition. (В Windows создайте копию sox.exe с именем soxi.exe для работы soxi.)

Я избавлю вас от остальных деталей, но в основном КАЖДАЯ труба работает с потерей 0,001451 сек. (Немного меньше при более высоких частотах дискретизации.) Для всего, где важна точность, эти миллисекунды суммируются и становятся значительными, создавая лаги между тем, где вы ожидаете, что аудио будет, и тем, чем оно является на самом деле.

Перед тем, как отправить отчет об ошибке в команду SoX, я бы хотел выяснить, действительно ли это ошибка или она не связана с командной строкой. Будет ли кто-нибудь достаточно любезен, чтобы запустить оба набора команд в своей системе и опубликовать результаты?

Заранее спасибо -

1 ответ

На windows 7 64 бит:

sox "|sox source -p trim 0 10" "|sox source -p trim 0 10" destination

Действительно дает мне тот же самый вид ошибок (19.997).

НО

sox -t sox "|sox source -p trim 0 10" -t sox "|sox source -p trim 0 10" destination

Дает мне правильные результаты (20,0 с).

Из того, что я прочитал на некоторых сайтах, вы должны указать тип канала, который вы используете. А поскольку "-p" эквивалентно "-t sox -", вы должны добавить "-t sox" в "pipe с помощью" вызова sox.

Другие вопросы по тегам