资源描述:
《GStreamer应用程序开发手册(PDF58页).pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、I.介绍GStreamer是一个非常强大而且通用的流媒体应用程序框架。GStreamer所具备的很多优点来源于其框架的模块化:GStreamer能够无缝的合并新的插件。但是,由于追求模块化和高效率,使得GStreamer在整个框架上变的复杂,也同时因为复杂度的提高,使得开发一个新的应用程序显得不是那么的简单。这个指南试图帮助你了解GStreamer的框架(version0.10.3.1)以方便你在GStreamer框架的基础上做开发。第一章节将重点关注如何开发一个简单的音频播放器,通过对整个过程的讲解,力图使你能够理解有关GStreamer的一些概念。在之后的章节中,我们将讨论一
2、些关于媒体播放(playback)控制的高级问题,这些问题包括了录音、录象和编辑等等。目录1.序言1.1.GStreamer是什么?1.2.谁需要读这个手册?1.3.预备知识1.4.本手册结构2.动机与目标2.1.当前问题2.1.1.大量的代码复制2.1.2.“一个目标”媒体播放器/媒体库2.1.3.没有统一的插件管理机制2.1.4.拙劣的用户感2.1.5.网络透明度的规定2.1.6.与Windows™的产品还存在差距2.2.设计目标2.2.1.结构清晰且威力强大2.2.2.面向对象的编程思想2.2.3.灵活的可扩展性能2.2.4.支持插件以二进制形式发布2.2.5.高性能2.2
3、.6.核心库与插件(core/plugins)分离2.2.7.为多媒体数字信号编解码实验提供一个框架3.基础概念介绍3.1.元件(Elements)3.2.箱柜(Bins)和管道(pipelines)3.3.衬垫(Pads)1第1章.序言本章将从技术的角度来描述本手册的总体结构。1.1.GStreamer是什么?GStreamer是一个创建流媒体应用程序的框架。其基本设计思想来自于俄勒冈(Oregon)研究生学院有关视频管道的创意,同时也借鉴了DirectShow的设计思想。GStreamer的程序开发框架使得编写任意类型的流媒体应用程序成为了可能。在编写处理音频、视频或者两者皆
4、有的应用程序时,GStreamer可以让你的工作变得简单。GStreamer并不受限于音频和视频处理,它能够处理任意类型的数据流。管道设计的方法对于实际应用的滤波器几乎没有负荷,它甚至可以用来设计出对延时有很高要求的高端音频应用程序。GStreamer最显著的用途是在构建一个播放器上。GStreamer已经支持很多格式的文件了,包括:MP3、Ogg/Vorbis、MPEG-1/2、AVI、Quicktime、mod等等。从这个角度看,GStreamer更象是一个播放器。但是它主要的优点却是在于:它的可插入组件能够很方便的接入到任意的管道当中。这个优点使得利用GStreamer编写
5、一个万能的可编辑音视频应用程序成为可能。GStreamer框架是基于插件的,有些插件中提供了各种各样的多媒体数字信号编解码器,也有些提供了其他的功能。所有的插件都能够被链接到任意的已经定义了的数据流管道中。GStreamer的管道能够被GUI编辑器编辑,能够以XML文件来保存。这样的设计使得管道程序库的消耗变得非常少。GStreamer核心库函数是一个处理插件、数据流和媒体操作的框架。GStreamer核心库还提供了一个API,这个API是开放给程序员使用的---当程序员需要使用其他的插件来编写他所需要的应用程序的时候可以使用它。1.2.谁需要读这个手册?本手册是从一个程序开发人
6、员的角度来描述GStreamer的:它叙述了如何利用GStreamer的开发库以及工具来编写一个基于GStreamer的应用程序。对于想学习"如何编写插件"的朋友们,我们建议你去参考<<插件编写指南(PluginWritersGuide)>>。1.3.预备知识为了更好的理解本手册的内容,你应该具备基本的C语言基础。由于GStreamer一直采用GObject编程模式,所以本手册也假定你已经理解了GObject的基本概念。你可能还需要一些GTK+和GDK的知识,这方面的知识你可以参照EricHarlow的书DevelopingLinuxApplicationswithGTK+and
7、GDK。另外,当你读完本手册后,请读一下GStreamerPluginWriter'sGuide。当然,你还需要关注一下其它的GStreamer文档。1.4.本手册结构为了帮助你更好的学习本手册,我们将本手册分为几个大的部分,每一部分阐述了一个在GStreamer应用程序开发过程中特殊而又有用的话题。如下所示:PartI---GStreamer应用程序开发手册(0.10.9.1)给你一个关于GStreamer总的概况叙述。PartII---GStreamer应用程序开发手册(0.