GStreamer:appsrc& multifilesink - 滞后输出

时间:2016-09-09 15:19:10

标签: gstreamer

我正在使用appsrc将数据输入GStreamer并通过multifilesink输出。这很好用。但是,如果数据太多(例如因为分辨率太高),则输出开始滞后。事实上,时间越长,multifilesink输出的文件就越潜伏。

例如,如果我让这个过程持续一段时间,multifilesink可能会输出一分钟的帧,即使它开始的时间非常小。

如何告诉GStreamer丢帧以避免达到如此大的延迟?

注意:

  • 我的appsrc设置了 is-live do-timestamp
  • 我尝试将 max-latency 阻止(false)添加到appsrc,但这似乎没有改变任何内容。
  • 我也尝试在我的multifilesink上设置 max-lateness ,但这似乎也没有做任何事情。

(PS:我的代码可以找到here,以回答有关此类设置的其他问题。)

1 个答案:

答案 0 :(得分:1)

最后通过在queue之前在我的管道中添加漏洞capsfilter来解决这个问题。就我而言:

GstElement* queue = gst_element_factory_make("queue", NULL);
g_object_set(G_OBJECT(queue), "leaky", 2, NULL);
g_object_set(G_OBJECT(queue), "max-size-time", 500 * GST_MSECOND, NULL);

诀窍。