是否可以构建一个缓冲管道,用于保留来自标准linux工具(如cat,dd等)的数据(对于某些给定的字节数或某些给定时间)?
例如,收集定义数量的数据包,音频数据或其他内容。
EG。构建一个脚本delaybuffer
来做类似的事情:
arecord | delaybuffer 16000 | aplay
播放延迟录制的音频16000字节。
答案 0 :(得分:6)
另一种方法是使用dd(如果你的dist上不存在缓冲区)。
arecord | dd ibs=16000 iflag=fullblock oflag=dsync | aplay
我不太确定旗帜,可能有更好的方法,而不是一次爆破一块。
答案 1 :(得分:5)
有一个名为buffer
的工具可以完成这项工作。 (Link to the Debian package - 可能也可用于其他发行版。)。
缓冲区使用共享内存将可变输入数据速率转换为恒定输出数据速率。
答案 2 :(得分:0)
以下内容为cdparanoia
提供了4秒钟的时间障碍,以在开始读取输出之前提取音频CD的音轨7。
可以作为命令行CD播放器很好地工作。
cdparanoia 7 ~/temp.wav & sleep 4 ; tail -f -c +1 ~/temp.wav | aplay