0

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

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

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

我正在使用系统时间/时钟进行同步。两个音频接口都连接到同一个 USB 集线器。我猜音频在被源接收之前已经有轻微的延迟(由于时钟不同)。

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

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

任何进一步的想法如何解决这个问题?也许增加了沉默的间隙?或者我可能缺少的其他参数。

我已经使用 Python 实现了这个管道。先感谢您!

4

1 回答 1

0

您可以使用队列中的最小阈值时间/字节来延迟通过管道的其余部分发送数据吗?我认为它应该工作。只有当这不适合这个时:

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

或为音频修改 frie0r 延迟插件。

于 2013-05-08T09:41:55.877 回答