Cerbero Build GStreamer SDK for Android and Windows

GStreamer 是一个基于流水线的多媒体框架,其内部基于GObject,以C语言写成(参见Wikipedia)。GStreamer采用基于plugin和pipeline的体系结构,框架中所有的功能模块都是现成可以插拔的component,可以很方便地安装到任意pipeline上。

一、 GStreamer 环境

通常,在运行基于GStreamer开发的程序前,需要根据相应系统发行版本配置相应的环境,除非有特定需求,都建议直接下载已编译的安装包。最新版本(1.8.0)中支持的系统具体如下:

  • Linux

大部分Linux发行版均已提供GStreamer package,但部分发行版由于法律上原因会对GStreamer plugins进一步切割,因此可能不会包含gst-plugins-bad,
gst-plugins-ugly及gst-libav packages.

不同架构的package都有支持

提供相应版本MSI安装器。SDK共提供三种文件,分别为:

    • Runtime             :运行GStreamer程序必需的文件,可能会随程序一同发布
    • Development    :开发GStreamer程序额外所需的文件
    • Merge Modules:为GStreamer程序部署SDK所需的额外文件

提供相应的框架

提供可被集成入Android NDK的GStreamer Binaries

提供可被集成如XCode的GStreamer Binaries

二、使用Cerbero编译GStreamer SDK

Cerbero是一个服务于开源项目的多平台编译系统,它为不同体系、发行版的平台编译并创建本地化package。

项目通过recipes文件(.recipe)来定义,文件中描述了需要编译的项目信息,如name, version, license, sources和编译方法。同时,还提供了一些用于后续打包的文件。
Packages通过packages文件(.package)来定义,文件中描述了包信息,如name, version, license, maintainer和其他用于打包的内容。一个包内部包含了一系列recipes,安装时将进行展开。
2.1 基础环境配置
Cerbero为各个平台提供了启动引导项,但仍需要一些基础环境来支持bootstrap。
  • Linux
在Linux上,只需要确认所使用的发行版中python版本>= 2.6且以添加python的argparse模块(Python2.7已默认支持)。
  • OSX
在OSX上你需要安装如下软件: Windows中环境配置较为复杂,编译SDK通常也相对耗时最长,但目前Directshow Plugins由于需使用到Directshow base classes仍然需要使用到Microsoft的编译器和SDK完成编译。 切记只能安装2.7版本的,3.x版本并不支持。 虽然只有x86版本,但默认同样支持X64编译。 安装过程中选择“Checkout as-is, commit as-is”选项,其他默认即可。 勾选所有基础选项进行安装。 安装Win7.1 SDK GRMSDKX_EN_DVD.7z(带X),只有该包中存在amd64.msi。 安装GRMWDK_EN_7600_1.ISO。  
Cerbero必须在MinGW shell中运行,当完成上述所有安装后,必须为shell配置python和git的路径:
    • 32-bit windows
echo ‘export PATH="$PATH:/c/Python27:/c/Program Files/Git/bin:/c/MinGW/bin/"‘ > ~/.profile
    • 64-bit windows
echo ‘export PATH="$PATH:/c/Python27:/c/Program Files (x86)/Git/bin:/c/MinGW/bin/"‘ > ~/.profile 注意:如生成的.profile文件与shell不位于同一路径下,请手动拷贝并运行python、git命令行进行确认已生效  

2.2 使用说明
通过已配置好的git将cerbero repo克隆至本地:
git clone git://anongit.freedesktop.org/gstreamer-sdk/cerbero

虽然文件夹中含有setup.py,但cerbero工具使用前并不需要安装。它直接使用./cerbero-uninstalled脚本实现功能。
默认情况下,cerbero会读取$HOME/.cerbero/cerbero.cbc配置文件来生成编译选项,该文件是一个python代码,支持重写或自定义。当该文件不存在时,cerbero会尝试使用默认选项进行编译,通常默认选项在所支持平台上都能顺利运行。
如不希望每次运行时替换cerbero.cbc文件,也可使用-c/-config选项指定.cbc配置文件。
$ ./cerbero-uninstalled -c config/win32.cbc [command]

