gstreamer pipeline生成可视化图

gstreamer pipeline生成可视化图(GraphViz)



前言

Gstreamer在日常debug时,经常会遇到抓取大量log,干扰信息提取与分析,无法明确的了解pipeline内部如何link以及caps negotiation情况,极大的降低了debug效率。

庆幸的是Gstreamer支持pipeline图形化输出,便于直观的了解到复杂pipeline中element的连接关系。gstreamer会将其输出为.dot文件,可以用GraphViz免费的程序读取,描述pipeline的拓扑结构以及每个link的caps negotiation。下文介绍如何实现运行gstreamer cmd生成可视化pipeline 流程图。(PS:默认已安装gstreamer 运行环境,gstreamer安装不在这里做介绍)


一、安装GraphViz

1. 什么是Graphviz?

Graphviz 是一款开源的图表可视化软件。图表可视化指的是用图形的方式去表示抽象图表和网络的结构化信息。在网络、生物信息学、软件工程、数据库和 Web 设计、机器学习、可视化接口等众多其他技术领域都有着重要的应用。

2.安装GraphViz

  • Ubuntu
    ubuntu 环境可以直接使用apt-get install命令安装。

    $ sudo apt-get install graphviz

  • Windows
    windows环境下从官网下载,按照提示一步步安装即可。
    https://graphviz.org/download/
    在这里插入图片描述

二、运行gstreamer 生成dot文件

在gstreamer中生成dot文件需要设置环境变量或debug者宏来触发。

1. gst-launch-1.0 命令行生成dot 文件

执行gst-launch-1.0 命令前,定义GST_DEBUG_DUMP_DOT_DIR环境变量,将改环境变量作为生成管道图的输出位置

export GST_DEBUG_DUMP_DOT_DIR=/tmp/
gst-launch-1.0 playbin flags=0x42 uri=file:///data/out_255.mp4

下面是使用gst-launch-1.0生成的dot文件列表,会把gstreamer STATE Change的每个过程都生成对应的.dot图

0.00.00.328088000-gst-launch.NULL_READY.dot
0.00.00.330350000-gst-launch.READY_PAUSED.dot
0.00.02.007860000-gst-launch.PAUSED_PLAYING.dot
0.00.05.095596000-gst-launch.PLAYING_PAUSED.dot
0.00.05.104625000-gst-launch.PAUSED_READY.dot

2. gstreamer application触发生成dot文件

如果想获取gstreamer application中的pipeline dot文件,则需要使用debug 宏来触发。在application中创建和link element位置添加宏:

GST_DEBUG_BIN_TO_DOT_FILE(pipeline, GST_DEBUG_GRAPH_SHOW_ALL, "pipeline")

gstreamer app 触发" GST_DEBUG_GRAPH_SHOW_ALL" sample code:

  1. 在demo app的头文件中添加gst/base/gstbytewriter.h
    在这里插入图片描述
  2. 设置环境变量,指定输出dot文件位置
    在这里插入图片描述
  3. 在状态切换为PLAYING之后,添加宏,用来导出当前状态切换情况下的pipeline dot文件。
    在这里插入图片描述
  4. 运行app后,产生dot文件
    在这里插入图片描述

三、使用Graphviz生成pipeline可视化图

1. 导出.dot文件

adb pull导出生成的.dot文件,到PC(安装Graphviz的环境下)

adb pull /tmp/0.00.01.248129077-gst-launch.READY_PAUSED.dot  D:\tmp

2. 使用Graphviz将dot文件转换为可视化图

dot文件转换命令为:

dot -T{format} input_file > output_file

ex1: 转换为pdf可视化图

 dot -Tpdf 0.00.01.248129077-gst-launch.READY_PAUSED.dot > test1.pdf

ex2: 转换为png可视化图

 dot -Tpng -o test1.png 0.00.01.248129077-gst-launch.READY_PAUSED.dot

pipeline管道图

总结

介绍使用Graphviz tool生成gstreamer pipeline可视化视图的方法

  • 18
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值