GstShark - GStreamer 分析和调试工具
GstShark 全流程使用指南一、安装与验证1. 安装依赖# 基础构建工具sudoaptinstallmeson ninja-build gettext pkg-config# GStreamer 开发环境若已安装可跳过sudoaptinstalllibgstreamer1.0-dev libgstreamer-plugins-base1.0-dev# GstShark 核心依赖sudoaptinstallgraphviz libgraphviz-dev# Pipeline 图生成sudoaptinstallbabeltrace# CTF 文件解析sudoaptinstallgtk-doc-tools# 文档生成部分插件需要# 数据分析工具sudoaptinstalloctave epstool2. 多版本环境配置# 定位目标GStreamer版本示例为1.22$find/usr-namegstreamer-1.0.pc2/dev/null /usr/local/gst-1.22/lib/x86_64-linux-gnu/pkgconfig/gstreamer-1.0.pc /usr/local/gst-1.24/lib/x86_64-linux-gnu/pkgconfig/gstreamer-1.0.pc /usr/local/gst-1.18/lib/x86_64-linux-gnu/pkgconfig/gstreamer-1.0.pc# 假如要为gstreamer 1.22版本安装gstshark则# 设置环境变量exportPKG_CONFIG_PATH/usr/local/gst-1.22/lib/pkgconfig:$PKG_CONFIG_PATHexportLD_LIBRARY_PATH/usr/local/gst-1.22/lib:$LD_LIBRARY_PATH3. 编译与安装gitclone https://github.com/RidgeRun/gst-sharkcdgst-shark meson builddir--prefix/usr/local/gst-1.22/ ninja-Cbuilddirsudoninjainstall-Cbuilddir如果系统装了多个版本的gstreamer要为gstreamer 1.22安装可以指定gstreamer 1.22安的安装路径 /usr/local/gst-1.22/4. 验证安装gst-inspect-1.0 sharktracers应显示所有跟踪器插件列表如下Plugin Details: Name sharktracers Description GstShark tracers Filename /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstsharktracers.so Version 0.8.1 License LGPL Source module gst-shark Binary package GstShark Origin URL https://github.com/RidgeRun/gst-shark cpuusage (GstTracerFactory) graphic (GstTracerFactory) proctime (GstTracerFactory) interlatency (GstTracerFactory) scheduletime (GstTracerFactory) framerate (GstTracerFactory) queuelevel (GstTracerFactory) bitrate (GstTracerFactory) buffer (GstTracerFactory) 9 features: -- 9 tracers二、生成跟踪文件1. 基本命令格式GST_DEBUGGST_TRACER:7GST_TRACERS跟踪器列表\gst-launch-1.0管道命令跟踪文件的输出路径GST_SHARK_LOCATION或 默认输出到 命令执行路径的gstshark_YY-MM-DD_hh:mm:ss目录。2. 典型用例# 示例分析CPU使用率GST_DEBUGGST_TRACER:7GST_TRACERScpuusage\gst-launch-1.0 videotestsrc!videorate max-rate15!fakesink# 组合跟踪器示例GST_DEBUGGST_TRACER:7GST_TRACERSproctime;bitrate\gst-launch-1.0 filesrclocationtest.mp4!qtdemux!h264parse!avdec_h264!fakesink3. 输出控制环境变量作用示例值GST_SHARK_CTF_DISABLE禁用文件输出仅内存跟踪export GST_SHARK_CTF_DISABLE1GST_SHARK_LOCATION旧版路径设置export GST_SHARK_LOCATION./mytraces三、核心跟踪器功能跟踪器监测指标关键参数适用场景CPUUsageCPU核心使用率%/秒GST_SHARK_CPUUSAGE_INTERVAL2000多线程负载分析InterLatency元素间传输延迟msGST_SHARK_INTERLATENCY_THRESHOLD10低延迟管道优化ProcTime元素处理时间ns-性能瓶颈定位Bitrate实时码率kbpsGST_SHARK_BITRATE_SAMPLE_INTERVAL500码率控制验证Graphic生成DOT格式管道图GST_SHARK_GRAPHIC_RENDER1管道结构可视化QueueLevel队列填充百分比-缓冲区溢出预防四、管道图生成与可视化1. 生成DOT文件GST_TRACERSgraphicgst-launch-1.0 rtspsrc!rtph264depay!h264parse!avdec_h264!fakesink输出路径GST_SHARK_LOCATION或默认当前目录下的 gstshark_YY-MM-DD_hh:mm:ss/graphic/pipeline.dot。2. 转换图像文件使用 Graphviz 工具转换为图片# 生成PNG默认格式dot-Tpngpipeline.dot-opipeline.png# 生成矢量图dot-Tsvgpipeline.dot-opipeline.svg3. 实时可视化GST_TRACERSgraphicGST_SHARK_GRAPHIC_RENDER1\gst-launch-1.0 v4l2src!videoconvert!xvimagesink五、性能数据分析1. 生成统计图表# 进入脚本目录cdgst-shark/scripts/graphics/# 生成PNG格式图表./gstshark-plot /path/to/traces-spng# 生成PDF报告./gstshark-plot /path/to/traces-spdf2. 高级分析技巧# 按元素过滤数据./gstshark-plot ./traces--filterh264enc|udpsink# 时间范围筛选单位秒./gstshark-plot ./traces--start5.3--end15.7六、常见问题排查现象解决方案跟踪文件不生成检查磁盘空间及目录写权限插件未加载确认LD_LIBRARY_PATH包含插件路径图表生成失败安装octave-statistics包实时窗口无显示启用X11转发SSH加-Y参数七、参考资料GstShark - Generating trace filesGstShark TracersGstShark PlotGstShark Pipeline DiagramGstShark Tracer ParametersGstShark Examples