GStreamer 1.0 运行时环境变量设置

本文介绍了GStreamer 1.0运行时如何设置插件搜索路径,包括GST_PLUGIN_PATH_1_0和GST_PLUGIN_SYSTEM_PATH_1_0的作用和使用策略。此外,还讲解了通过GST_DEBUG控制调试输出的级别,以及Registry缓存的存储位置和更新机制。
部署运行你感兴趣的模型镜像

插件搜索路径

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
级别名称意义
1ERRORLogs all fatal errors
2WARNINGLogs all warnings
3FIXMELogs all fixme messages
4INFOLogs all informational messages
5DEBUGLogs all debug messages
6LOGLogs all log messages
7TRACELogs all trace messages
9MEMDUMPLogs 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 会比较缓存的有效性,并决定是否更新缓存。 如果有任何改动,则在初始化函数的结尾将新的缓存信息写入文件系统。

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

aiec@RK3588:~$ dpkg -l | grep gstreamer ii gir1.2-gstreamer-1.0:arm64 1.20.3-0ubuntu1.1 arm64 GObject introspection data for the GStreamer library ii gstreamer1.0-alsa:arm64 1.20.1-1ubuntu0.4 arm64 GStreamer plugin for ALSA ii gstreamer1.0-clutter-3.0:arm64 3.0.27-2ubuntu1 arm64 Clutter PLugin for GStreamer 1.0 ii gstreamer1.0-gl:arm64 1.20.1-1ubuntu0.4 arm64 GStreamer plugins for GL ii gstreamer1.0-libav:arm64 1.20.3-0ubuntu1 arm64 ffmpeg plugin for GStreamer ii gstreamer1.0-packagekit 1.2.5-2ubuntu3 arm64 GStreamer plugin to install codecs using PackageKit ii gstreamer1.0-pipewire:arm64 0.3.48-1ubuntu3 arm64 GStreamer 1.0 plugin for the PipeWire multimedia server ii gstreamer1.0-plugins-bad:arm64 1.20.3-0ubuntu1.1 arm64 GStreamer plugins from the "bad" set ii gstreamer1.0-plugins-base:arm64 1.20.1-1ubuntu0.4 arm64 GStreamer plugins from the "base" set ii gstreamer1.0-plugins-base-apps 1.20.1-1ubuntu0.4 arm64 GStreamer helper programs from the "base" set ii gstreamer1.0-plugins-good:arm64 1.20.3-0ubuntu1.3 arm64 GStreamer plugins from the "good" set ii gstreamer1.0-plugins-ugly:arm64 1.20.1-1 arm64 GStreamer plugins from the "ugly" set ii gstreamer1.0-pulseaudio:arm64 1.20.3-0ubuntu1.3 arm64 GStreamer plugin for PulseAudio (transitional package) ii gstreamer1.0-rockchip1 1.14-4 arm64 The Gstreamer plugins for Rockchip platforms. ii gstreamer1.0-rockchip1-dbgsym 1.14-4 arm64 debug symbols for gstreamer1.0-rockchip1 ii gstreamer1.0-tools 1.20.3-0ubuntu1.1 arm64 Tools for use with GStreamer ii gstreamer1.0-x:arm64 1.20.1-1ubuntu0.4 arm64 GStreamer plugins for X11 and Pango ii libgstreamer-gl1.0-0:arm64 1.20.1-1ubuntu0.4 arm64 GStreamer GL libraries ii libgstreamer-plugins-bad1.0-0:arm64 1.20.3-0ubuntu1.1 arm64 GStreamer libraries from the "bad" set ii libgstreamer-plugins-base1.0-0:arm64 1.20.1-1ubuntu0.4 arm64 GStreamer libraries from the "base" set ii libgstreamer-plugins-good1.0-0:arm64 1.20.3-0ubuntu1.3 arm64 GStreamer development files for libraries from the "good" set ii libgstreamer1.0-0:arm64 1.20.3-0ubuntu1.1 arm64 Core GStreamer libraries and elements 如何查看该gstreamer库安装位置
最新发布
10-31
WARNING: gstreamer1.0-plugins-base-1.16.2-r0 do_fetch: Failed to fetch URL file://gst-plugins-base-1.16.2.tar.xz, attempting MIRRORS if available ERROR: gstreamer1.0-plugins-base-1.16.2-r0 do_fetch: Fetcher failure: Unable to find file file://gst-plugins-base-1.16.2.tar.xz anywhere. The paths that were searched were: /home/bstos/openembedded-core/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base-1.16.2/bstos /home/bstos/openembedded-core/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/bstos /home/bstos/openembedded-core/meta/recipes-multimedia/gstreamer/files/bstos /home/bstos/openembedded-core/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base-1.16.2/a1000 /home/bstos/openembedded-core/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/a1000 /home/bstos/openembedded-core/meta/recipes-multimedia/gstreamer/files/a1000 /home/bstos/openembedded-core/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base-1.16.2/aarch64 /home/bstos/openembedded-core/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/aarch64 /home/bstos/openembedded-core/meta/recipes-multimedia/gstreamer/files/aarch64 /home/bstos/openembedded-core/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base-1.16.2/aarch64 /home/bstos/openembedded-core/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/aarch64 /home/bstos/openembedded-core/meta/recipes-multimedia/gstreamer/files/aarch64 /home/bstos/openembedded-core/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base-1.16.2/ /home/bstos/openembedded-core/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/ /home/bstos/openembedded-core/meta/recipes-multimedia/gstreamer/files/ /home/bstos/build/../downloads ERROR: gstreamer1.0-plugins-base-1.16.2-r0 do_fetch: Fetcher failure for URL: 'file://gst-plugins-base-1.16.2.tar.xz'. Unable to fetch URL from any source. ERROR: gstreamer1.0-plugins-base-1.16.2-r0 do_fetch: ERROR: gstreamer1.0-plugins-base-1.16.2-r0 do_fetch: Function failed: base_do_fetch ERROR: Logfile of failure stored in: /home/bstos/build/tmp/work/aarch64-bst-linux/gstreamer1.0-plugins-base/1.16.2-r0/temp/log.do_fetch.24397 ERROR: Task (/home/bstos/openembedded-core/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.16.2.bb:do_fetch) failed with exit code '1'
09-29
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值