GStreamer基础教程11 - 与QT集成】的更多相关文章

摘要 通常我们的播放引擎需要和GUI进行集成,在使用GStreamer时,GStreamre会负责媒体的播放及控制,GUI会负责处理用户的交互操作以及创建显示的窗口.本例中我们将结合QT介绍如何指定GStreamer将视频输出到指定窗口,以及如何利用GStreamer上报的信息去更新GUI. 与GUI集成 我们知道与GUI集成有两个方面需要注意: 显示窗口的管理. 由于显示窗口通常由GUI框架创建,所以我们需要将具体的窗口信息告诉GStreamer.由于各个平台使用不同的方式传递窗口句柄,GSt…
目标 有时我们的应用并没有按照我们的预期来工作,并且在总线上获得的错误信息也没有足够的内容.这时我们该怎么办呢?幸运的时,GStreamer自身提供了大量的调试信息,通常这些信息会给出一些线索,指向出错的地方.本教程主要讲述: 如何在GStreamer里面获得更多地调试信息 如何把你自己的调试信息加入GStreamer的调试记录 如何获得图形化的pipeline 打印调试信息 调试记录 GStreamer和插件里面都有大量的调试信息,也就是说,在调试区域内可以给出所有的信息,包括时间戳,线程,种…
目标 本教程展示了如何在GStreamer集成一个GUI(比如:GTK+).最基本的原则是GStreamer处理多媒体的播放而GUI处理和用户的交互. 在这个教程里面,我们可以学到: 如何告诉GStreamer输出视频到一个window 如何持续的刷新GUI 在GStreamer多线程时如何保持UI的更新 一个仅发送给你订阅的消息而不是所有消息的机制 介绍 我们下面就用GTK+这样一个GUI工具来些一个播放器,但基本概念是可以推广到其它工具的(比如QT).如果你对GTK+有一定的了解有助于理解本…
摘要 GStreamer提供了不同的命令行工具用于快速的查看信息以及验证Pipeline的是否能够正确运行,在平时的开发过程中,我们也优先使用GStreamer的命令行工具验证,再将Pipeline集成到应用中.本文将介绍gst-inspect-1.0,gst-discoverer-1.0,gst-launch-1.0命令行工具的使用. gst-inspect-1.0 此命令有3种工作模式,实际中我们常用第一种和第三种方式: 一.不带任何参数.这样会列出当前系统中支持的所有Element,这些E…
目标 本教程给出了一系列开发中常用的element.它们包括大杂烩般的eleemnt(比如playbin2)以及一些调试时很有用的element. 简单来说,下面用gst-launch这个工具给出一个个具体例子(命令行),你可以用-v参数可以看到Pad得Caps是如何协商的. Bins 这些是Bin element,它们在内部包含其他的element,已经组成了内部的pipeline,但在外部,我们还是把它们当成一个element. Playbin2 这个element在整个系列的教程里面广泛的…
目标 GStreamer提供了一系列方便使用的工具.这篇教程里不牵涉任何代码,但还是会讲一些有用的内容: 如何在命令行下建立一个pipeline--完全不使用C 如何找出一个element的Capabilities 如何发现一个媒体文件的内部结构 介绍 这些工具就位于SDK的bin目录下.你需要把这个目录加入PATH变量,或者把当前目前切换到GStreamer SDK的bin目录. 打开一个终端界面,把当前目录切换到GStreamer SDK的bin目录,然后准备跟着我们操作吧. 为了防止多个版…
摘要 在 Gstreamer基础教程01 - Hello World中,我们介绍了如何快速的通过一个字符串创建一个简单的pipeline.为了能够更好的控制pipline中的element,我们需要单独创建element,然后再构造pipeline,下面将介绍GStreamer的一些基本概念并展示pipeline的另一种构造方式. 基本概念 Element 我们知道element是构建GStreamer pipeline的基础,element在框架中的类型为GstElement,所有GStrea…
摘要 在我们前面的文章中,我们的Pipline都是使用GStreamer自带的插件去产生/消费数据.在实际的情况中,我们的数据源可能没有相应的gstreamer插件,但我们又需要将数据发送到GStreamer Pipeline中.GStreamer为我们提供了Appsrc以及Appsink插件,用于处理这种情况,本文将介绍如何使用这些插件来实现数据与应用程序的交互. Appsrc与Appsink GStreamer提供了多种方法使得应用程序与GStreamer Pipeline之间可以进行数据交…
目标 快进,倒放和慢放是trick模式的共同技巧,它们有一个共同点就是它们都修改了播放的速度.本教程会展示如何来获得这些效果和如何进行逐帧的跳跃.主要内容是: 如何来变换播放的速度,变快或者变慢,前进或者后退 如何一帧一帧的播放视频 介绍 快进是以超过正常速度播放媒体的一项技术,反之,慢放是以低于正常速度播放的技术.倒放和播放是一样的,只不过是从后面朝前面播放. 所有这些技术做的都是修改播放速度这件事,如果说正常播放速度是1.0的话,那么超过1.0这个数字就是快进,低于1.0这个数字就是慢放了,…
目标 GStreamer建立的pipeline不需要完全关闭.有多种方法可以让数据在任何时候送到pipeline中或者从pipeline中取出.本教程会展示: 如何把外部数据送到pipeline中 如何把数据从pipeline中取出 如何操作这些数据 介绍 有几种方法可以让应用通过pipeline和数据流交互.本教程讲述了最简单的一种,因为使用了专门为这个而创建的element. 专门让应用可以往pipeline里面传入数据的element时appsrc,而appsink就正好相反,让应用可以从…