GStreamer 1.0 运行时环境变量设置

插件搜索路径

GStreamer程序运行时,按照以下顺序搜索插件:

  • PATH
  • GST_PLUGIN_PATH_1_0GST_PLUGIN_PATH
  • GST_PLUGIN_SYSTEM_PATH_1_0GST_PLUGIN_SYSTEM_PATH

每个环境变量包含一个路径列表。 GST_PLUGIN_PATH_1_0环境变量如果被设置,则GST_PLUGIN_PATH自动失效。 这为系统同时安装GStreamer-0.10和GStreamer-1.0提供了便利。 同样的, GST_PLUGIN_SYSTEM_PATH_1_0如果被设置,也会取代GST_PLUGIN_SYSTEM_PATH

那么既然GST_PLUGIN_PATHGST_PLUGIN_SYSTEM_PATH都是指代插件的路径,那为什么要设置两个相似的环境变量呢?

答案是GStreamer不会对搜索到的插件重复加载,这样我们在GST_PLUGIN_PATH里面搜索到某个插件,而这个插件的另外一个版本又在GST_PLUGIN_SYSTEM_PATH里面被搜索到,后一个版本会被忽略。这样,我们就可以使用自已的版本覆盖到系统安装的版本。

这样看来,我们应该使用GST_PLUGIN_SYSTEM_PATH指代系统上安装的GStreamer插件路径,而使用GST_PLUGIN_PATH指代我们自己开发的插件。但是实际操作中,并不需要严格界定这些变量所指向的插件路径的性质。 我就常常把系统插件路径添加到PATH系统变量中。GStreamer同样可以找到系统插件。

另外需要说明的是,

  1. GST_PLUGIN_SYSTEM_PATH_1_0GST_PLUGIN_SYSTEM_PATH均未被定义时, GStreamer会自动将以下路径添加到GST_PLUGIN_SYSTEM_PATH

    • 用户目录GStreamer插件路径,通常是$XDG_DATA_HOME/gstreamer-1.0/plugins, $XDG_DATA_HOME默认路径是 $HOME/.local/share
    • 系统插件目录,$prefix/libs/gstreamer-1.0
  2. 如果你需要避免GStreamer自动搜索以上路径,你可以将GST_PLUGIN_SYSTEM_PATH设置为空!

Debug输出

设置GST_DEBUG变量可以控制GStreamer运行时的输出。 GST_DEBUG可以设置为如下格式:

“模块名1: 级别 , 模块名2:级别 , …”

模块名中可以使用通配符”*”, 如:

  • *: 1“: 表示所有模块输出级别1
  • GST_ELEMENT_:4*”: 表示所有以”GST_ELEMENT_“开头的模块输出级别为4
级别 名称 意义
1 ERROR Logs all fatal errors
2 WARNING Logs all warnings
3 FIXME Logs all fixme messages
4 INFO Logs all informational messages
5 DEBUG Logs all debug messages
6 LOG Logs all log messages
7 TRACE Logs all trace messages
9 MEMDUMP Logs all memory dump messages
  • FIXME: 这类消息表示执行的某段代码尚未完全实现或需要更多的关注。
  • INFO: 记录只发生一次,或者比较重要,或者不常见的事件消息。
  • DEBUG: 记录发生有限次数的事件消息,比如setup, teardown, 参数变化…
  • LOG: 记录重复发生的事件,如streaming…
  • TRACE:记录重复发生的事件, 如ref/unref

GST_DEBUG_FILE 环境变量如果被设置, 所有Log信息都会被重定位到该变量指定的文件,否则所有信息输出到标准错误输出(stderr).


Registry 缓存

GStreamer程序启动的时候会按照指定的路径搜索插件, 并将插件的信息存入文件系统(缓存)。存放缓存的文件路径是

$XDG_CACHE_HOME/gstreamer-1.0/registry-$ARCH.bin,

当设置了GST_REGISTRY_1_0 或者GST_REGISTRY, 则将缓存存入指定的路径。

在搜索插件的过程中GStreamer 会比较缓存的有效性,并决定是否更新缓存。 如果有任何改动,则在初始化函数的结尾将新的缓存信息写入文件系统。

时间: 2024-11-08 21:53:33

