ZhangPY的专栏

不骄不躁,不屈不挠;严于律己,宽以待人

【GStreamer开发】GStreamer基础教程16——平台相关的element

目标       虽然GStreamer是跨平台的framework,但不是所有的element都是在所有平台下都有的。比如,音频和视频的sink都非常依赖于当前的window系统,根据当前的平台需要选择不同的element。当然,你在运行playbin2或者autovideosink这些elem...

2017-02-18 14:44:32

阅读数:780

评论数:0

【GStreamer开发】GStreamer基础教程15——继承Clutter

目标       Clutter是一个开源的库,用来创建快速、可移植和动态的GUI。GStreamer可以通过cluttersink这个element把clutter集成进来,允许视频像纹理一样使用。本教程会展示:       如何把GStreamer pipeline的视频输出在clutter里...

2017-02-18 14:43:58

阅读数:255

评论数:0

【GStreamer开发】GStreamer基础教程14——常用的element

目标       本教程给出了一系列开发中常用的element。它们包括大杂烩般的eleemnt(比如playbin2)以及一些调试时很有用的element。       简单来说,下面用gst-launch这个工具给出一个个具体例子(命令行),你可以用-v参数可以看到Pad得Caps是如何协商的...

2017-02-18 14:43:04

阅读数:567

评论数:0

【GStreamer开发】GStreamer基础教程13——播放速度

目标       快进,倒放和慢放是trick模式的共同技巧,它们有一个共同点就是它们都修改了播放的速度。本教程会展示如何来获得这些效果和如何进行逐帧的跳跃。主要内容是:       如何来变换播放的速度,变快或者变慢,前进或者后退       如何一帧一帧的播放视频 介绍       快进是...

2017-02-18 14:42:30

阅读数:663

评论数:0

【GStreamer开发】GStreamer基础教程12——流

目标       直接播放Internet上的文件而不在本地保存就被称为流播放。我们在前面教程里已经这样做过了,使用了http://的URL。本教程展示的是在播放流的时候需要记住的几个点,特别是:       如何设置缓冲       如何从打断中恢复(因为失去了时钟) 介绍       当在...

2017-02-18 14:41:48

阅读数:334

评论数:2

【GStreamer开发】GStreamer基础教程11——调试工具

目标       有时我们的应用并没有按照我们的预期来工作,并且在总线上获得的错误信息也没有足够的内容。这时我们该怎么办呢?幸运的时,GStreamer自身提供了大量的调试信息,通常这些信息会给出一些线索,指向出错的地方。本教程主要讲述:       如何在GStreamer里面获得更多地调试信息...

2017-02-18 14:40:52

阅读数:278

评论数:0

【GStreamer开发】GStreamer基础教程10——GStreamer工具

目标       GStreamer提供了一系列方便使用的工具。这篇教程里不牵涉任何代码,但还是会讲一些有用的内容:       如何在命令行下建立一个pipeline——完全不使用C       如何找出一个element的Capabilities       如何发现一个媒体文件的内部...

2017-02-17 22:43:19

阅读数:267

评论数:0

【GStreamer开发】GStreamer基础教程09——收集媒体信息

目标       有时你需要快速的了解一个文件(或URI)包含的媒体格式或者看看是否支持这种格式。当然你可以创建一个pipeline,设置运行,观察总线上的消息,但GStreamer提供了一个工具可以帮你做这些。本教程主要讲述:       如何获得一个URI上的信息       如何确定一...

2017-02-17 22:42:26

阅读数:287

评论数:0

【GStreamer开发】GStreamer基础教程08——pipeline的快捷访问

目标       GStreamer建立的pipeline不需要完全关闭。有多种方法可以让数据在任何时候送到pipeline中或者从pipeline中取出。本教程会展示:       如何把外部数据送到pipeline中       如何把数据从pipeline中取出       如何操作...

2017-02-17 22:40:52

阅读数:360

评论数:0

【GStreamer开发】GStreamer基础教程07——多线程和Pad的有效性

目标       GStreamer会自动处理多线程这部分,但在有些情况下,你需要手动对线程做解耦。本教程会教你怎样才能做到这一点,另外也展示了Pad的有效性。主要内容包括:       如何针对部分的pipeline建立一个新的线程       什么是Pad的有效性       如何复制...

2017-02-17 22:39:42

