GStreamer

✍ dations ◷ 2025-08-03 23:29:18 #自由软件,开源软件,多媒体框架,GNOME

GStreamer 是一个基于管道的多媒体框架,基于GObject,以C语言写成。

凭借GStreamer,程序员可以很容易地创建各种多媒体功能组件,包括简单的音频回放,音频和视频播放,录音,流媒体和音频编辑。基于流水线设计,可以创建诸如视频编辑器、流媒体广播和媒体播放器等等的很多多媒体应用。

1999年Erik Walthinsen创建了GStreamer,2001年1月11日发表了第一个主要版本是0.1。没过多久,GStreamer出现了第一个商业版本,由RidgeRun公司发行,这是一家嵌入式Linux 公司。RidgeRun后来遇到了财务困难,工作人员大多离去,包括Walthinsen。 GStreamer的进展并未受影响。2001年7月发表了0.2.0的版本,2002年9月,发表了0.4.0,2004年3月又发表了0.8.0。

2004年,新公司Fluendo成立,并使用GStreamer编写一个流媒体服务器Flumotion, 并提供多媒体解决方案。2005年12月发表了0.10.0版本。日后GStreamer渐渐普及,2006年,Totem , Rhythmbox 和 Banshee等媒体巨头都使用 GStreamer。

GStreamer日后在商业上获取巨大成功有许多不同的公司采用(诺基亚、摩托罗拉、德州仪器、 飞思卡尔、英特尔等等),并已成为一个非常强大的跨平台多媒体框架。

其跨平台设计,使其能够在Linux(包括x86,PowerPC和ARM架构),Solaris(Intel和SPARC)以及OpenSolaris,FreeBSD,OpenBSD,NetBSD,Mac OS X,Microsoft Windows和OS/400上运行。GStreame也有针对其他语言的绑定如Python,Vala,C++,Perl,GNU Guile和Ruby。GStreamer依据GNU宽通用公共许可证授权。

GStreamer的程序通过连接数字媒体处理的元素注入管道(pipeline)。每个元素是由一个插件提供 。 元素可组合为箱(bins),箱可以进一步聚合,从而形成架构图。右图是一个例子一个过滤器图表 。

元素沟通是透过垫(pads)。来源垫(source pad)上一个元素可以被连接到一个接收垫(sink pad)在另一个。当管道是在播放状态,数据缓冲流(data buffers flow)从来源垫(source pad)流向接收垫(sink pad)。

该图可以体现出如何使用GStreamer播放MP3文件。该文件的源读取 MP3文件从一台计算机的硬盘驱动程序,并将其发送到MP3解码器。解码器解码该MP3数据,并转换成PCM,然后传递到ALSA声音驱动。ALSA的声卡驱动程序发送 PCM声音样本,最后从电脑的扬声器播放。

GStreamer采用基于插件(plugin)和管道(pipeline)的体系结构,框架中的所有的功能模块都被实现成可以插拔的组件(component),能够很方便地安装到任意管道上。GStreamer使用插件架构并造就了大量的GStreamer的共享库。GStreamer基本功能包括登录与加载,新的组件可以透过基类来获取这些属性。Gstreamer的基类之一是GObject。以Gobject的实现思想而言,可通过2个struct,一个相当于C++ 成员变量,一个相当C++中的成员函数。GStreamer框架中的大部分函数都会涉及到对GstElement对象的操作,GstElement又被区分成Source Element、Filter Element、Sink Element。写gstreamer element的时候,不能使用全局变量,要把这些变量全部放到该element的class中。

Plug-ins 如果有需要的话, 可以半自动的加载。GStreamer并没有严格规定输入端和输出端的数目,事实上它们都可以是一个或者多个。所有的组件都从NULL状态开始,依次经历NULL、READY、PAUSED、PLAYING等状态间的转换。正处于播放状态的管道能够随时切换到PAUSED状态。

0.9版以后的插件可被区分成三种类 (来自电影"The Good, the Bad and the Ugly"的名字)

相关

  • 大黄大黄,又称作生大黄、熟大黄、生将军、生锦纹、酒军、黄良、川军,是多种蓼科大黄属的多年生草本植物的合称,一般从粗短的根茎种植。大黄长有三角形的大叶,叶柄肥厚。花形细小,聚集
  • 梭温梭温(缅甸语:စိုးဝင်း,缅甸语委转写:Soe Win;1947年6月14日-2007年10月12日),缅甸前总理,自2004年10月19日起担任,由军人政府最高领导人丹瑞委任,据报导,他与丹瑞关系密切。梭温
  • 吉布提国旗吉布提国旗采用于1977年6月27日,即该国脱离法国殖民统治宣布独立当日,是一面由蓝(象征海洋和亲索马里的伊萨人)、绿(象征土地和亲埃塞俄比亚的阿法尔人)两横条和一白色等腰三角形(
  • 侯爵侯是中国古代爵位名,一些邻近国家受中国影响也以此为爵位名。欧洲中世纪以后,在中文里也用“侯爵”来翻译欧洲贵族爵位中相应等级的称号(例如法国Marquis、英国Marquess、德国M
  • 标准化智力测验智能商数(德语:Intelligenzquotient),简称智商(德语:IQ),是用智力测试测量人在其年龄段的认知能力(“智力”)的得分。人的智商呈正态分布,目前主要的智力测验(包含最常被使用的“韦克斯
  • 罗伦提恩海沟罗伦提恩海沟(Laurentian Abyss)为加拿大沿岸在大西洋之一个海沟。她的最深深度为海平面下15305.11呎 或约数 2.9 英里(即4,665 米)深。罗伦提恩海沟充满热液喷口(hydrothermal
  • 亚历山大二世 (苏格兰)亚历山大·麦克威廉(中世纪盖尔语:;现代盖尔语:;现代化简称为亚历山大二世;1198年8月24日– 1249年7月6日)是苏格兰国王(1214年-1249年在位)。他出生在东洛锡安的哈丁敦,是苏格兰国王
  • 娃娃脸 (艺人)肯尼思·布赖恩·埃德蒙(英语:Kenneth Brian Edmonds,1959年4月10日-),艺名娃娃脸(Babyface),是一位集超级金曲词曲作者,唱片制作人,电影监制,歌手,键盘手,吉他手和企业家七种身份的巨星。
  • 彼得·范德尔卡伊彼得·范德尔卡伊(英语:Peter Vanderkaay,1984年2月12日-)是一名美国男子游泳运动员,主攻自由泳。他曾参加2004年、2008年和2012年三届奥运,共收获两枚金牌和两枚铜牌。
  • 世华国际大楼坐标:24°09′00″N 120°39′54″E / 24.15000°N 120.66500°E / 24.15000; 120.66500世华国际大楼(Shr-Hwa International Tower,亦称台中国泰金融大楼)是座落于台湾台中市西