我正在使用appsrc将数据输入GStreamer并通过multifilesink输出。这很好用。但是,如果数据太多(例如因为分辨率太高),则输出开始滞后。事实上,时间越长,multifilesink输出的文件就越潜伏。
例如,如果我让这个过程持续一段时间,multifilesink可能会输出一分钟的帧,即使它开始的时间非常小。
如何告诉GStreamer丢帧以避免达到如此大的延迟?
注意:
(PS:我的代码可以找到here,以回答有关此类设置的其他问题。)
答案 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);
诀窍。