基于gst-uninstalled进行GStreamer开发
2017-02-28 11:33
204 查看
GStreamer官方提供了一种基于非安装版本的GStreamer进行开发的方式,可以在不影响当前linux系统中安装版本的情况下,方便的基于最新版本的源码进行修改,调试和开发。
配置该环境的方法也很简单:
首先,下载安装GStreamer core及plugins依赖的包,以ubuntu为例:
这样会下载安装很多的包,也可以根据自己的开发需求选择性的下载。或者可以先跳过这一步,在后面编译GStreamer代码的时候,针对特定plugin的依赖进行下载。(使用autogen.sh配置编译时,会提示每个plugin依赖的包)
然后,下载并执行create-uninstalled-setup.sh脚本(clone代码需要等待一段时间):
执行脚本自动会自动创建相关目录并使用git下载最新的GStreamer源码,完成之后,目录结构如下:
可以看出core和plugins的源码已经下载完成,并且输出信息已经给出了后续的操作方法:
按照提示,执行gst-master配置gst-uninstalled的环境
检测环境配置:
可以发现 GST_PLUGIN_PATH等环境变量已经被设置到/home/user/gst/master/…相关目录下了,这样使用GStreamer命令行工具,以及代码执行时使用到的plugins都是在该路径下的,而不是使用系统中安装的版本了。
接下来,可以以此进入各模块源代码目录进行编译了。比如编译GStreamer core代码:
如果编译过程中提示缺少依赖包,根据提示下载即可。编译完成后,可以看到GStreamer相关命令工具已经开始使用刚才编译的版本了。
使用该方法时,每次进入终端都需要重新执行一次gst-master脚本工具,取消环境配置是执行exit命令即可。
参考:
https://gstreamer.freedesktop.org/documentation/frequently-asked-questions/developing.html#how-do-i-develop-against-an-uninstalled-gstreamer-copy-
https://arunraghavan.net/2014/07/quick-start-guide-to-gst-uninstalled-1-x/
配置该环境的方法也很简单:
首先,下载安装GStreamer core及plugins依赖的包,以ubuntu为例:
$ sudo apt-get build-dep gstreamer1.0-plugins-{base,good,bad,ugly}
这样会下载安装很多的包,也可以根据自己的开发需求选择性的下载。或者可以先跳过这一步,在后面编译GStreamer代码的时候,针对特定plugin的依赖进行下载。(使用autogen.sh配置编译时,会提示每个plugin依赖的包)
然后,下载并执行create-uninstalled-setup.sh脚本(clone代码需要等待一段时间):
$ cd $ curl https://cgit.freedesktop.org/gstreamer/gstreamer/plain/scripts/create-uninstalled-setup.sh | sh
执行脚本自动会自动创建相关目录并使用git下载最新的GStreamer源码,完成之后,目录结构如下:
$ cd /home/user/gst $ tree -L 2 . ├── gst-master -> master/gstreamer/scripts/gst-uninstalled └── master ├── gst-libav ├── gst-plugins-bad ├── gst-plugins-base ├── gst-plugins-good ├── gst-plugins-ugly ├── gstreamer └── prefix
可以看出core和plugins的源码已经下载完成,并且输出信息已经给出了后续的操作方法:
=========================================================================================== Done. Created new GStreamer uninstalled environment for branch master in /home/user/gst To enter the uninstalled environment do: cd /home/user/gst; ./gst-master To leave the uninstalled environment do: exit To check the uninstalled environment do: printenv | grep GST (loads of output = you're in the uninstalled environment) =========================================================================================== Now compile all GStreamer modules one by one by first switching into the uninstalled environment and then doing: cd <MODULE>; ./autogen.sh; make First gstreamer, then gst-plugins-base, then the other modules. You do not need to do 'make install' =========================================================================================== If your system GLib is too old, you can install a newer version into --prefix=/home/user/gst/master/prefix and it should be picked up by autogen.sh/configure ===========================================================================================
按照提示,执行gst-master配置gst-uninstalled的环境
$ cd /home/user/gst $ ./gst-master
检测环境配置:
$ printenv | grep GST
可以发现 GST_PLUGIN_PATH等环境变量已经被设置到/home/user/gst/master/…相关目录下了,这样使用GStreamer命令行工具,以及代码执行时使用到的plugins都是在该路径下的,而不是使用系统中安装的版本了。
接下来,可以以此进入各模块源代码目录进行编译了。比如编译GStreamer core代码:
$ cd /home/user/gst/master/gstreamer/ $ ./autogen.sh $ make
如果编译过程中提示缺少依赖包,根据提示下载即可。编译完成后,可以看到GStreamer相关命令工具已经开始使用刚才编译的版本了。
$ which gst-launch-1.0 /home/user/gst/master/gstreamer/tools/gst-launch-1.0
使用该方法时,每次进入终端都需要重新执行一次gst-master脚本工具,取消环境配置是执行exit命令即可。
参考:
https://gstreamer.freedesktop.org/documentation/frequently-asked-questions/developing.html#how-do-i-develop-against-an-uninstalled-gstreamer-copy-
https://arunraghavan.net/2014/07/quick-start-guide-to-gst-uninstalled-1-x/
相关文章推荐
- 【视频开发】Gstreamer框架中使用gst-launch进行流媒体播放
- 使用C#进行基于PI的开发(二)--常用对象的学习
- 基于Mock对象和AOP技术进行Struts应用程序单元测试开发
- 使用FastReport进行基于富盛SBO程序开发框架的报表开发 推荐
- 如何使用VS2010来进行基于MFC4.2的开发
- 基于Spring+Hibernate+Eclipse进行敏捷Java开发(转)
- 使用Lomboz来进行基于Struts的开发
- 基于Visual Studio 2010 进行敏捷/Scrum模式开发
- 使用NetBeans IDE进行基于组件的Web开发
- 用JDOGenie进行基于JDO的项目开发向导
- 汽车电子软件开发中的几个问题(2):基于OSEK/VDX操作系统进行汽车电子软件开发
- 基于Stripes框架进行Java Web开发
- 用Java进行基于浏览器的桌面应用程序开发(Browser-based desktop application development with java)
- ubuntu下进行基于mysql的jdbc的开发
- 轻松进行Java Portlets —— 开发基于JSR168的开发和部署
- 用JDOGenie进行基于JDO的项目开发向导
- 使用C#进行基于PI的开发(三)——应用PISDK和PIAPI从PI数据库读取数据
- 基于.NET 2.0的GIS开源项目SharpMap分析手记(八):怎样对SharpMap进行扩展开发——从许可角度来谈
- 使用NetBeans IDE进行基于组件的Web开发
- 使用C#调用PI-SDK进行基于PI的开发(二)——使用PI-SDK建立与PI数据库的连接