阅读数:305

评论数:0

【GStreamer开发】GStreamer基础教程06——媒体格式和pad的Capabilities

目标       Pad的Capabilities是一个GStreamer element的基础,因为framework大部分时间是自动处理的,所以我们几乎感觉不到它的存在。本教程比较偏向原理,介绍了:       什么是Pad Capabilities       如何获得这个东西   ...

2017-02-17 22:38:14

阅读数:304

评论数:0

【GStreamer开发】GStreamer基础教程05——集成GUI工具

目标       本教程展示了如何在GStreamer集成一个GUI(比如:GTK+)。最基本的原则是GStreamer处理多媒体的播放而GUI处理和用户的交互。       在这个教程里面,我们可以学到:       如何告诉GStreamer输出视频到一个window       如何...

2017-02-17 22:36:44

阅读数:844

评论数:0

【GStreamer开发】GStreamer基础教程04——时间管理

目标       本教程主要讲述一些和时间相关的内容。主要包括:       1. 如何问pipeline查询到流的总时间和当前播放的时间       2. 如何在流内部实现跳转功能 介绍       GstQuery是向一个element或者pad询问一些信息的机制。在这个例子...

2017-02-17 22:35:22

阅读数:496

评论数:0

【GStreamer开发】GStreamer基础教程03——动态pipeline

本教程介绍pipeline的一种新的创建方式——在运行中创建,而不是在运行前一次性的创建结束。 介绍       在这篇教程里的pipeline并非在运行前就全部创建结束的。放松一下,这样做没有任何问题。如果我们不进行更深入的处理,那么数据在到达pipeline的末尾时就直接丢弃了,当然,我们肯定...

2017-02-17 22:33:39

阅读数:538

评论数:0

【GStreamer开发】GStreamer基础教程02——GStreamer概念

上一个教程演示了如何自动生成一个pipeline。这次我们打算用一个个element来手动搭建一个pipeline。我们这个教程会演示: 1. 什么是GStreamer的element以及如何建立一个element 2. 如何在element直接建立连接 3. 如何客制化element的行为 4....

2017-02-17 22:31:53

阅读数:230

评论数:0

【GStreamer开发】GStreamer基础教程01——Hello World

目标       对于一个软件库来说,没有比在屏幕上打印出Hello World更近直观的第一印象了。因为我们是在和一个多媒体的framework打交道,所以我们准备播放一段视频来代替Hello World。不要被下面的代码吓唬住了——真正起作用的也就四行而已。剩下的都是资源管理的代码,C语言嘛...

2017-02-17 22:30:26

阅读数:349

评论数:0

【GStreamer开发】GStreamer播放教程09——数字音频传输

目标       本教程展示GStreamer是如何进行数字音频传输的。 介绍       在常见的模拟格式外,高端的音频系统通常都接受数字格式,压缩的非压缩的都能接受。因为音频信号是从电脑传到音箱,用一种更有弹性的形态会更能保证质量。       典型的连接是通过S/PDIF线缆...

2017-02-17 22:27:02

阅读数:276

评论数:0

【GStreamer开发】GStreamer播放教程08——视频解码的硬件加速

目标       视频的硬件解码近来发展非常快速,尤其是在低功耗的设备上。本教程会讲述一些硬件加速的背景知识并解释一下GStreamer是怎么做的。       悄悄告诉你,如果设置正确地话,我们什么也不用做,GStreamer自动做完这一切的。 介绍       视频解码是非常消...

2017-02-17 22:25:24

阅读数:1076

评论数:0

【GStreamer开发】GStreamer播放教程07——自定义playbin2的sink

目标       通过手动选择音频和视频的sink,playbin2可以进一步定制。这允许使用playbin2的应用在解码后可以自行做最终的渲染和显示。本教程展示了:       如何替换playbin2选择的sink       如何使用一个复杂的pipeline来作为sink ...

2017-02-17 22:23:49

阅读数:312

评论数:0

【GStreamer开发】GStreamer播放教程06——可视化音频

目标       GStreamer有一系列把音频转换成视频的element。他们可以用于科学的目的或者增加音乐播放器的趣味性。本教程展示:       如何允许音频的可视化       如何选择可视化element 介绍       在playbin2里面运行音频可视化是非常容...

2017-02-17 22:22:26

阅读数:208

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