GStreamer 1.0 运行时环境变量设置

编写 GStreamer 插件2:编写插件的基础知识(一) 现在您可以学习如何构建插件了。在本指南的这一部分中,您将学习如何应用基本的GStreamer编程概念来编写一个简单的插件。指南的前几部分没有包含明确的示例代码,这可能会使事情变得有点抽象和难以理解。相反,本节将通过开发一个名为“MyFilter”的示例音频过滤器插件来展示应用程序和代码。 示例过滤器元件将从单个输入Pag和单个输出Pad开始。过滤器首先只需将媒体和事件数据从其接收器板传递到源板,而无需修改。但是在本部分的末尾,您将学习添加一些更有趣的功能,包括属性和信号处理程序。在阅读了指南的下一部分“高级 阅读详情

插件搜索路径

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

  • PATH
  • GST_PLUGIN_PATH_1_0 或 GST_PLUGIN_PATH
  • GST_PLUGIN_SYSTEM_PATH_1_0 或 GST_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_PATH和GST_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_0和GST_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 会比较缓存的有效性,并决定是否更新缓存。 如果有任何改动,则在初始化函数的结尾将新的缓存信息写入文件系统。

RIoTBoard开发板系列笔记(三)—— 移植Gstreamer 交叉编译 阅读详情

相关推荐

【Gstreamer 命令行工具 02】gst-launch-1.0

Gstreamer 命令行工具 gst-launch-1.0

Jayson 博客 1556

gstreamer插件开发指南(一)

翻译自:https://gstreamer.freedesktop.org/documentation/plugin-development/index.html 1 简介 GStreamer是一个非常强大且通用的框架,用于创建流媒体应用程序。GStreamer框架的许多优点来自其模块化:GStreamer可以无缝地合并新的插件模块。但是,由于模块化和功耗通常需要更高的复杂性(例如,考虑CORBA...

cdknight_happy的专栏 9853

GStreamer SDK 1.0 Build Via Cerbero

GStreamer SDK 1.0 Build Via Cerbero 粗略列出对Cerbero脚本的理解,希望能对他人有所帮助。具体代码解析暂未整理,如本篇确能对你有所帮助,且需要进一步了解,可留言。将会根据留言情况来选择是否花费时间整理。谢谢!

SniperPan的专栏 2265

gst常用命令

如果运行这个命令并且看到了一个显示彩色条的窗口,那么这意味着 GStreamer 管道运行成功,系统能够显示视频。整个命令的作用是创建一个 GStreamer 管道,该管道生成一个测试视频模式,并以 1920x1080 的分辨率显示它。这是一个 GStreamer 接收器元素,它自动选择一个合适的视频渲染器来显示视频。gst-launch-1.0 命令检查 GStreamer 的版本信息,将显示 GStreamer 的当前运行版本,但可能不会显示具体的次版本号。这是使用的是csi摄像头,其中的编号是3。

qq_43298381的博客 1709

gstreamer debug方法

本文主要介绍 gstreamer 中的 debug 机制,包括 debug level的介绍,以及pipeline dot 格式文件的生成方法等硬件环境:PC软件环境:ubuntu18.04如下图所示,是gstreamer 官网 debug level 介绍,目前最新的GStreamer提供了9种级别,用于输出不同类型的日志在使用时,我们只需将GST_DEBUG环境变量设置为相应级别,所有小于其级别的信息都会被输出,例如:设置,我们会得到ERROR及WARNING级别的日志例如:使用。

lh0616的博客 1543

Gstreamer基础教程10: Gstreamer 工具

文章目录1. Goal2. 介绍3. gst-lanuch-1.03.1 Elements3.2 Properties3.3 Named elements3.4 Pads3.5 Caps filters3.6 Examples4. gst-inspect-1.05. gst-discoverer-1.06. Conclusion 1. Goal GStreamer附带了一系列工具,从方便到绝对必要。 本教程中没有代码,请坐下来放松身心,我们将教您: 如何在不使用C的情况下从命令行构建和运行GStreame

R_X 2231

gstreamer registry文件

