概述
Gstreamer提供方便的playbin、decodebin等非常方便使用的组件,虽然使用方便,但这些bin均犹如一个黑盒子,有时我们需要获取到这些bin内部元素的拓扑结构作为参考。读完本文则可以轻易获取完整的gst pipeline的元素拓扑结构。
GST_DEBUG_DUMP_DOT_DIR宏定义
Gstreamer提供了GST_DEBUG_DUMP_DOT_DIR
宏定义,该宏定义用于指定整个pipeline的拓扑结构图存放的路径。拓扑结构图的格式为Dot,推荐使用GraphViz工具将Dot文件转成Png,便于查看。
Ubuntu下安装GraphViz工具命令:sudo apt-get install graphviz
演示
- 比如我们使用gst-inspect 创建如下管道(Dot文件保存到/tmp目录):
GST_DEBUG_DUMP_DOT_DIR=/tmp gst-launch-1.0 videotestsrc ! autovideosink
- 然后在/tmp目录下我们能看到生成了很多Dot文件:
0.00.00.012769916-gst-launch.NULL_READY.dot
0.00.00.016863346-gst-launch.READY_PAUSED.dot
0.00.00.017679198-gst-launch.PAUSED_PLAYING.dot
0.00.04.847391754-gst-launch.PLAYING_READY.dot
- 将Dot文件转为Png
dot -Tpng -o test.png 0.00.00.012769916-gst-launch.NULL_READY.dot
- 查看新生成的Png文件