<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tools on Thibault Saunier</title><link>https://blog.thibaultsaunier.com/</link><description>Thibault Saunier's blog: GStreamer, multimedia, open source.</description><language>en</language><lastBuildDate>Mon, 02 Nov 2026 17:51:09 +0000</lastBuildDate><atom:link href="https://blog.thibaultsaunier.com/tags/tools/" rel="self" type="application/rss+xml"/><item><title>gst-dots-viewer: A New Tool for GStreamer Pipeline Visualization</title><link>https://blog.thibaultsaunier.com/2025/05/gst-dots-viewer-a-new-tool-for-gstreamer-pipeline-visualization/</link><pubDate>Fri, 16 May 2025 00:00:00 +0000</pubDate><guid isPermaLink="false">https://blogs.gnome.org/tsaunier/2025/05/16/gst-dots-viewer-a-new-tool-for-gstreamer-pipeline-visualization/</guid><description>&lt;p&gt;We’re happy to have released &lt;code&gt;gst-dots-viewer&lt;/code&gt;, a new development tool that makes it easier to visualize and debug GStreamer pipelines. This tool,  included in GStreamer 1.26, provides a web-based interface for viewing pipeline graphs in real-time as your application runs and allows to easily request all pipelines to be dumped at any time.&lt;/p&gt;&#10;&lt;h2 id="what-is-gst-dots-viewer"&gt;What is gst-dots-viewer?&lt;/h2&gt;&#10;&lt;p&gt;&lt;code&gt;gst-dots-viewer&lt;/code&gt; is a server application that monitors a directory for &lt;code&gt;.dot&lt;/code&gt; files generated by GStreamer’s pipeline visualization system and displays them in your web browser. It automatically updates the visualization whenever new &lt;code&gt;.dot&lt;/code&gt; files are created, making it simpler to debug complex applications and understand the evolution of the pipelines at runtime.&lt;/p&gt;&#10;&lt;h2 id="key-features"&gt;Key Features&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Real-time Updates: Watch your pipelines evolve as your application runs&lt;/li&gt;&#10;&lt;li&gt;Interactive Visualization:&#10;&lt;ul&gt;&#10;&lt;li&gt;Click nodes to highlight pipeline elements&lt;/li&gt;&#10;&lt;li&gt;Use Shift-Ctrl-scroll or w/s keys to zoom&lt;/li&gt;&#10;&lt;li&gt;Drag-scroll support for easy navigation&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Easily deployable in cloud based environments&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="how-to-use-it"&gt;How to Use It&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Start the viewer server:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gst-dots-viewer&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Open your browser at &lt;code&gt;http://localhost:3000&lt;/code&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Enable the dots tracer in your GStreamer application:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;GST_TRACERS&lt;span style="color:#f92672"&gt;=&lt;/span&gt;dots your-gstreamer-application&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;The web page will automatically update whenever new pipeline are dumped, and you will be able to dump all pipelines from the web page.&lt;/p&gt;&#10;&lt;h2 id="new-dots-tracer"&gt;New Dots Tracer&lt;/h2&gt;&#10;&lt;p&gt;As part of this release, we’ve also introduced a new &lt;code&gt;dots&lt;/code&gt; tracer that replaces the previous manual approach to specify where to dump pipelines. The tracer can be activated simply by setting the &lt;code&gt;GST_TRACERS=dots&lt;/code&gt; environment variable.&lt;/p&gt;&#10;&lt;h2 id="interactive-pipeline-dumps"&gt;Interactive Pipeline Dumps&lt;/h2&gt;&#10;&lt;p&gt;The &lt;code&gt;dots&lt;/code&gt; tracer integrates with the &lt;a href="https://gstreamer.freedesktop.org/documentation/rstracers/pipeline-snapshot.html?gi-language=c" class="external" target="_blank" rel="noopener"&gt;&lt;code&gt;pipeline-snapshot&lt;/code&gt;&lt;/a&gt; tracer to provide real-time pipeline visualization control. Through a WebSocket connection, the web interface allows you to trigger pipeline dumps. This means you can dump pipelines exactly when you need them during debugging or development, from your browser.&lt;/p&gt;&#10;&lt;h2 id="future-improvements"&gt;Future Improvements&lt;/h2&gt;&#10;&lt;p&gt;We plan on adding more feature and  have this list of possibilities:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Additional interactive features in the web interface&lt;/li&gt;&#10;&lt;li&gt;Enhanced visualization options&lt;/li&gt;&#10;&lt;li&gt;Integration with more GStreamer tracers to provide comprehensive debugging information. For example, we could integrate the newly released &lt;a href="https://gstreamer.freedesktop.org/documentation/rstracers/memory-tracer.html?gi-language=c#memorytracer-page" class="external"&gt;memory-tracer&lt;/a&gt; and &lt;a href="https://gstreamer.freedesktop.org/documentation/rstracers/memory-tracer.html?gi-language=c#memorytracer-page" class="external"&gt;queue-level&lt;/a&gt; tracers so to plot graphs about memory usage at any time.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;This could transform gst-dots-viewer into a more complete debugging and monitoring dashboard for GStreamer applications.&lt;/p&gt;&#10;&lt;h2 id="demo"&gt;Demo&lt;/h2&gt;&#10;&lt;div class="video"&gt;&lt;iframe src="https://www.youtube-nocookie.com/embed/bk9Vy44RtfU" title="YouTube video" allowfullscreen loading="lazy"&gt;&lt;/iframe&gt;&lt;/div&gt;&#10;</description></item></channel></rss>