GStreamer是一个基于流水线的多媒体框架,基于GObject(GLib),以C语言写成。在该媒体处理框架将多媒体数据流处理划分成各种能够自由组合重用的节点,然后将节点组合成串行处理的媒体处理链。

Gstreamer通过把若干elements链接在一起构成pipeline实现对媒体内容的处理,element通过plug-in的方式提供。bin是一种特殊的element,是由多个其它elements组成的。

element之间通过pad进行数据通讯,一个element的源pad可以链接到另一个element的sink pad。pad之间的数据类型通过capability来协商。pipeline有多种状态,当处于playing状态的时候,数据buffer就从源pad向sink pad传送。

Gstreamer的核心实现了对plug-in的注册和加载等功能,plug-in是以动态库的形式存在的。当需要某个element的时候,Gstreamer就动态的加载对应的动态库。可以通过编写plug-in方式对gstreamer的功能进行扩展,包括编码方式,封装格式等各种功能。

与GStreamer(Linux)类似的框架有Direct Show(Windows),QuickTime(Mac)。

参考链接:

(1)http://blog.csdn.net/shallon_luo/article/details/4227212(介绍+命令行测试)

(2)http://zh.wikipedia.org/wiki/GStreamer(介绍)

(3)http://www.cnblogs.com/phinecos/archive/2009/06/07/1498166.html(程序实例)

(4)http://zhongcong386.blog.163.com/blog/static/1347278042012112083022845/(相关函数解析)

(5)http://blog.sina.com.cn/s/blog_6a4c492f0100q8wu.html(框架)

posted on 2013-03-10 13:23  guoxiang  阅读(525)  评论(0编辑  收藏  举报