1

我创建了一个 GStreamer 管道,它采用多个输入源:相机音频/视频、徽标和作为 RTP 流接收的屏幕捕获视频)。它使用 videomixer 元素将这些源组合成一个视频。

然而,屏幕捕获流似乎比其余的滞后 2 秒。为了解决这个问题,我想在其他流中引入 2 秒的延迟。这就是我目前陷入困境的地方。我尝试在相机源之后添加一个队列元素并设置“最小阈值时间”属性以创建 2 秒延迟,但 GStreamer 似乎为其他流更正了这一点。结果是整个流被延迟了,RTP流和摄像头视频之间的延迟仍然存在。

4

3 回答 3

4

我最终实现了一个缓冲区探测,它使我能够修改单个数据包的时间戳。请参阅管道操作

于 2010-04-08T11:32:13.757 回答
0

Gstreamer 插件rtpjitterbuffer有一个ts-offset属性,可用于调整一个传入摄像头的时间戳,以实现源之间的流间同步:

https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--ts-offset

于 2017-02-10T02:25:36.603 回答
0

一个简单的解决方案是在管道上添加延迟

pipeline  = gst_pipeline_new ("mypieline");
gstpipline=GST_PIPELINE (pipeline);
gst_pipeline_set_latency(gstpipline,delay you want to set in Nano Sec);

于 2022-01-14T10:40:24.853 回答