本文编写时基于
GStreamer v1.11.0版
,文中提及所有目录结构、文件、模块等信息也均以v1.11.0为标准。后续如GStreamer官方SDK有做较大变动,请自行适配。
1. GStreamer Introduction
GStreamer是一个基于流水线的多媒体框架,其内部基于GObject,以C语言写成(参见Wikipedia)。GStreamer采用基于plugin和pipeline的体系机构,框架中所有的功能模块都是可插拔的plugins,可以很方便地安装到任意pipeline上。
1.1 GStreamer 环境
通常,在运行基于GStreamer开发的程序前,需要配置开发平台所需环境,建议直接下载已编译的安装包,实在有特定需求(如裁剪、特定库支持)时,再考虑手动编译SDK。
GStreamer最新版本(1.11.0)中支持的系统具体如下:
- Linux
大部分Linux发行版均已提供GStreamer package,但部分发行版由于法律原因等会对GStreamer plugins进一步切割,因此可能不会包含gst-plugins-bad、gst-plugins-ugly及gst-libav pacakges - OpenBSD
不同架构的package都有支持 Windows
提供相应版本MSI安装器,SDK共提供三种文件,分别为:- Runtime:运行GStreamer程序必需的文件,可能会随程序一同发布
- Development:开发GStreamer程序额外所需的文件
- Merge Modules:为GStreamer程序部署SDK所需的额外文件
- Mac OS X
提供相应的框架 - Android
提供可被集成入Android NDK的GStreamer Binaries - IOS
提供可被集成入XCode的GStreamer Binaries - Source
1.2 GStreamer内部模块
依据plugins功能及实现算法性能的不同,GStreamer将其分为如下模块:
- gstreamer
- gstreamer-plugins-base
- gstreamer-plugins-good
- gstreamer-plugins-ugly
- gstreamer-plugins-bad
- gst-libav
- …其他模块
2. Cerbero编译系统
Cerbero是一个服务于开源项目的多平台编译系统,它为不同体系、发行版的平台编译并创建本地化package。
2.1 Cerbero基础环境搭建
虽然Cerbero已经为各个平台提供了bootstrap(启动引导项),但仍需要一些基础环境来支持bootstrap。
由于Cerbero使用Python2.x(>= 2.6)开发编译脚本,因此不论是什么平台都必须安装Python,本教程中安装版本为v2.7。除此之外,各平台所需依赖项各有不同。具体如下:
2.1.1 OSX
在OSX上你需要安装如下软件:
- XCode
- CMake : Download
Note:
此次实际编译并未涉及OSX平台,因此IOS及OSX相关部分编译并未测试,如需编译SDK,可参照教程中通用部分或根据github自行完成。
2.1.2 Linux(以Ubuntu为例)
测试环境为Ubuntu 14.04,其他版本或发行版仅供参考。需确认如下软件是否安装:
* Git
如当前环境中没有git工具,请先手动安装完成。
安装完成后,配置git信息。
git config --global user.email "xxxx@xxx.com"
git config --global user.name "xxxx"
- Python 2.x
确认所使用的发行版中python版本>= 2.6且已添加python的argparse模块(Python2.7已默认支持)。
如出现正常安装步骤报错时,请尝试先手动
sudo apt-get update && upgrade
完善系统后重试。