bash - 从命名管道流式传输音频

标签 bash audio

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

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

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

最佳答案

您可以使用 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

关于bash - 从命名管道流式传输音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18744710/

相关文章:

bash - awk - 检查时间码

linux - 更改脚本中的默认组

Bash:如何用定界符分割一行并在新行上打印每个元素?

c - 从 RTP 数据包中解析 PCM 音频数据

bash - 剪切变量定界符 - Bash

c# - 如何将wav文件中的数据读入数组

c - 如何在 C 中使用 libsox 更改声音文件的速度?

html - wav oggenc html 音频->为什么它在 Firefox 中不起作用

javascript - 如果使用Knockout注册了暂停事件,为什么无法暂停音频

linux - 设置 HISTFILE 变量时,历史命令不起作用