我正在从命名管道读取和写入音频。我遇到了读取过程滞后的问题,导致管道缓冲区填满并丢帧。我想在管道中插入一个任意大的缓冲区。
我正在尝试使用“dd”来执行此操作,但“obs”和“ibs”似乎指的是读/写块大小,而不是缓冲区大小?
有没有办法为此使用“dd”?
我想制作一个缓冲区约为 5MB 的 FIFO 管道。我知道 linux 中默认的 FIFO 管道缓冲区最大值约为 1MB。我看到它位于 /proc/sys/fs/pipe-max-size
我尝试将其设置如下:
sudo sysctl fs.pipe-max-size=4194304
Run Code Online (Sandbox Code Playgroud)
然后我看到值确实被改变了:
$ cat /proc/sys/fs/pipe-max-size
4194304
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个新的 FIFO 管道,但我没有注意到性能有任何改进。它似乎以与之前的 1MB FIFO 管道相同的速度填充。所以我不确定我的新 FIFO 管道实际上有一个 4MB 的缓冲区。
我如何 1) 增加系统 FIFO 管道缓冲区最大值和 2) 创建一个使用此缓冲区最大值的 FIFO 管道?