Sox - 窗口中的管道输出

时间:2015-05-11 11:22:24

标签: c++ audio emulation sox

所以我使用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.wav,可在MS媒体播放器,VLC等中播放。

但是当我尝试使用以下方法将音乐传输到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。

因为我实际上可以将它输出到wav而没有任何问题,所以我无法帮助但感觉有点被软件嘲笑...

如果有人有任何可能有用的建议,那么请分享!

谢谢!

0 个答案:

没有答案