Мне нужно (почти) захват аудио в реальном времени в Linux с помощью gstreamer
. Моя проблема заключается в том, что я не могу уменьшить задержку ниже ~ 210 мс. Я пробовал простую петлю от микрофона до наушников:Запись с низким латентным звуком с gstreamer
gst-launch-1.0 pulsesrc ! alsasink
gst-launch-1.0 alsasrc ! alsasink
Обе производили ту же задержку. Свойство latency-time
alsasrc
не помогло (оно добавило заданную задержку). Я мог бы произвести эффект, мне нужно с
pactl load-module module-loopback latency_msec=1
Но я не мог понять, можно ли установить задержку устройства для pulsesrc
плагина из gstreamer
. Думаю, если это возможно, я должен добавить что-то к stream-properties
, но не мог понять, что (I searched for it here) и как.
Можно ли установить задержку устройства для любых gstreamer
источников, и если да, то как?
некоторые из этих аудио-библиотек (гнездо) предлагают возможность в режиме реального времени во время установки ... вы видели такой вариант? ... это не значение по умолчанию, поскольку оно передает приоритет на обработку звука в ущерб не-аудио-процессам. –
Возможно, вы хотите протестировать задержку на уровне ALSA и посмотреть, может ли это быть скорее вопросом ALSA, чем GStreamer one ? http://www.alsa-project.org/main/index.php/Test_latency.c – mpr
Я также вижу, что в alsasrc есть свойство 'buffer-time', которое вы можете попробовать. Значение по умолчанию - 200000 микросекунд, которое выглядит подозрительно подобно задержке, которую вы видите. – mpr