在我们的pipeline中,使用到pulsesink了,pulsesink在创建pipeline的时候总是碰到找不到的情况,通过分析发现,因为我们的插件有一部分不是放在标准路径,程序启动的时候,通过GST_PLUGIN_PATH指定的路径,并没有在加载插件的时候更新cache,而cache文件是按标准路径默认生成的。除了这些情况,缓存中可能有一些与当前进程无关的插件条目,这些被标记为对当前进程不可用。由于各种原因,在初始化时,缓存被存储在默认的注册表中,与当前进程无关的插件被标记为。

技术笔记 835

QT5.11.2 Ubuntu下GStreamer1.0环境配置

QT5.11.2自带的媒体播放软件需要编译安装GStreamer-1.0以上版本 (QT5.7.0用GStreamer-0.1) 下载地址:https://gstreamer.freedesktop.org/src/ 参考博客:https://blog.csdn.net/yibinqi6303/article/details/78984007 1,创建编译输出路径 mkdir $HOME/...

weixin_41985655的博客 1010

MacOS 安装 gstreamer 最新版本(1.20.0)

近期 gstreamer 退出了最新版本 1.20.0,这个版本支持 MacOS,于是尝试安装。步骤虽然简单,但是仍然有一些需要注意的地方,在这里做一些安装步骤的说明。 下载地址:Download GStreamer 安装步骤: ...

攻城狮小文的博客 3223

【GStreamer】gstreamer工具详解之:gst-launch-1.0

一、gst-launch-1.0 1、简介: gst-launch-1.0构建和运行基本GStreamer管道的工具 官网:https://gstreamer.freedesktop.org/documentation/tools/gst-inspect.html?gi-language=c 命令格式: gst-launch-1.0 [OPTIONS] PIPELINE-DESCRIPTION ...

郭老二 2万+

GStreamer 插件开发指南.zip

非常不幸,访问不了Gstreamer的中文网站 这里是我个人扒下来的GStreamer插件开发指南 与大家分享,共同进步

Linux 开发Qt视频播放器遇到的坑

学习qt遇到的一些坑

爱学习的诸葛铁锤的博客 2819

原子力显微镜AFM图像处理软件Gwyddion使用教程(图文)

Gwyddion使用教程Gwyddion简介Gwyddion user guide下载地址本次教程用的AFM扫描图像下载地址AFM/STM校准样品Gwyddion使用step1step2step3step4step5step6step7step8你没见过的CD磁道到底长啥样一张图总结 Gwyddion简介        &nbs...

王纯配的博客 5万+

[Study Notes][002][gstreamer] 的环境变量设定

Running GStreamer Applications Running GStreamer Applications — How to run and debug your GStreamer application   Running and debugging GStreamer Applications Environment

山云的专栏 979

FPGA高速通信双核解析:CMAC与Interlaken硬核的实战对比

本文深入对比了FPGA中两大高速通信硬核CMAC与Interlaken的核心差异与应用场景。CMAC作为标准以太网接入方案,适用于网卡、交换机等需对外互联的场景;而Interlaken则以极低延迟和高效通道化能力,专为芯片间、板间裸数据高速传输设计。文章通过实战案例与性能指标分析,为FPGA高速通信方案选型提供清晰指南。

f9g0h的博客 843

【QT】基于QSerialPort的跨平台串口通信实战指南

本文是一份基于Qt QSerialPort模块的跨平台串口通信实战指南。详细介绍了从硬件基础、QSerialPort核心类使用、参数配置、设备自动发现到数据异步读写和错误处理的完整流程,并通过构建一个功能齐全的串口调试助手实例,帮助开发者快速掌握在Windows、Linux和macOS系统下进行高效、稳定的串口应用开发。

a1b2c3d的博客 981

GStreamer——教程——基础教程10:GStreamer tools

这些工具位于GStreamer二进制文件的bin目录中。您需要转到此目录才能执行它们,因为它没有被添加到系统的PATH环境变量中(以避免过多地污染它)。只需打开终端(或控制台窗口),转到您的GStreamer安装的bin目录(再次阅读安装GStreamer部分以找出它在哪里), 您可以开始输入本教程中给出的命令了。在Linux,您应该使用安装在您的 分发,工具应该安装一个名为gstreamer1在Fedora风格发行版上,或在Debian/Ubuntu风格。分布。

FREEDOM_X的专栏 1874

采用MPU6050的手势遥控器

