Gstreamer pipieline diagram
本文主要解决问题:
1.如何制作Gstreamer pipeline转化成图表
本节介绍一种将Gstreamer pipeline转换成直观的图表的方法(基于Linux系统)
1.安装dot工具
sudo apt-get install graphviz
安装完成后,在命令行中可以检测到’dot’命令
2导出pipeline数据的存放目录,(通常是在目标开发板)
export GST_DEBUG_DUMP_DOT_DIR=/tmp/
3.运行pipeline,生成pipeline数据,如:
gst-launch-1.0 playbin uri=file:///mnt/mmc/test_h264.avi video-sink=fbdevsink
此处依据实际跟踪的pipeline状况而定,gst-launch为Gstreamer自带的非常有用的工具;
pipeline运行完成后,将在export的目录下生成.dot的文件,通常带有关键字PLAYING_PAUSED的文件就是用于生成图表的;
# ls /tmp
0.00.00.972540004-gst-launch.NULL_READY.dot
0.00.01.051387461-gst-launch.READY_PAUSED.dot
0.00.01.074729712-gst-launch.PAUSED_PLAYING.dot
0.00.12.187852589-gst-launch.PLAYING_PAUSED.dot
0.00.12.201485839-gst-launch.PAUSED_READY.dot
5.主机端,依据dot文件生成图表
$ dot -Tpng 0.00.24.846778049-gst-launch.PLAYING_PAUSED.dot > pipeline.png
6.打开图表
eog pipeline.png
批量的将dot文件转换成图表的方法
如果有大量的DOT文件需要转换,使用批处理脚本将十分方便,假设存放DOT文件的目录为(DOT_FILES_DIR);
#!/bin/bash
DOT_FILES_DIR="fs/fs/graphs"
PNG_FILES_DIR="fs/fs/graphs"
DOT_FILES=`ls $DOT_FILES_DIR | grep dot`
for dot_file in $DOT_FILES
do
png_file=`echo $dot_file | sed s/.dot/.png/`
dot -Tpng $DOT_FILES_DIR/$dot_file > $PNG_FILES_DIR/$png_file
done
如何在Gstreamer应用中使用
在创建完所有的elements和连接好elements后,添加如下代码:
GST_DEBUG_BIN_TO_DOT_FILE(pipeline, GST_DEBUG_GRAPH_SHOW_ALL, "pipeline")
运行app
#GST_DEBUG_DUMP_DOT_DIR=. ./application (第一个点后面为空格)