从命名管道流式传输音频

时间:2013-09-11 14:59:46

标签: bash audio

我有small Python library用于音频实验,目前该库将原始波数据写入磁盘,然后我可以将其输入afplay之类的声音来播放声音。

但是,如果我能从内存中播放音频,我很好奇。我尝试创建一个命名管道(因为afplay需要一个文件名作为它的第一个参数),但不幸的是它抛出了错误Error: AudioFileOpen failed ('typ?')

是否有一种从命名管道流式传输音频的简便方法?有没有更好的方法来完成我想要做的事情?

1 个答案:

答案 0 :(得分:3)

你可以使用SoX的游戏或FFmpeg的ffplay。

sox示例:

yourcommand | play -t wav  -

-t的参数取决于命令的音频输出类型。

ffplay示例:

yourcommand | ffplay -

与命名管道类似:

mkfifo /tmp/fifo
yourcommand > /tmp/fifo

sox -t wav /tmp/fifo  ## on another shell or terminal