【问题标题】:GStreamer, how to add a delay to one of the input streams?GStreamer,如何向其中一个输入流添加延迟?
【发布时间】:2011-01-23 15:11:27
【问题描述】:

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

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

【问题讨论】:

    标签: c gstreamer


    【解决方案1】:

    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

    【讨论】:

      【解决方案2】:

      我最终实现了一个缓冲区探测,它使我能够修改单个数据包的时间戳。见Pipeline Manipulation

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-11-10
        • 2019-12-15
        • 2015-12-28
        • 2015-09-07
        • 1970-01-01
        • 2017-04-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多