序言
GStreamer是一个非常强大和通用的框架,用于创建流媒体应用程序。GStreamer框架的许多优点都来自于它的模块化:GStreamer可以无缝地合并新的插件模块。但是,由于模块化和强大的功能往往是以更高的复杂性为代价的,因此编写新应用程序并不总是那么容易。
本指南旨在帮助您了解GStreamer框架,以便您可以基于它开发应用程序。第一章的重点是开发一个简单的音频播放器,主要帮助你理解GStreamer的概念。后续章节将讨论与媒体播放相关的更高级主题,以及其他形式的媒体处理(捕获、编辑等)。
介绍
谁应该读这个手册
本书从应用开发者的角度介绍GStreamer。它描述了如何使用GStreamer库和工具编写GStreamer应用程序。关于编写插件的解释,我们建议阅读插件作者指南(Plugin Writer’s Guide)。
还可以查看GStreamer网站上的其他文档。
预先阅读
为了理解这本手册,你需要对C语言有一个基本的了解。
由于GStreamer遵循GObject编程模型,本指南还假设您了解GObject和glib编程的基础知识。特别是,
- GObject instantiation
- GObject properties (set/get)
- GObject casting
- GObject referecing/dereferencing
- glib memory management
- glib signals and callbacks
- glib main loop
手册结构
为了帮助您浏览本指南,它分为几个大的部分。每个部分都讨论了关于GStreamer应用程序开发的一个特定的广泛主题。本指南的各个部分按以下顺序排列:
- About GStreamer:
关于GStreamer给你一个GStreamer的概述,它的设计原则和基础。 - Building an Application :
构建应用程序涵盖了GStreamer应用程序编程的基础知识。在这部分的最后,你应该能够使用GStreamer构建自己的音频播放器 - Advanced GStreamer concepts
在高级GStreamer概念中,我们将继续介绍使GStreamer从竞争对手中脱颖而出的高级主题。我们将讨论使用动态参数和接口的应用程序-管道交互,我们将讨论线程和线程管道,调度和时钟(以及同步)。这些主题中的大多数都不仅仅是为了向你介绍它们的API,而是主要为了让你更深入地了解如何使用GStreamer解决应用程序编程问题并理解它们的概念。 - Higher-level interfaces for GStreamer applications :
接下来,在GStreamer应用程序的高级接口中,我们将介绍GStreamer的高级编程api。要理解这一点,您并不完全需要知道前面部分中的所有细节,但您仍然需要了解基本的GStreamer概念。我们将讨论playbin和autopluggers。 - Appendices
最后,在附录中,您将找到一些关于集成GNOME、KDE、OS X或Windows的随机信息,一些调试帮助和改进和简化GStreamer编程的一般提示。