GStreamer App开发 (一)

来源:互联网 发布:起诉淘宝网胜诉案例 编辑:程序博客网 时间:2024/04/29 01:31

GStreamer 是 GNOME 桌面环境下用来构建流媒体应用的多媒体框架,其目标是要简化音/视频应用程序的开发,目前已经能够被用来处理像 MP3、Ogg、MPEG1MPEG2、AVI、Quicktime 等多种格式的多媒体数据。


  • GStreamer根据视频管道的理念来,参照了DirectShow的设计思想,了解DirectShow的同鞋看GStreamer时不会陌生。
  • GStreamer目前已被移植到很多的平台上,并且GStreamer还可以嫁接到其它的多媒体框架上,达到共用现有组件的目的,如类Unix平台上的OpenMax,Windows平台上的DirectShow,以及Mac OS X上的QuickTime。
  • GStreamer基于Glib2.0的对象模型,采用了面向对象设计和继承的做法来实现,所以GStreamer内部实现中,会涉及glib main loop, glib signals & callbacks, glib memory management,以及GObject的实例,属性,引用/解引用 等知识,开发者在深入学习GStrreamer前最好对GObject & GLib开发知识有所了解,可先看一下GObject的对象系统,对阅读GStreamer源码有很大帮助,http://www.ibm.com/developerworks/cn/linux/l-gobject/index.html .
  • 精简过的核心库小于500KB,且只有大约65000行代码。
  • 多线程设计。
  • GStreamer为 app / plugin 开发提供了简单稳定的API。
  • GStreamer为开发者提供了gst-launch这个命令行工具来帮助开发者测试验证。
  • 完成的文档和开发指南。
  • 针对每个模块都有大量测试代码和样例程式。
  • GStreamer还绑定了其它一些开发语言,像Python,Perl,C++,Java等。


GStreamer更多的特性,如用Clock来使用a/v同步,autopluging机制,动态加载机制,以及GStreamer Base插件集里的playbin2 / uridecodebin / decodebin2等成熟的组件的使用,pipeline的维护, ......