Gstreamer应用开发手册6:跟踪、定位、元数据

本文介绍了GStreamer中如何进行查询流位置和长度、事件定位以及元数据的操作。查询用于获取流的长度和位置信息,事件定位(seek-event)涉及播放率和定位偏移,而元数据则包含流标签和技术信息。GStreamer支持通过事件和查询来跟踪和控制媒体处理过程,并允许读取和写入元数据。
摘要由CSDN通过智能技术生成

到目前为止,我们已经接触到如何创建一个处理媒体数据流的管道,并如何使它运行。更多的应用程序开发者对在媒体数据流的处理过程中能否提供反馈信息给用户,以及提供什么反馈信息给用户,更感兴趣。举例来说: 对于多媒体播放器,我们想要对播放中的音乐显示一个进度条。或者进行代码转换的应用程序可能需要一个进度条来显示当前处理的代码百分比。 GStreamer 内置了方法来支持上述功能。它通过使用查询(querying)的概念来达到上述目的。由于位置偏移 (Seeking)与查询是相当类似的, 所以位置偏移 (Seeking)也将在后面讨论。位置偏移 (Seeking)的触发使用了事件(events)的概念。

查询:获得流位置或长度

查询(Querying)主要用来请求数据流中一些与处理轨迹相关的特定性质。这包括流的长度(如果可以得到)或者当前的位置信息。这些流特性可以以其它不同的格式重新 得到,像时间、音频样本、视频帧或一串字节。尽管提供了更简洁的方法 (gst_element_query_position()及gst_element_query_duration()), 但还是常用 gst_element_query()来得到上述信息。你通常可以直接查询管道, Gstreamer 会给出一些详细的内部信息,诸如被查询的元件的名字等。

在内部,查询将会发送给接收端,然后一直向后“分派”直到有个元件能够处理它。结果将会返回给函数调用者。通常地,这是 demuxer 做的事情,尽管 demuxer 有活的源(live source

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值