如何改变 gstreamer autoaudiosink、autovideosink 等的行为,
How to alter the behaviour of gstreamer autoaudiosink, autovideosink etc,
gstreamer 有 autoaudiosink、autovideosink、autoaudiosrc、autovideosrc。
当有多个源或接收器匹配时,这是如何工作的
例如:windows 上的 videosink 可以是 opengl 或 directx,
gstreamer 如何决定使用哪一个?
有没有可能改变这个?
How does gstreamer decide which one to use?
GStreamer 有一个非常通用的自动插入机制,因此它可以做正确的事情。 documentation 非常简洁,但让我们针对 autovideosink
的情况再看一遍。
第一步,autoplugging 将尝试过滤掉您系统上的相关元素:例如,如果 decodebin
元素的输入是 H264 流,它将只找到通告 video/xh264
盖在他们的水槽垫上。在autovideosink
的情况下,它将过滤所有添加了显式“Sink”和“Video”标签的元素以查找相关元素。
在第二步中,它仍然需要 select 我们刚刚收集的元素集中的最佳匹配。为此,GStreamer 选择具有最高“排名”的插件。插件有一个默认排名,但您可以通过编程方式修改它(如何做到这一点已 )。
注意:某些元素(如 decodebin
)还提供额外的 API 以实现更精细的控制。
Is there any possibility to alter this?
所以简短的答案在这里:通过修改插件等级。
同样值得注意的是,应用程序开发人员通常会选择给定的接收器(例如 glimagesink
)并通过配置该元素的属性针对该情况进行优化。
gstreamer 有 autoaudiosink、autovideosink、autoaudiosrc、autovideosrc。
当有多个源或接收器匹配时,这是如何工作的
例如:windows 上的 videosink 可以是 opengl 或 directx,
gstreamer 如何决定使用哪一个?
有没有可能改变这个?
How does gstreamer decide which one to use?
GStreamer 有一个非常通用的自动插入机制,因此它可以做正确的事情。 documentation 非常简洁,但让我们针对 autovideosink
的情况再看一遍。
第一步,autoplugging 将尝试过滤掉您系统上的相关元素:例如,如果 decodebin
元素的输入是 H264 流,它将只找到通告 video/xh264
盖在他们的水槽垫上。在autovideosink
的情况下,它将过滤所有添加了显式“Sink”和“Video”标签的元素以查找相关元素。
在第二步中,它仍然需要 select 我们刚刚收集的元素集中的最佳匹配。为此,GStreamer 选择具有最高“排名”的插件。插件有一个默认排名,但您可以通过编程方式修改它(如何做到这一点已
注意:某些元素(如 decodebin
)还提供额外的 API 以实现更精细的控制。
Is there any possibility to alter this?
所以简短的答案在这里:通过修改插件等级。
同样值得注意的是,应用程序开发人员通常会选择给定的接收器(例如 glimagesink
)并通过配置该元素的属性针对该情况进行优化。