如需进一步了解cerbero-uninstalled所支持的命令,可使用--help列出。

$ ./cerbero-uninstalled --help

 
2.3 Windows7 编译GStreamer SDK 1.0 for Windows

下列编译步骤中如遇到问题,可先在 问题记录中进行查找,如无对应再寻找其他方法解决。

第一次使用cerbero前,你需要运行bootstrap命令,它会通过packages manager来安装所有编译必需的部分,该操作会消耗较长时间(几个小时甚至更多)。
$ ./cerbero-uninstalled -c config/win32.cbc bootstrap
$ ./cerbero-uninstalled -c config/win64.cbc bootstrap


编译环境成功配置后,进行打包
$ ./cerbero-uninstalled -c config/win32.cbc package gstreamer-1.0-sdk
$ ./cerbero-uninstalled -c config/win64.cbc package gstreamer-1.0-sdk

打包完成后将生成如下文件:


2.4 Ubuntu 14.0.1 编译GStreamer SDK 1.0 for Android
Android SDK只能在Linux主机上使用config/cross-android.cbc进行编译。
下列编译步骤中如遇到问题,可先在 问题记录中进行查找,如无对应再寻找其他方法解决。
  • git及python2.7安装
$ sudo add-apt-repository ppa:fkrull/deadsnakes $ sudo apt-get update $ sudo apt-get install python2.7 $ sudo apt-get install git
  • bootstrap
$ ./cerbero-uninstalled -c config/cross-android.cbc bootstrap
  • package
$ ./cerbero-uninstalled -c config/cross-android.cbc package gstreamer-1.0-sdk 打包完成后将生成如下文件:

三、问题记录
3.1 如遇部分remote包无法下载,可考虑番羽土蔷后重试
    https://github.com/getlantern/lantern
3.2 去除download certificate验证


3.3 补全Win7.1 SDK配置安装

解决办法: 安装Win7.1 SDK GRMSDKX_EN_DVD.7z(带X),只有该包中存在amd64.msi


3.4 Cosole Unicode



The most secure solution is this one: Go to your Registry key HKEY_CURRENT_USER\Software\Microsoft\Command Processor and add String value Autorun = chcp 65001.

http://stackoverflow.com/questions/388490/unicode-characters-in-windows-command-line-how
3.5 Can‘t find ‘page‘ file: Invalid argument

C:\MinGW\msys\1.0\home\sniper\cerbero\sources\windows_x86\clutter-1.8.4\clutter\Makefile

http://mingw.5.n7.nabble.com/windres-unavoidably-reports-syntax-error-at-rc-1-td16052.html




3.6 dbug-glib-0.100
路径问题,将文件夹C:\Users\pandm\Desktop\dbus-glib-0.100\dbus\.libs中下列文件
  • dbus-bash-completion-helper.exe
  • dbus-binding-tool.exe
  • libdbus-glib-1-2.dll
拷贝至:C:\Users\pandm\Desktop\dbus-glib-0.100\dbus目录中

3.7 Unbuntu Android SDK libmad 缺失
    解决方法为去除对libmad项的依赖,具体文件有:
  • cerbero/recipes/gst-plugins-ugly-1.0.recipe
  • cerbero/recipes/gst-plugins-ugly-1.0-static.recipe
  • cerbero/packages/gstreamer-1.0-codecs-restricted.package
时间: 2024-08-02 00:11:43

Cerbero Build GStreamer SDK for Android and Windows的相关文章

《ArcGIS Runtime SDK for Android开发笔记》——ArcGIS Runtime SDK概述

1.前言 ArcGIS Runtime SDK是一整套用于构建原生及跨平台的应用程序开发包, 转载请注明出处:http://www.cnblogs.com/gis-luq/p/4765993.html 2.ArcGIS Runtime SDKs产品家族 相信大部分开发者对ArcGIS Runtime SDKs这个名称并不生疏,它实际上包含了一系列SDKs,用来开发应用于桌面和移动设备的应用程序.在10.2.2之前的版本中,ArcGIS Runtime SDKs包括ArcGIS Runtime S