GStreamer 1.0 运行时环境变量设置的相关文章

jdk1.8.0环境变量设置

1.jdk安装完毕 2.进入计算机-系统属性-高级系统设置 3.新建系统变量JAVA_HOME: 变量名:JAVA_HOME: 变量值:D:\Program Files (x86)\Java\jdk1.8.0(计算机本地jdk的安装目录) 2.新建系统变量CLASSPATH: 变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(前面的点一定不能忘记) 3.修改系统变量path的值 变量名:path 在path

crontab中运行newLISP脚本的环境变量设置

今天遇到一个问题,在终端里运行newLISP脚本,一切正常,移动到crontab中就不行.即便crontab -e命令运行在同一个用户下,还是有问题. 由于newLISP脚本要用到hive和hadoop,估计是环境变量的问题.所以先用newLISP shell运行(env)命令,将当前环境变量记录到文件evn.lsp中. 然后在newLISP脚本中加载之. 下面是env.lsp文件部分内容: (set 'local-envs '(("LC_PAPER" "en_US.UTF-

关于yeoman安装时的环境变量设置

yeoman安装时需要设置NODE_PATH环境变量,把此环境变量设置为C:\Users\你的用户名\AppData\Roaming\npm\node_modules,才可以正常安装.否则会报错,并建议你用命令行设置,那个建议是错的,有点悲剧

jdk 环境变量设置

我的电脑点右键,选择“属性”,选择“高级”标签,进入环境变量设置,分别设置如下三个环境变量: 设置JAVA_HOME: 一是为了方便引用,比如,JDK安装在C:\jdk1.6.0目录里,则设置JAVA_HOME为该目录路径, 那么以后要使用这个路径的时候, 只需输入%JAVA_HOME%即可, 避免每次引用都输入很长的路径串; 二则是归一原则, 当JDK路径改变的时候, 仅需更改JAVA_HOME的变量值即可, 否则,就要更改任何用绝对路径引用JDK目录的文档, 要是万一没有改全, 某个程序找不

Spring XD简介:大数据应用的运行时环境

简介 Spring XD(eXtreme Data,极限数据)是Pivotal的大数据产品.它结合了Spring Boot和Grails,组成Spring IO平台的执行部分.尽管Spring XD利用了大量现存的Spring项目,但它是一种运行时环境,而不是一个类库或者框架,它包含带有服务器的bin目录,你可以通过命令行启动并与之交互.运行时可以运行在开发机上.客户端自己的服务器上.AWS EC2上或者Cloud Foundry上. Spring XD中的关键组件是管理和容器服务器(Admin

pppcloud云主机下linux环境变量设置错误后,如何恢复解决方案

linux环境变量设置错误后,如何恢复解决方案:在命令行中输入:export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin 后回车/etc /profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集 shell的设置./etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.~/.bash_profi

Android 6.0+ 运行时权限

1.权限被分为了普通和危险两种 2.打电话的Demo import android.Manifest; import android.app.Activity; import android.content.Intent; import android.content.pm.PackageManager; import android.net.Uri; import android.os.Bundle; import android.provider.Settings; import andro

【Linux】环境变量设置

在Windows中环境变量设置是非常easy的事情.例如以下图.仅仅要右键我的电脑->高级系统设置->环境变量,选择Path之后,点击"编辑"就能够输入你要加入的内容. 能够把一些希望直接执行的命令行命令加入上去. 比方java,就要把jdk下的bin文件夹搞上去等. 然而.在Linux中就没有这么简单了. 以Ubuntu为例.环境变量设置的方式有两种,一种是 通过Ctrl+Alt+T打开终端,然后输入: sudo gedit /etc/environment 之后输入pa

如何解决java环境变量设置不起作用的问题

在读书的时候学过java开发环境(http://www.maiziedu.com/group/article/11995/)的安装,其中涉及到java环境变量的设置,可是前段时间我在win7系统下安装jdk后,总是弹出"javac不是内部命令或外部命令,也不是可运行的程序或批处理文件"的提示框.折腾好长一段时间,终于找到解决办法,现在小编就把这个方法分享给大家,希望对大家有用,具体整理如下: 第一步:安装jdk-6u26-windows-x32.exe,路径为默认路径,一直下一步直到完