什么是Gstreamer
- Gstreamer 是一个流媒体框架 可以用来构建流媒体播放器
- 官方地址 https://gstreamer.freedesktop.org/
如何用cerbero 构建 Gstreamer
cerbero 是被用来给开源项目 多平台编译系统,最终可以编译成我们所需要的package 或者SDK
在ubuntu 编译Gstreamer 会自动安装需要的环境配置
建议: 不能根据官方文档,只能作为参考,已经很落后,所以多google 调试
不介绍官方文档,直接操作吧
这里我整理了在ubuntu下 成功编译的Gstreamer 代码和sdk,用来开发安卓应用
下载 cerbero
创建一个目录 clone cerbero
git clone git://anongit.freedesktop.org/gstreamer/cerbero
使用cerbero 构建 Gstreamer
- 进入cerbero 目录
执行两个命令
- 第一个 配置 编译锁需要的环境 安装很多包
./cerbero-uninstalled -c config/cross-android-arm64.cbc bootstrap
cross-android-arm64.cbc 在config 目录下,可以替换成手机对应架构的配置
- 第二个 编译 (一遍下载对应的压缩包,解压、然后编译)
./cerbero-uninstalled -c config/cross-android-arm64.cbc package gstreamer-1.0
最后编译成一个二进制文件包
以上过程中出现问题都需要根据终端提示操作
最后在 ~/cerbero 目录下 可以看见生成的source(源码路径)、 ndk、dist(生成依赖的包)、logs(编译的log目录)等
FAQ
电脑配置
因为在整个过程中,很慢,还容易获取压缩文件失败(网速也有关系),我第一次用配置比较低的电脑,一共花费了2天时间 —-捂脸
后来高了一台超高配置电脑 基本上4~6个小时编译ok
电脑配置:内存 7.8 GiB 处理器 Intel® Core™ i7-7700K CPU @ 4.20GHz × 8 GPU Gallium 0.4 on llvmpipe (LLVM 3.6, 256 bits) 固态硬盘 227.7 GB过程中经常编译报错
列举遇到的问题
下载 http://dl.google.com/android/repository/android-ndk-r16-linux-x86_64.zip
提供一个可以翻墙的网络解压文件失败,这个时候就需要自己在网上下载,替换,重新执行