随着社会的发展与进步,电子产品日益更新,个人家庭迎来了越来越多的智能家电。然而,现在的智能电子设备产品的遥控器多数都是按键形的。操作繁琐不直观,学习成本大。并且对于有老人小孩的家庭,给他们的操作带来了巨大的障碍。手势遥控器是指利用简单的手势来指挥电子设备,获得便捷的操作体验。让家庭成员都可以享受科技发展带来的福利。MPU6050是一个运动传感器,内置陀螺仪,再由电子设备利用判断结果做出相应的响应即...

Sakura的博客小站 6602

【Gstreamer 10】基础教程之 GStreamer工具

Gstreamer 基础教程之 GStreamer工具

Jayson 博客 1628

MicroCap声学仿真介绍(一)

5-频率上下限选择,需要注意的是,第一个数字是上限,第二个数字是下限,如果填反了,会有报错提示;下三角可以选择“Auto”、“linear”、“log”和“list”,设置的是频率点之间的距离和频率点的数量。Component是用来选择部件的模块,如上图所示,声学仿真常用到的是“Electroacoustic Macros AC”、“Electroacoustic Macros TR”、“NXP Transducers”以及“NXP HD components”。3是声学部件,是声学仿真中常用的部件。

山无忧的博客 5089

短距激光雷达专业讲解:定义、架构、技术路线与选型逻辑

短距激光雷达,通常指有效探测距离不大于 50 米的激光雷达产品。它主要服务于服务机器人、扫地机器人、AGV/AMR、无人机、智能手机、AR/VR、工业安全等中近距感知场景。它与车载中长距激光雷达的最大区别,不是“探测距离短一点”,而是整套工程目标不同。短距激光雷达的核心诉求是:小体积、低成本、高帧率、强抗光、嵌入式集成。单价从百元级扫地机模组,到数千元级工业 3D 雷达不等。一句话概括:中长距车载激光雷达追求远距离、高可靠、车规寿命;

致力于lidar应用开发 151

gstreamer1.19 debug

调试过程中,经常需要观察日志。 常规来说,只要打印在屏幕上。 如果要打印在日志文件里,那么要执行如下: GST_DEBUG_FILE 是一个环境变量,指定gstreamer的debug文件 export GST_DEBUG_FILE=/tmp/gstreamer/log.log 参考:https://gstreamer.freedesktop.org/documentation/gstreamer/gstinfo.html?gi-language=c#gst_debug_log_default gst_d

william的博客 780

复现论文《基于Retinex理论和深度学习的低照度图像增强算法研究》

本研究提出两种基于Retinex理论和深度学习的低照度图像增强算法。第一种算法在HSV色彩空间中进行处理,采用Res2Block和CBAM-Res2block模块增强多尺度特征表示;第二种算法使用多尺度残差U型网络结构。复现代码展示了Res2Block、CBAM注意力机制等核心模块的实现,包括多尺度特征提取、通道和空间注意力机制。实验结果表明,所提算法能有效解决低照度图像存在的亮度低、对比度不足、颜色失真和细节丢失等问题,显著提升图像质量。

max500600的博客 387

gstreamer1.16安装

step 1: 我们将gstreamer安装到默认的/usr/local/下,先直接将/usr/local/ 下的pkgconfig和lib路径 export 出来(这在安装完成gstreamer再安装相关插件的时候会用到) export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH export LD_LIBRARY_PATH=/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH step 2: .

ddddfang的专栏 4491

Logstash安装部署

1. 部署及安装所用的用户不能是root。

lmj3732018的博客 4290

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

ubuntu安装GStreamer1.0

Gstreamer是一个支持Windows,Linux,Android,iOS的跨平台的多媒体框架,应用程序可以通过管道(Pipeline)的方式,将多媒体处理的各个步骤串联起来,达到预期的效果。每个步骤通过元素(Element)基于GObject对象系统通过插件(plugins)的方式实现,方便了各项功能的扩展。GStreamer在Linux发行版中包含官方推荐使用最新版本的系统,比如Fedora、Ubuntu、Debain或OpenSuse。

振华OPPO的博客世界 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

上一篇: 类型转换操作符Cast Operators
下一篇: GPL, LGPL, BSD协议介绍
小马识图
博客等级 码龄18年 8粉丝 30原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值