我需要在Linux上使用gstreamer
进行(几乎)实时音频捕获。我的问题是,我无法将延迟降低到低于约210ms。我尝试了从麦克风到耳机的简单回路:
gst-launch-1.0 pulsesrc ! alsasink
gst-launch-1.0 alsasrc ! alsasink
两者都产生了相同的延迟。
alsasrc
的 latency-time
属性没有起到帮助作用(它只是添加了给定的延迟)。我可以使用...来达到我需要的效果。pactl load-module module-loopback latency_msec=1
但我无法确定是否可以为gstreamer
的pulsesrc
插件设置设备延迟。我猜想,如果可能的话,应该向stream-properties
添加一些内容,但是我不知道应该添加什么(我在这里搜索)以及如何添加。
是否可以为任何gstreamer
源设置此设备延迟?如果可以,如何设置?
buffer-time
属性,你可能想尝试一下。默认值为200000微秒,这看起来非常像你所看到的延迟时间。 - mprpactl
已经可以工作了,而且 alsa 延迟测试程序也报告了大约 2 毫秒的延迟。但是无论是设置buffer-time
(我之前也找到过它),还是latency-time
的 alsasrc 属性都没有产生预期的效果。(使用低buffer-time
时,回环声音开始出现故障,而latency-time
可以增加但不能减少延迟。) - gertom