将element用作 GObject,将GObject
属性的使用作为应用程序和元素交互的一种简单方式。这种方法对于简单的 getter 和 setter 来说就足够了,但对于更复杂的东西就失败了。对于更复杂的用例,GStreamer 使用基于GObject
GTypeInterface
类型的接口 。
URI处理程序接口
到目前为止,在我们的示例中,我们仅使用“filesrc”元素展示了对本地文件的支持,但 GStreamer 支持更多的位置源。
GStreamer 不需要应用程序知道任何URI
细节,例如用于特定网络源类型的元素。这些细节被GstURIHandler
接口抽象出来。
URI
命名没有严格的规则,但一般来说,我们遵循通用命名约定。例如,假设您安装了正确的插件,GStreamer 支持:
file:///<path>/<file>
http://<host>/<path>/<file>
mms://<host>/<path>/<file>
dvb://<CHANNEL>
...
为了获得支持特定 URI 的源或接收器元素,请根据您需要的方向使用gst_element_make_from_uri ()
withGST_URI_SRC
或GST_URI_SINK
as GstURIType
。
您可以使用 GLib g_filename_to_uri ()
和g_uri_to_filename ()
.
色彩平衡界面
该GstColorBalance
接口是一种方法,一个元素上控制视频相关的性质,如亮度,对比度等。它存在的唯一原因是,据其作者所知,无法使用GObject
.
色彩平衡界面由多个插件实现,包括 xvimagesink
、glimagesink
和Video4linux2
元素
视频叠加界面
GstVideoOverlay
创建该界面是为了解决在应用程序窗口中嵌入视频流的问题。应用程序为实现此接口的元素提供了一个窗口句柄,然后该元素将使用此窗口句柄来绘制而不是创建一个新的顶级窗口。这对于在视频播放器中嵌入视频很有用。
该接口是由Video4linux2
元素和由glimagesink
、ximagesink
、xvimagesink
和 实现的sdlvideosink
。
其他接口
GStreamer 提供了很多其他接口,并由其某些元素实现。其中:
GstChildProxy
用于访问多子元素的内部元素的属性GstNavigation
用于导航事件的发送和解析GstPreset
用于处理元素预设GstRTSPExtension
一个 RTSP 扩展接口GstStreamVolume
提供访问和控制流音量级别的接口GstTagSetter
用于处理媒体元数据GstTagXmpWriter
对于提供 XMP 序列化的元素GstTocSetter
用于设置和检索类似 TOC 的数据GstTuner
对于提供射频调谐操作的元件GstVideoDirection
用于视频旋转和翻转控制GstVideoOrientation
用于视频方向控制GstWaylandVideo
韦兰视频接口