gpt4 book ai didi

c++ - Sox - Windows 中的管道输出

转载 作者:行者123 更新时间:2023-11-28 02:27:06 25 4
gpt4 key购买 nike

所以我正在使用 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 上努力了好几个小时,但运气不好...

实际上从昨天开始,我就一直坚持这个问题好几个小时了,似乎有一些关键的(或微不足道的?)我忽略了,因为我发现的所有例子都使用相同的,甚至更简单的方法,来将输出写入标准输出。

因为我实际上可以毫无问题地将它输出到 wav,所以我不禁感到有点被软件 mock ......

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

谢谢!

最佳答案

我使用的是 SoX 14.0.x,降级到 13.0 后立即解决了我的问题。似乎输出管道在 14.0.x 中损坏了

谢谢。

关于c++ - Sox - Windows 中的管道输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30166384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com