基于gst-uninstalled进行GStreamer开发

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Miss_yuan/article/details/58588893

GStreamer官方提供了一种基于非安装版本的GStreamer进行开发的方式,可以在不影响当前linux系统中安装版本的情况下,方便的基于最新版本的源码进行修改,调试和开发。

配置该环境的方法也很简单:

首先,下载安装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/

猜你喜欢

转载自blog.csdn.net/Miss_yuan/article/details/58588893