天天看點

Gstreamer Debug:生成Pipeline 内部元素拓撲結構圖

概述

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檔案
    Gstreamer Debug:生成Pipeline 内部元素拓撲結構圖