deepstream生成pipeline拓扑图的方法

news2024/11/20 15:03:44

deepstream生成pipeline拓扑图的方法

    • 1、前期工作
      • 1.1 安装dot
    • 2、使用命令行生成
      • 2.1、添加环境变量
      • 2.2 、运行管道
      • 2.3 、使用dot 生成png图片
    • 3、在c中使用
      • 3.1、添加代码
      • 3.2、运行代码
      • 3.3 、使用dot 生成png图片
    • 4、在python中使用
      • 4.1、添加代码
      • 4.2 、使用dot 生成png图片

1、前期工作

1.1 安装dot

 sudo apt-get install graphviz

2、使用命令行生成

2.1、添加环境变量

export GST_DEBUG_DUMP_DOT_DIR=/Comac/Project/deepstream/dot  # /home/hiccup/gst_pipeline路径可以随意改变,为生成的.dot pipeline拓扑结构图

2.2 、运行管道

gst-launch-1.0 v4l2src device="/dev/video0" ! "video/x-raw, width=640, height=480, format=(string)YUY2" ! xvimagesink -e

管道结束后,可以在“/Comac/Project/deepstream/dot”下看到.dot生成的文件“ds-tracker-pipeline.dot”,其中“ds-tracker-pipeline”是定义的pipeline的名字

2.3 、使用dot 生成png图片

dot -Tpng ds-tracker-pipeline.dot > ds-tracker-pipeline.png

ds-tracker-pipeline
橘黄色:src element 和 src pad
紫色:sink element 和 sink pad
绿色:一般的element(除src element 和sink element外)

3、在c中使用

3.1、添加代码

在启动管道pipeline前加入如下代码,其中字符"pipeline"需要换成创建pipeline时命名的名字,例如“ds-tracker-pipeline”

GST_DEBUG_BIN_TO_DOT_FILE(GST_BIN(pipeline), GST_DEBUG_GRAPH_SHOW_ALL, "pipeline");
// 或者
GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS(GST_BIN(pipeline), GST_DEBUG_GRAPH_SHOW_ALL, "pipeline");
gst_element_set_state(pipeline, GST_STATE_PLAYING); //启动管道

3.2、运行代码

运行应用程序时前缀加上如下代码,其中路径"/Comac/Project/deepstream/dot"为生成的.dot pipeline拓扑结构图的路径

GST_DEBUG_DUMP_DOT_DIR=/Comac/Project/deepstream/dot ./ds_app_multi file:///Comac/Project/deepstream/ds_tracker/media/55.mp4

3.3 、使用dot 生成png图片

dot -Tpng ds-tracker-pipeline.dot > ds-tracker-pipeline.png

4、在python中使用

4.1、添加代码

在import处添加

import os
os.environ["GST_DEBUG_DUMP_DOT_DIR"] = "/Comac/Project/deepstream/dot"
os.putenv('GST_DEBUG_DUMP_DIR_DIR', '/Comac/Project/deepstream/dot')

在启动管道pipeline前加入如下代码:

Gst.debug_bin_to_dot_file(pipeline, Gst.DebugGraphDetails.ALL, "pipeline")
# start play back and listen to events
print("Starting pipeline \n")
pipeline.set_state(Gst.State.PLAYING)
try:
    loop.run()
except:
    pass
# cleanup
pipeline.set_state(Gst.State.NULL)

4.2 、使用dot 生成png图片

dot -Tpng ds-tracker-pipeline.dot > ds-tracker-pipeline.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1203796.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件外包开发需求整理需要注意的问题

在整理软件开发需求时,注意以下问题可以有助于确保需求的准确性、完整性和可行性。通过认真考虑这些问题,您可以确保整理出一份清晰、全面且具有可行性的软件开发需求文档,有助于项目的成功实施。北京木奇移动技术有限公司,专业的…

Vue3 数据响应式原理:Proxy和Reflect

我们在Vue2中使用的是Object.defineProperty方法来实现数据响应式的,可以通过get和set方法来监听对象的访问和修改。 但是并不能响应对象中属性的增加和删除,只能使用Vue.$set 和Vue.$delete 来对对象中的属性进行增加和删除。 数组也不能直接通过下标…

es性能强悍的推演过程

前言 es底层复用的Lucene的能力,Lucene在以前的文章中有所讲解,感兴趣可查看 https://blog.csdn.net/u013978512/article/details/125474873?ops_request_misc%257B%2522request%255Fid%2522%253A%2522169771769916777224433628%2522%252C%2522scm%2522…

02-瑞吉外卖员工表的增删改查

添加员工信息 执行流程 第一步: 用户点击添加员工按钮跳转到add.html页面,然后在页面中输入要添加的员工的信息 第二步: 用户点击保存按钮发送Ajax请求将用户输入的员工信息以json的格式提交到服务端 第三步: 服务端Controller接收页面提交的json格式的数据并转化为java对象…

酷开系统 | 酷开科技:打造精彩纷呈的电影盛宴

对于许多人来说,观看电影是一种享受、一种放松、一种逃避现实的方式。而现在,酷开科技作为行业内领军企业,为我们带来了一种全新的居家观影体验,让电影不仅是一种娱乐方式,更是科技的展现。 酷开科技致力于为观众带来…