; AutoHotkey全自动安装环境设置和测试JAVA+Eclipas+Android+JRE+JDK+SDK+ADT+Android模拟器+Android Virtual Device Manager+NDK+Studio+Doc+Help+Android Application Project编程调试windows环境[草稿版] DetectHiddenWindows,On SetTitl

; AutoHotkey全自动安装环境设置和测试JAVA+Eclipas+Android+JRE+JDK+SDK+ADT+Android模拟器+Android Virtual Device Manager+NDK+Studio+Doc+Help+Android Application Project编程调试windows环境[草稿版] DetectHiddenWindows,OnSetTitleMatchMode,2 ; 激活窗口并单击按钮IfWinExistActiveControlClick

《ArcGIS Runtime SDK for Android开发笔记》——问题集:Error:Error: File path too long on Windows, keep below 240 characters

1.前言 在使用Android Studio开发环境时,经常会爆出以下错误,虽然具体细节内容各有不同,但是说明的都是同一个问题,在windows中使用过长的路径,超过240字符. Error:Error: File path too long on Windows, keep below 240 characters : C:\Users\admin\Work\3-Code\4-ArcGIS Android Sample Code\ArcGISAndroidQuartzSample\vector

Windows搭建Eclipse+JDK+SDK的Android --安卓开发入门级

?? 一 相关下载 (1) java JDK下载: 进入该网页: http://java.sun.com/javase/downloads/index.jsp (或者直接点击下载)如下图: 选择 Download JDK 只下载JDK,无需下载jre. (2)eclipse下载 进入该网页: http://www.eclipse.org/downloads/ (或者直接点击下载:BT下载    HTTP下载) 如下图: 我们选择第一个(即eclipse IDE for java EE Devel

Android - 安装 windows 7 安装 Android SDK 的时候出现的问题!(Connection to https://dl-ssl.google.com refused)

Android - 安装 windows 7  安装 Android SDK 的时候出现的问题! 首先看到 Connection to https://dl-ssl.google.com refused 这条信息的时候显而易见是 https://dl-ssl.google.com 被拒绝 如下图: Read timed out 超时, 解决如下: 打开C:\Windows\System32\drivers\etc 目录,找到Hosts文件,用记事本打开,在后面添加 #google_android

【转】Windows搭建Eclipse+JDK+SDK的Android

原文网址:http://blog.csdn.net/sunboy_2050/article/details/6336480 一 相关下载 (1) Java JDK下载: 进入该网页: http://java.sun.com/javase/downloads/index.jsp (或者直接点击下载)如下图: 选择 Download JDK 只下载JDK,无需下载jre. (2)eclipse下载 进入该网页: http://www.eclipse.org/downloads/ (或者直接点击下载:

android手机状态解释,比如android.os.Build.VERSION.SDK

//BOARD 主板 String phoneInfo = "BOARD: " + android.os.Build.BOARD; phoneInfo += ", BOOTLOADER: " + android.os.Build.BOOTLOADER; //BRAND 运营商 phoneInfo += ", BRAND: " + android.os.Build.BRAND; phoneInfo += ", CPU_ABI: "

Ubuntu搭建Eclipse+JDK+SDK的Android (转载)

转自:http://blog.csdn.net/ithomer/article/details/6960989 今晚重装Ubuntu系统,重新安装了一套eclipse+jdk+SDK的Android开发平台 一 安装配置Eclipse环境 1 下载安装包 Eclipse: eclipse官方下载网站, 或直接下载eclipse-jee-indigo-SR1-linux-gtk.tar.gz JDK: jdk官方下载网站,或直接下载jdk-7u1-linux-i586 .tar.gz SDK: s

Android基础入门教程——1.2.1 使用Eclipse + ADT + SDK开发Android APP

Android基础入门教程--1.2.1 使用Eclipse + ADT + SDK开发Android APP 标签(空格分隔): Android基础入门教程 1.前言 这里我们有两条路可以选,直接使用封装好的用于开发Android的ADT Bundle,或者自己进行配置 因为谷歌已经放弃了ADT的更新,官网上也取消的下载链接,这里提供谷歌放弃更新前最新版本的 ADT Bundle供大家下载! 2.直接使用打包好的Eclipse 32位版:adt-bundle-windows-x86-20140