您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > GStreamer中文开发手册
构建gstreamer开发环境GStreamerisapipelinebasedmultimediaframeworkwrittenintheCprogramminglanguagewiththetypesystembasedonGObject.GStreamerallowsyoutocreateavarietyofmedia-handlingcomponents,includingsimpleaudioplayback,audioandvideoplayback,recording,streaming,andediting.Thepipelinedesignservesasabasetocreatemanytypesofmultimediaapplicationssuchasvideoeditors,streamingmediabroadcasters,andmediaplayers.所有操作的前提是你已经配置好了GCC开发环境,gstreamer是一个开源多媒体框架,可以很容易的开发多媒体程序.在UBUNTU中构建gstreamer开发环境非常简单,使用下面命令安装gstreamer这样就可以了.$sudoapt-getinstallgstreamer0.10-toolsgstreamer0.10-xgstreamer0.10-plugins-base\streamer0.10-plugins-goodgstreamer0.10-plugins-uglygstreamer0.10-plugins-bad\gstreamer0.10-ffmpeggstreamer0.10-schroedingergstreamer0.10-pulseaudio\gstreamer0.10-alsa只是编译是要注意下,需要借助pkg-config下面是段测试代码://///////////////////////mu.c///////////////////////////////#includegst/gst.hintmain(intargc,char*argv[]){constgchar*nano_str;guintmajor,minor,micro,nano;gst_init(&argc,&argv);gst_version(&major,&minor,µ,&nano);if(nano==1)nano_str=(CVS);elseif(nano==2)nano_str=(Prerelease);elsenano_str=;printf(ThisprogramislinkedagainstGStreamer%d.%d.%d%s\n,major,minor,micro,nano_str);return0;}编译命令:l@l-desktop:~/workspace/gstmu$gcc-Wallmu.c`pkg-configgstreamer-0.10--cflags--libs`l@l-desktop:~/workspace/gstmu$lsa.outmu.cl@l-desktop:~/workspace/gstmu$./a.outThisprogramislinkedagainstGStreamer0.10.21成功则输出:ThisprogramislinkedagainstGStreamer0.10.21这里是ApplicationDevelopmentManual从这里可以得到更多资料Wehaveawebsiteat://gstreamer.freedesktop.org/data/doc/gstreamer/head/faq/html/Thereismoredocumentation;goto介绍GStreamer是一个非常强大而且通用的流媒体应用程序框架。GStreamer所具备的很多优点来源于其框架的模块化:GStreamer能够无缝的合并新的插件。但是,由于追求模块化和高效率,使得GStreamer在整个框架上变的复杂,也同时因为复杂度的提高,使得开发一个新的应用程序显得不是那么的简单。这个指南试图帮助你了解GStreamer的框架(version0.10.3.1)以方便你在GStreamer框架的基础上做开发。第一章节将重点关注如何开发一个简单的音频播放器,通过对整个过程的讲解,力图使你能够理解有关GStreamer的一些概念。在之后的章节中,我们将讨论一些关于媒体播放(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.6.核心库与插件(core/plugins)分离2.2.7.为多媒体数字信号编解码实验提供一个框架3.基础概念介绍3.1.元件(Elements)3.2.箱柜(Bins)和管道(pipelines)3.3.衬垫(Pads)3第1章.序言本章将从技术的角度来描述本手册的总体结构。1.1.GStreamer是什么?GStreamer是一个创建流媒体应用程序的框架。其基本设计思想来自于俄勒冈(Oregon)研究生学院有关视频管道的创意,同时也借鉴了DirectShow的设计思想。GStreamer的程序开发框架使得编写任意类型的流媒体应用程序成为了可能。在编写处理音频、视频或者两者皆有的应用程序时,GStreamer可以让你的工作变得简单。GStreamer并不受限于音频和视频处理,它能够处理任意类型的数据流。管道设计的方法对于实际应用的滤波器几乎没有负荷,它甚至可以用来设计出对延时有很高要求的高端音频应用程序。GStreamer最显著的用途是在构建一个播放器上。GStreamer已经支持很多格式的文件了,包括:MP3、Ogg/Vorbis、MPEG-1/2、AVI、Quicktime、mod等等。从这个角度看,GStreamer更象是一个播放器。但是它主要的优点却是在于:它的可插入组件能够很方便的接入到任意的管道当中。这个优点使得利用GStreamer编写一个万能的可编辑音视频应用程序成为可能。GStreamer框架是基于插件的,有些插件中提供了各种各样的多媒体数字信号编解码器,也有些提供了其他的功能。所有的插件都能够被链接到任意的已经定义了的数据流管道中。GStreamer的管道能够被GUI编辑器编辑,能够以XML文件来保存。这样的设计使得管道程序库的消耗变得非常少。GStreamer核心库函数是一个处理插件、数据流和媒体操作的框架。GStreamer核心库还提供了一个API,这个API是开放给程序员使用的---当程序员需要使用其他的插件来编写他所需要的应用程序的时候可以使用它。1.2.谁需要读这个手册?本手册是从一个程序开发人员的角度来描述GStreamer的:它叙述了如何利用GStreamer的开发库以及工具来编写一个基于GStreamer的应用程序。对于想学习如何编写插件的朋友们,我们建议你去参考插件编写指南(PluginWritersGuide)。1.3.预备知识为了更好的理解本手册的内容,你应该具备基本的C语言基础。由于GStreamer一直采用GObject编程模式,所以本手册也假定你已经理解了GObject的基本概念。你可能还需要一些GTK+和GDK的知识,这方面的知识你可以参照EricHarlow的书DevelopingLinuxApplicationswithGTK+andGDK。另外,当你读完本手册后,请读一下GStreamerPluginWriter'sGuide。当然,你还需要关注一下其它的GStreamer文档。1.4.本手册结构为了帮助你更好的学习本手册,我们将本手册分为几个大的部分,每一部分阐述了一个在GStreamer应用程序开发过程中特殊而又有用的话题。如下所示:PartI---GStreamer应用程序开发手册(0.10.9.1)给你一个关于GStreamer总的概况叙述。PartII---GStreamer应用程序开发手册(0.10.9.1)阐述GStreamer应用程序开发的基本概念。本章结束后,你将可以使用GStreamer来开发你自己的音频播放器。PartIII---GStreamer应用程序开发手册(0.10.9.1)我们将继续讨论一些有关GStreamer深层次的主题,这些主题告诉了我们为什么GStreamer能在众多的竞争者当中脱颖而出。我们将使用动态参数和动态接口来讨论应用程序中管道的交讯问题,我们还将讨论线程同步、时钟同步、以及其他同步问题。这些问题的讨论不仅向你讲述如何使用GStreamer的API,而且还将告诉你一些基于GStreamer应用程序开发过程中所经常遇到的问题的解决办法,通过这些知识的学习使你更加深刻的理解GStreamer的基本概念。PartIV---GStreamer应用程序开发手册(0.10.9.1)我们将进入GStreamer的高级编程领域。你不需要对GStreamer所有的细节都了解清楚,但是基本的GStreamer概念仍然是需要的。我们将讨论XML、playbin、autopluggers等话题。PartV---GStreamer应用程序开发手册(0.10.9.1)你将学习到一些有关GStreamer与GNOME、KDE、OS、X或者4Windows集成的知识,当然你还将学习到一些有关调试和如何处理常见问题的方法。通过这些知识的学习,将更好的方便你使用GStreamer5第2章.动机和目标从历史的角度来看,Linux在多媒体方面已经远远落后于其他的操作系统。Microsoft'sWindows和Apple'sMacOS它们对多媒体设备、多媒体创作、播放和实时处理等方面已经有了很好的支持。另一方面,Linux对多媒体应用的综合贡献比较少,这也使得Linux很难在专业级别的软件上与MSWindows和MacOS去竞争。GStreamer正是为解决Linux多媒体方面当前问题而设计的。2.1.当前的问题我们描述了当今Linux平台下媒体处理的一些典型问题。2.1.1.大量的代码复制对于那些想要播放一个声音文件的Linux用户来说,他们必须搜索各种声音播放器来播放不同格式文件,而在这些播放器中,大部分的都一遍又一遍地重复使用了相同的代码。对于那些想在应用程序中嵌入视频剪辑的Linux开发人员来说,他们必须要用粗略的hacks来运行外部的视频播放器,因为没有一套可用的库提供给开发人员来创建可定制的播放器。2.1.2.“一个目标”媒体播放器/媒体库典型的
本文标题:GStreamer中文开发手册
链接地址:https://www.777doc.com/doc-5937052 .html