SOX- Windows中的管道输出

Sox - Piping output in windows

本文关键字:管道 输出 Windows SOX-      更新时间:2023-10-16

所以我使用c 模拟rp2a03芯片,使用sox重新采样和输出音频。

我可以确认APU本身和输入管正在用作命令以下命令的魅力:

FILE* fp = popen(".\sox\sox.exe -t raw -c1 -e signed-integer -b 16 -r1789800 - -t wav -c2 -r 48000 wav.wav", "wb");
...
fputc(sample, fp);
fputc(sample/256, fp);

输出一个美丽的芯片作为wav。

但是,当我尝试使用以下方式将音乐插入ffplay时:

FILE* fp = popen(".\sox\sox.exe -t raw -c1 -e signed-integer -b 16 -r1789800 - -t raw -c2 -r 48000 - | .\sox\ffplay.exe -acodec pcm_s16le -", "wb");

我有一个错误阅读:

FAIL sox: `-' error writing output file: Invalid argument

我一直在Google努力工作了几个小时,没有运气...

从昨天开始,我一直被困了几个小时,而且似乎有一些至关重要的(或琐碎?)我在忽略了,因为我发现的所有示例都使用了相同的示例,甚至更容易将输出写入stdout。

因为我实际上可以将其输出到一个毫无问题的情况下,所以我不禁对该软件有些嘲讽...

如果有人有任何可能有帮助的建议,请分享!

谢谢!

我使用的是Sox 14.0.x,降级至13.0立即解决了我的问题。似乎在14.0.x

中打破了输出管道

谢谢。