background image

序言

本章将从技术的角度来描述本手册的总体结构。

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 的应用程序。

对于想学习

"如何编写插件"的朋友们我们建议你

去参考

<<

   插件编写指南

 

 (Plugin

 

    Writers

 

    Guide)>>

 

 

1.3. 预备知识

为了更好的理解本手册的内容

, 你应该具备基本的 C 语言基础。由于 GStreamer 一直采用 GObject

编程模式

, 所以本手册也假定你已经理解了

GObject  

的基本概念。你可能还需要一些

GTK+和 GDK

的知

, 这方面的知识你可以参照 Eric Harlow 的书 Developing Linux Applications with GTK+ and GDK。

另外

, 当你读完本手册后, 请读一下

GStreamer Plugin Writer's Guide

 当然,你还需要关注一

它的

 

     GStreamer

 

     文档

 

 

1.4. 本手册结构

为了帮助你更好的学习本手册

, 我们将本手册分为几个大的部分, 每一部分阐述了一个在 GStreamer

应用程序开发过程中特殊而又有用的话题。如下所示

:

Part

 

    I     ---

      GStreamer

 

    应用程序开发手册

 

    (0.10.9.1)

 

 

你一个关于

GStreamer 总的概况叙述。

Part

 

    II

      ---

      GStreamer

 

    应用程序开发手册

 

    (0.10.9.1)

 

 

GStreamer 应用程序开发的基本概念。本章结

束后

, 你将可以使用 GStreamer 来开发你自己的音频播放器。

Part

 

    III

      ---

      GStreamer

 

    应用程序开发手册

 

    (0.10.9.1)

 

 

我们将继续讨论一些有关

GStreamer 深层次的主

, 这些主题告诉了我们为什么 GStreamer 能在众多的竞争者当中脱颖而出。我们将使用动态参数和动

态接口来讨论应用程序中管道的交讯问题

, 我们还将讨论线程同步、时钟同步、以及其他同步问题。这些

问题的讨论不仅向你讲述如何使用

GStreamer 的 API, 而且还将告诉你一些基于 GStreamer 应用程序开

发过程中所经常遇到的问题的解决办法

, 通过这些知识的学习使你更加深刻的理解 GStreamer 的基本概

念。

Part

 

    IV

      ---

      GStreamer

 

    应用程序开发手册

 

    (0.10.9.1)

 

 

我们将进

GStreamer 的高级编程领域。你不需要

2