资源描述:
《gstreamer应用程序开发手册0.10.3.1》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、GSTREAMERGstreamer应用开发手册(version0.10.3.1)Gstreamer.cn(已关闭)2007/12/4GStreamerisalibraryforconstructinggraphsofmedia-handlingcomponents.TheapplicationsitsupportsrangefromsimpleOgg/Vorbisplayback,audio/videostreamingtocomplexaudio(mixing)andvideo(non-lineare
2、diting)processing.2I.介绍1第1章.序言3第2章.动机和目标5第3章.基础概念介绍8II.构建一个应用程序10第4章.初始化GStreamer12第5章.元件(Element)14第6章.箱柜(Bins)20第7章.总线(Bus)22第8章.衬垫(Pads)及其功能25第9章.缓冲区(Buffers)和事件(Events)32第10章.你的第一个应用程序33III. GStreamer高阶概念36第11章.位置跟踪(Tracking)与位置偏移(Seeking)37第12章.元数据39
3、第13章.接口39第14章.GStreamer中的时钟41第15章.动态控制参数42第16章.线程43第17章.自动加载(Autoplugging)44第18章.管道控制50IV.高级接口在GStreamer中的应用54第19章.组件(Components)55第20章.XML在GStreamer中的应用582I.介绍GStreamer 是一个非常强大而且通用的流媒体应用程序框架。 GStreamer所具备的很多优点来源于其框架的模块化: GStreamer能够无缝的合并新的插件。但是,由于追求模块化和高
4、效率,使得GStreamer在整个框架上变的复杂,也同时因为复杂度的提高,使得开发一个新的应用程序显得不是那么的简单。这个指南试图帮助你了解GStreamer的框架(version0.10.3.1)以方便你在GStreamer框架的基础上做开发。第一章节将重点关注如何开发一个简单的音频播放器,通过对整个过程的讲解,力图使你能够理解有关GStreamer的一些概念。在之后的章节中,我们将讨论一些关于媒体播放(playback)控制的高级问题,这些问题包括了录音、录象和编辑等等。目录第1章.序言31.1. G
5、Streamer是什么?31.2.谁需要读这个手册?31.3.预备知识31.4.本手册结构3第2章.动机和目标52.1. 当前的问题52.2. 设计目标6第3章.基础概念介绍83.1.元件(Elements)83.2.箱柜(Bins)和管道(pipelines)83.3.衬垫(Pads)82第1章.序言本章将从技术的角度来描述本手册的总体结构。1.1. GStreamer是什么?GStreamer是一个创建流媒体应用程序的框架。其基本设计思想来自于俄勒冈(Oregon)研究生学院有关视频管道的创意,同时也
6、借鉴了DirectShow的设计思想。GStreamer的程序开发框架使得编写任意类型的流媒体应用程序成为了可能。在编写处理音频、视频或者两者皆有的应用程序时, GStreamer可以让你的工作变得简单。GStreamer并不受限于音频和视频处理,它能够处理任意类型的数据流。管道设计的方法对于实际应用的滤波器几乎没有负荷,它甚至可以用来设计出对延时有很高要求的高端音频应用程序。GStreamer最显著的用途是在构建一个播放器上。GStreamer已经支持很多格式的文件了,包括:MP3、Ogg/Vorbis
7、、MPEG-1/2、AVI、Quicktime、mod等等。从这个角度看,GStreamer更象是一个播放器。但是它主要的优点却是在于:它的可插入组件能够很方便的接入到任意的管道当中。这个优点使得利用GStreamer编写一个万能的可编辑音视频应用程序成为可能。GStreamer框架是基于插件的,有些插件中提供了各种各样的多媒体数字信号编解码器,也有些提供了其他的功能。所有的插件都能够被链接到任意的已经定义了的数据流管道中。GStreamer的管道能够被GUI编辑器编辑,能够以XML文件来保存。这样的设计
8、使得管道程序库的消耗变得非常少。GStreamer核心库函数是一个处理插件、数据流和媒体操作的框架。 GStreamer核心库还提供了一个API,这个API是开放给程序员使用的---当程序员需要使用其他的插件来编写他所需要的应用程序的时候可以使用它。1.2.谁需要读这个手册?本手册是从一个程序开发人员的角度来描述GStreamer的:它叙述了如何利用GStreamer的开发库以及工具来编写一个基于GStreamer的应用程序。