概述
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檔案