【MySQL日志与备份篇】数据库备份与恢复

数据库备份与恢复 文章目录 数据库备份与恢复1. 物理备份与逻辑备份2. mysqldump实现逻辑备份2.1 备份一个数据库2.2 备份全部数据库2.3 备份部分数据库2.4 备份部分表2.5 备份单表的部分数据2.6 排除某些表的备份2.7 只备份结构或只备份数据2.8 备份中包含存储过程、函数、事件…

金蝶云星空设置单据体行高

文章目录 金蝶云星空设置单据体行高表单插件Python脚本 金蝶云星空设置单据体行高 表单插件 新建类继承AbstractBillPlugIn,重写OnInitialize方法进行设置 public override void OnInitialize(InitializeEventArgs e){base.OnInitialize(e);this.View.GetControl&…

图片高清重建

图像超分辨率重建(super resolution,SR)是指利用计算机将一幅低分辨率图像(low resolution,LR)或图像序列进行处理,恢复出高分辨率图像(high resolution,HR)的一种图像处理技术。简单…

红海云签约湘湖实验室,助力科研机构人力资源数字化全面升级

湘湖实验室(农业浙江省实验室)是由浙江省农业科学院和萧山区人民政府共同举办的新型研发机构,定位为农业核心种质资源生物制造与生物互作科学问题和核心技术研究,瞄准世界农业科技发展前沿,面向国家重大战略&#xff0…

Qt执行带参sql

//准备执行的sql语句,此为带参的sql语句query.prepare("update employee set Name:Name, Gender:Gender,Height:Height,"" Birthday:Birthday, Mobile:Mobile, Province:Province,"" City:City, Department:Department, Education:Educati…

DeepFool: a simple and accurate method to fool deep neural networks

DeepFool: a simple and accurate method to fool deep neural networks----《DeepFool:一种简单而准确的欺骗深度神经网络的方法》 摘要 最先进的深度神经网络已经在许多图像分类任务上取得了令人印象深刻的结果。然而,这些相同的架构已被证明对于图像…

使用cmd运行控制面板工具

如何通过键入命令运行“控制面板”工具 - Microsoft 支持 windows自带管理工具(exe/cpl/msc)-CSDN博客 CMD下打开系统各面板_cmd打开轻松使用面板-CSDN博客 示例: rundll32.exe shell32.dll,Control_RunDLL powercfg.cpl 替换powercfg.…

EXCEL——计算数据分散程度的相关函数

一、PERCENTIL函数 1.函数介绍 通常用来返回数据集给定百分点上的值。 2.函数解读 函数公式: PERCENTILE(数据, 百分点) 参数释义: 数据(必填):待处理的数组或数据区域。 百分点(必填)&…

uview的u-calendar日历组件,当设置了 minDate配置项后,会导致第一次打开日历弹窗,不会精准的滚动到选中的日期(设置了默认日期都没用)

发现需要给month.vue文件里的getMonth方法加一个延时器,猜测是因为设置最小日期后,日历没渲染完毕的时候就已经开始获取节点信息了

基于SSM的超市积分管理系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

从C语言到C++_40(多线程相关)C++线程接口+线程安全问题加锁(shared_ptr+STL+单例)

目录 1. C多线程 1.1 thread库 1.2 mutex库 1.3 RAII锁 1.4 atomicCAS 1.5 condition_variable 1.6 分别打印奇数和偶数 2. shared_ptr线程安全 2.1 库里面的shared_ptr使用 2.2 shared_ptr加锁代码 3. 单例模式线程安全 3.1 懒汉模式线程安全问题 3.2 懒汉模式最…

openGauss学习笔记-122 openGauss 数据库管理-设置密态等值查询-密态支持函数/存储过程

文章目录 openGauss学习笔记-122 openGauss 数据库管理-设置密态等值查询-密态支持函数/存储过程122.1 创建并执行涉及加密列的函数/存储过程 openGauss学习笔记-122 openGauss 数据库管理-设置密态等值查询-密态支持函数/存储过程 密态支持函数/存储过程当前版本只支持sql和P…

初始Linux(五)(定时任务)

crontab 进行 定时任务的设置 概述: 任务调度:是指系统在某个时间执行的特定的命令或程序 任务调度分类: 1.系统工作:有些重要的工作必须周而复始的执行,如病毒扫描 2.个别用户工作: 个别用户可能希望执行某些程序,比如mysql数据库的备份 基本语法: crontab [选项] -e 表示…

CCF CSP认证历年题目自练Day45

这几天搞泰迪杯数据分析技能赛去了。等拿国奖了就出一期关于泰迪杯的。 题目 试题编号: 201703-3 试题名称: Markdown 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   Markdown 是一种很流行的轻量级标记…

11-13 周一 同济子豪兄CNN卷积神经网络学习记录

11-13 周一 同济子豪兄CNN卷积神经网络学习记录 时间版本修改人描述2023年11月13日14:02:14V0.1宋全恒新建文档2023年11月13日19:05:29V0.2宋全恒完成 大白话讲解卷积神经网络的学习 简介 为了深入理解CNN,进行B站 同济子豪兄深度学习之卷积神经网络的学习. 主要内…