GStreamer
文章平均质量分 92
williamzhang_zz
这个作者很懒,什么都没留下…
展开
-
GStreamer iOS SDK的安装
1. 背景介绍 GStreamer是目前比较热火的创建流媒体应用程序的框架,建立在GObject的基础上。其基本设计思想来自于俄勒冈(Oregon)研究生院有关视频管道的创意,同时也借鉴了DirectShow的设计思想。 2. 下载SDK GStreamer目前版本发展非常迅速,已经到达了1.2,但提供下载的编译好的SDK还是0.10版本的。原创 2013-12-23 13:25:33 · 4560 阅读 · 2 评论 -
GStreamer播放教程03——pipeline的快捷访问
目的 《GStreamer08——pipeline的快捷访问》展示了一个应用如何用appsrc和appsink这两个特殊的element在pipeline中手动输入/提取数据。playbin2也允许使用这两个element,但连接它们的方法有所不同。连接appsink到playbin2的方法在后面还会提到。这里我们主要讲述: 如何把appsrc连接到playbin2翻译 2014-03-30 12:52:34 · 6111 阅读 · 0 评论 -
GStreamer播放教程04——既看式流
在《GStreamer基础教程——流》里面我们展示了如何在较差的网络条件下使用缓冲这个机制来提升用户体验。本教程在《GStreamer基础教程——流》的基础上在扩展了一下,增加了把流的内容在本地存储。翻译 2014-03-31 10:16:32 · 7862 阅读 · 0 评论 -
GStreamer基础教程10——GStreamer工具
GStreamer提供了一系列方便使用的工具。翻译 2014-03-19 12:00:06 · 26203 阅读 · 7 评论 -
GStreamer播放教程05——色彩平衡
亮度,对比度,色度和饱和度都是常见的视频调节参数,也是GStreamer里面设置色彩平衡的参数。翻译 2014-04-01 14:24:07 · 3445 阅读 · 0 评论 -
GStreamer基础教程12——流
直接播放Internet上的文件而不在本地保存就被称为流播放。我们在前面教程里已经这样做过了,使用了http://的URL。翻译 2014-03-21 10:38:45 · 21266 阅读 · 3 评论 -
GStreamer基础教程11——调试工具
有时我们的应用并没有按照我们的预期来工作,并且在总线上获得的错误信息也没有足够的内容。这时我们该怎么办呢?幸运的时,GStreamer自身提供了大量的调试信息,通常这些信息会给出一些线索,指向出错的地方。翻译 2014-03-20 11:46:46 · 15736 阅读 · 2 评论 -
GStreamer播放教程06——可视化音频
GStreamer有一系列把音频转换成视频的element。他们可以用于科学的目的或者增加音乐播放器的趣味性。翻译 2014-04-02 10:58:36 · 5917 阅读 · 1 评论 -
GStreamer基础教程13——播放速度
本教程会展示如何来获得快进,倒放和慢放的效果以及如何进行逐帧的跳跃。翻译 2014-03-22 11:26:09 · 9592 阅读 · 1 评论 -
GStreamer播放教程07——自定义playbin2的sink
目标 通过手动选择音频和视频的sink,playbin2可以进一步定制。这允许使用playbin2的应用在解码后可以自行做最终的渲染和显示。本教程展示了: 如何替换playbin2选择的sink 如何使用一个复杂的pipeline来作为sink介绍 playbin2有两个属性:audio-sink和video-sink。应用只需要翻译 2014-04-03 11:09:36 · 9875 阅读 · 0 评论 -
GStreamer基础教程14——常用的element
本教程给出了一系列开发中常用的element。翻译 2014-03-23 17:21:40 · 21999 阅读 · 1 评论 -
GStreamer基础教程15——继承Clutter
Clutter是一个开源的库,用来创建快速、可移植和动态的GUI。GStreamer可以通过cluttersink这个element把clutter集成进来,允许视频像纹理一样使用。翻译 2014-03-24 13:16:00 · 3855 阅读 · 0 评论 -
GStreamer基础教程16——平台相关的element
虽然GStreamer是跨平台的framework,但不是所有的element都是在所有平台下都有的。翻译 2014-03-25 11:20:44 · 6794 阅读 · 1 评论 -
写在GStreamer翻译之后
这原创 2014-04-11 09:17:23 · 4614 阅读 · 10 评论 -
GStreamer播放教程09——数字音频传输
本教程展示GStreamer是如何进行数字音频传输的。翻译 2014-04-10 11:01:54 · 6135 阅读 · 0 评论 -
GStreamer播放教程02——字幕管理
这篇教程展示如何使用外部字幕文件和如何切换字幕翻译 2014-03-29 15:38:10 · 6219 阅读 · 0 评论 -
GStreamer基础教程09——收集媒体信息
有时你需要快速的了解一个文件(或URI)包含的媒体格式或者看看是否支持这种格式,GStreamer提供了一个工具可以帮你做这些。翻译 2014-03-18 10:58:28 · 6805 阅读 · 0 评论 -
GStreamer iOS教程1 —— GStreamer连接
GStreamer是相当高大上的一个流媒体应用程序开发框架,目前中文的资料不多,自己在学习中诞生了一个把官方的Tutorial翻译成中文的一个念头,一方面可以推广这个东西,让其他有兴趣的程序员快速上手,另一方面也能让自己得到锻炼。在这里立个碑,希望自己能坚持下去。 术语方面我会采用英文表述,方便交流和沟通。下面是第一篇的正文:1. 目标 第一个iOS的教程翻译 2013-12-23 15:00:26 · 4682 阅读 · 2 评论 -
GStreamer iOS教程3 —— 视频
1. 目标 到目前为止,所有的GStreamer都是靠video sink来创建一个窗口并显示视频内容的(除了Basic教程里面的第5讲)。但在iOS系统里面video sink不能创建自己的窗口,所以必须提供一个绘制层。本教程会讲述如何在Xcode的IB工具里面创建一个绘制层并传给GStreamer。2. 介绍 由于iOS没有提供窗口系统,GStreamer的vi翻译 2013-12-25 13:37:45 · 3722 阅读 · 0 评论 -
GStreamer iOS教程4——一个基础的播放器
1. 目标 本教程最终会在你的iOS设备上播放一个在Internet上的流媒体。它展示了:UI上如何进行刷新如何实现时间进度条如何获得媒体的尺寸并适配显示层 本教程同样需要在Basic教程的前继内容,包括playbin2如何播放媒体和如何处理网速不稳定的问题。2. 介绍 在上一篇教程里,我们已经实现了几乎所有的播放器所需要的元素。其翻译 2013-12-26 12:58:03 · 4205 阅读 · 4 评论 -
GStreamer iOS教程2 —— 运行pipeline
GStreamer iOS 教程2翻译 2013-12-24 15:29:14 · 3533 阅读 · 0 评论 -
GStreamer iOS教程5——一个完整的播放器
1. 目标 本次教程主要是演示一下在iOS平台上GStreamer都能实现什么样的功能,具体的知识和iOS教程4相比没太多增加。 这个应用仅仅是演示了播放器的一些功能,并不是一个完整的应用,不能用于上传AppStore。2. 介绍 前一个教程已经实现了基本的播放器,这里只是简单的增加了一些周边功能。最主要的是增加了播放媒体的选择和在播放时不允许屏幕保护翻译 2013-12-27 10:04:38 · 2893 阅读 · 1 评论 -
GStreamer基础教程04——时间管理
本教程主要讲述一些和时间相关的内容。主要包括:1. 如何问pipeline查询到流的总时间和当前播放的时间2. 如何在流内部实现跳转功能翻译 2014-03-11 10:48:40 · 14732 阅读 · 3 评论 -
GStreamer基础教程03——动态pipeline
本教程介绍pipeline的一种新的创建方式——在运行中创建,而不是在运行前一次性的创建结束。翻译 2014-03-10 21:09:26 · 25267 阅读 · 5 评论 -
GStreamer基础教程05——集成GUI工具
本教程展示了如何在GStreamer集成一个GUI(比如:GTK+)。最基本的原则是GStreamer处理多媒体的播放而GUI处理和用户的交互。翻译 2014-03-14 09:44:10 · 9657 阅读 · 8 评论 -
GStreamer基础教程01——Hello World
目标 对于一个软件库来说,没有比在屏幕上打印出Hello World更近直观的第一印象了。因为我们是在和一个多媒体的framework打交道,所以我们准备播放一段视频来代替Hello World。不要被下面的代码吓唬住了——真正起作用的也就四行而已。剩下的都是资源管理的代码,C语言嘛,就是有这个麻烦。不多说了,准备你的第一个GStreamer应用吧…...Hello World翻译 2014-02-19 09:51:01 · 47342 阅读 · 14 评论 -
GStreamer基础教程02——GStreamer概念
上一个教程演示了如何自动生成一个pipeline。这次我们打算用一个个element来手动搭建一个pipeline。我们这个教程会演示:1. 什么是GStreamer的element以及如何建立一个element2. 如何在element直接建立连接3. 如何客制化element的行为4. 如何监视总线上的错误并获得相关的信息 手动建立Hello World翻译 2014-03-09 22:33:48 · 28340 阅读 · 2 评论 -
GStreamer基础教程06——媒体格式和pad的Capabilities
Pad的Capabilities是一个GStreamer element的基础,因为framework大部分时间是自动处理的,所以我们几乎感觉不到它的存在。翻译 2014-03-15 23:16:54 · 12487 阅读 · 1 评论 -
GStreamer基础教程07——多线程和Pad的有效性
GStreamer会自动处理多线程这部分,但在有些情况下,你需要手动对线程做解耦。翻译 2014-03-16 10:58:08 · 18584 阅读 · 8 评论 -
GStreamer基础教程08——pipeline的快捷访问
GStreamer建立的pipeline不需要完全关闭。有多种方法可以让数据在任何时候送到pipeline中或者从pipeline中取出。翻译 2014-03-17 11:59:21 · 15747 阅读 · 3 评论 -
GStreamer播放教程01——playbin2的使用
目标 我们前面已经使用过了playbin2这个element,它可以让我们做的很少而实现很多。本教程会展示当这个element的默认设置在一些特殊情形下不符合我们的需求是可以做的一些深度定制,我们会看到: 如何判断一个文件中有多少个流并区分开 如何获得每一个流的信息 作为一个编注,虽然这个element名字是playbin2,但因为原来的翻译 2014-03-28 16:17:04 · 17463 阅读 · 1 评论 -
GStreamer播放教程08——视频解码的硬件加速
视频的硬件解码近来发展非常快速,尤其是在低功耗的设备上。本教程会讲述一些硬件加速的背景知识并解释一下GStreamer是怎么做的。翻译 2014-04-08 22:07:34 · 25677 阅读 · 1 评论