GStreamer:引入延迟/差距/转换到音频

时间:2013-05-06 13:56:41

标签: python audio synchronization gstreamer python-gstreamer

我在gstreamer中设置了以下管道:

来自两个独立的usb音频接口和一个脉冲音频接收器(pulseink)的两个脉冲音频源(pulserc)。我正在使用加法器组件组合两个传入的音频流。不幸的是,两个音频通道之间存在轻微的延迟。

pulsesrc1 --- queue --- audioconvert --- audioresample --- |
                                                           | adder --- queue --- | pulsesink
pulsesrc2 --- queue --- audioconvert --- audioresample --- |

我正在使用系统时间/时钟进行同步。两个音频接口都连接到同一个USB接口。我猜测音频在被信号源拾取之前已经有一点延迟(由于时钟不同)。

这就是为什么我要向第一个音频通道引入延迟/间隙/移位(第二个稍微滞后)以弥补这一点。

到目前为止,我尝试设置第一个队列的属性“min-threshold-time”。不幸的是,管道补偿了这种延迟,并且两个音频流都得到了同样的延迟。我还检查了元素“audioecho”。不幸的是它缺少“干/湿”属性。这意味着原始信号始终在原始时间播放,然后延迟尾部开始播放(这对我没有任何帮助)。

任何进一步的想法如何解决这个问题?也许增加沉默的差距?或者我可能遗失的其他参数。

我使用Python实现了这个管道。提前谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用队列中的最小阈值时间/字节来延迟在管道的其余部分上发送数据吗?我认为它应该有效。只有这样做不会:

http://gentrans.sourceforge.net/docs/head/gst-entrans-plugins/html/gst-entrans-plugins-shift.html

或修改frie0r延迟插件以获取音频。