4

是否可以构建一个缓冲管道来保留来自标准 linux 工具(如 cat、dd 等)的数据(对于某些给定数量的字节或某些给定时间)?

例如收集定义数量的数据包、音频数据或其他东西。

例如。构建一个脚本delaybuffer来做这样的事情:

arecord | delaybuffer 16000 | aplay

播放录制的音频延迟 16000 字节。

4

3 回答 3

6

另一种方法是使用 dd (如果您的 dist 上不存在缓冲区)。

    arecord | dd ibs=16000 iflag=fullblock oflag=dsync | aplay

我不太确定这些标志,可能有比一次爆出一个块更好的方法。

于 2012-10-12T05:01:00.613 回答
5

有一个名为的工具buffer可以完成这项工作。(指向 Debian 软件包的链接- 可能在其他发行版中也可用。)。

缓冲区使用共享内存将可变输入数据速率转换为恒定输出数据速率。

于 2012-04-24T13:19:32.690 回答
0

下面给出了cdparanoia在开始读取输出之前提取音频 CD 的轨道 7 的 4 秒时间障碍。可以作为命令行 cd 播放器使用。

cdparanoia 7 ~/temp.wav & sleep 4 ; tail -f -c +1 ~/temp.wav | aplay
于 2020-10-29T03:40:47.527 回答