У меня есть следующие установки трубопровода в GStreamer:GStreamer: Введение задержки/разрыв/переход к аудио
два источник импульсов аудио (pulsesrc) из двух звуковых интерфейсов USB и индивидуального один импульс аудио раковины (pulsesink). Я объединяю два входящих аудиопотока, используя компонент сумматора. К сожалению, между двумя аудиоканалами существует небольшая задержка.
pulsesrc1 --- queue --- audioconvert --- audioresample --- |
| adder --- queue --- | pulsesink
pulsesrc2 --- queue --- audioconvert --- audioresample --- |
Я использую системное время/часы для синхронизации. Оба аудиоинтерфейса подключены к одному USB-концентратору. Я предполагаю, что звук уже немного задерживается до того, как его даже подхватят источники (из-за разных часов).
Вот почему я хотел бы представить задержку/пробел/сдвиг на первый аудиоканал (второй отстает чуть ниже), чтобы компенсировать это.
До сих пор я пытался установить свойство «min-threshold-time» первой очереди. К сожалению, трубопровод компенсирует эту задержку, и оба аудиопотока одинаково задерживаются. Я также проверил элемент «audioecho». К сожалению, отсутствует свойство «сухое/влажное». Это означает, что исходный сигнал всегда воспроизводится в свое первоначальное время, а затем после этого задерживает хвост (что мне совсем не помогает).
Любые дальнейшие идеи, как решить эту проблему? Может быть, добавьте пробел молчания? Или другие параметры, которые, возможно, отсутствовали.
Я реализовал этот конвейер с помощью Python. Заранее спасибо!
Thanks av501! Я пробовал устанавливать минимальное пороговое время раньше. К сожалению, это не работает, потому что автоматическая компенсация задержки GStreamer отражает задержку в другом звуковом пути. Я посмотрю плагин смены. Я дам вам знать, как это работает. –
Вы когда-нибудь работали с элементом shift? Этот простой тестовый конвейер не работает - сдвиг не происходит: gst-launch-0.10 pulsesrc device = alsa_input.usb-Creative_Technology_Ltd_Sound_Blaster_X-Fi_Go__Pro_00201613-00-Pro.analog-stereo! сдвиговая задержка = 2000! очередь ! pulsesink device = alsa_output.usb-Creative_Technology_Ltd_Sound_Blaster_X-Fi_Go__Pro_00201613-00-Pro.analog-stereo –
Никакой хаус не использовал его сам. Возможно, некоторые отладочные отпечатки могут рассказать вам, что происходит? GST_DEBUG = 3 или 4. Кстати, в простом конвейере, как вы знаете, сдвиг произошел? Я не думаю, что это произойдет. Из того, что я прочитал, он сдвигает отметки времени. Поэтому, если вы перемещаете его в контейнер, вы должны увидеть сдвинутую метку времени. Однако в противном случае конвейер не запускается, если только один выход не будет до приемника (если ваш конвейер не находится в режиме реального времени. Если ваш приемник имеет режим реального времени, включите его). – av501