Gstreamer - 接口

接口

将element当做作GObject 展示了 将 GObject 属性的使用作为应用程序和element交互的一种简单方式。这个方法可以用于简单的getter和setter,但无法用于任何更复杂的操作。对于更复杂的用例,GStreamer 使用基于 GObject GTypeInterface 类型的接口。

这篇文章是介绍性的,不包括源代码示例。请查看 API 参考以获取更多详细信息。

URI 处理程序接口

到目前为止,在我们的示例中,我们仅使用“filesrc” element展示了对本地文件的支持,但 GStreamer 支持更多的location sources。

GStreamer 不需要应用程序知道任何 URI 细节,例如用于特定网络源类型element。这些细节由 GstURIHandler 接口抽象。

URI 命名没有严格的规则,但一般来说,我们遵循通用命名约定。例如,假设您安装了正确的插件,GStreamer 支持:

file:///<path>/<file>
http://<host>/<path>/<file>
mms://<host>/<path>/<file>
dvb://<CHANNEL>
...

为了获得支持特定 URI 的source或sink element,请根据您需要的方向使用 gst_element_make_from_uri () 和 GST_URI_SRC 或 GS​​T_URI_SINK 作为 GstURIType。

您可以使用 GLib 的 g_filename_to_uri () 和 g_uri_to_filename () 在文件名和 URI 之间进行转换。

色彩平衡接口(The Color Balance interface

GstColorBalance 接口是一种控制element上视频相关属性的方法,例如亮度、对比度等。它存在的唯一原因是,据其作者所知,无法使用 GObject 动态注册属性。

色彩平衡接口由几个插件实现,包括 xvimagesink、glimagesink 和 Video4linux2 element。

视频叠加接口(The Video Overlay interface

GstVideoOverlay 接口的创建是为了解决在应用程序窗口中嵌入视频流的问题。应用程序为实现此接口的element提供了一个窗口句柄,然后该element将使用此窗口句柄来绘制而不是创建一个新的顶级窗口。这对于在视频播放器中嵌入视频很有用。

该接口由 Video4linux2 元素和 glimagesink、ximagesink、xvimagesink 和 sdlvideosink 等实现。

其他接口(Other interfaces

GStreamer 提供了很多其他接口,并由其某些element实现。他们之中:

  • GstChildProxy 用于访问多子element上的内部element的属性
  • GstNavigation 用于发送和解析导航事件
  • GstPreset 用于处理element预设
  • GstRTSPExtension 一个 RTSP 扩展接口
  • GstStreamVolume 接口提供访问和控制流音量级别
  • GstTagSetter 用于处理媒体元数据
  • GstTagXmpWriter 用于提供 XMP 序列化的element
  • GstTocSetter 用于设置和检索类似 TOC 的数据
  • GstTuner 用于提供 RF tunning 操作的element
  • GstVideoDirection 用于视频旋转和翻转控制
  • GstVideoOrientation 用于视频方向控制
  • GstWaylandVideo Wayland 视频接口
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值