GstShark - Dieptranivsr/DroneIVSR GitHub Wiki

GstShark

GstShark is an open-source project from RidgeRun that provides benchmarks and profiling tools for GStreamer 1.7.1 (and above). It includes tracers for generating debug information plus some tools to analyze the debug information. GstShark provides easy to use and useful tracers, paired with analysis tools to enable straightforward optimizations.

GstShark leverages GStreamer's tracing hooks and open-source and standard tracing and plotting tools to simplify the process of understanding the bottlenecks in your pipeline.

  • vimeo version (may have better lipsync)
  • embedvideo (below)

Features

GstShark is a set of data acquisition tools that yield some intermediate results and some data analysis tools that process those results.

Tracers

GstShark currently includes nine different tracers. They are described in detail in the tracers section later in this documentation.

Tracer Description
InterLatency build and run GStreamer pipelines from the command line
ProcTime find out what GStreamer elements you have available and their capabilities
Framerate discover the internal structure of media files
Schedule Time discover the internal structure of media files
CPU Usage discover the internal structure of media files
Graphic discover the internal structure of media files
Bitrate Records a graphical representation of the current pipeline.
Queue Level Measures the amount of data queued in every queue element in the pipeline.
Buffer Prints information of every buffer that passes through every sink pad in the pipeline. This information contains PTS and DTS, duration, size, flags and even refcount.

Installing GstShark Tracers

GstShark is an open-source source project by Ridgerun Engineering. It is publicly available here.

You can download the source using git:

$ git clone https://github.com/RidgeRun/gst-shark.git

Install Graphviz, octave, epstool and babeltrace

$ sudo apt install graphviz libgraphviz-dev
$ sudo apt install octave epstool babeltrace

Install gtk-doc-tools - dependencies

$ sudo apt-get install gtk-doc-tools

Building GstShark Tracers

The GstShark project comes packed as a typical GNU open source project. Use autogen/make to build the project:

$ ./autogen.sh $OPTIONS # CHOOSE THE APPROPRIATE CONFIGURATION FROM THE TABLE BELOW
$ make

For the most common build targets, the recommended options are listed below.

Table 1. Platform configuration options

System Configure Option
Ubuntu 64 bits --prefix /usr/ --libdir /usr/lib/x86_64-linux-gnu/
RidgeRun's Embedded FS --prefix /usr/
Raspbian/Raspberry Pi --prefix /usr/lib/ --libdir /usr/lib/arm-linux-gnueabihf/
NVIDIA Jetson SoCs TX1 TX2 Nano Xavier NX --prefix /usr/ --libdir /usr/lib/aarch64-linux-gnu/

Installing GstShark Tracers

To install the tracers, use the install rules of the Makefile.

$ sudo make install

Available Tracker

GstShark currently includes nine different tracers. They were selected as the initial set of tracers based on RidgeRun's previous experiences fine-tuning GStreamer pipelines. These are known to provide very valuable debugging/profiling information, data that otherwise may only be available by hacking the source code of the core and involved elements. GstShark, however, is a very active project and new tracers are continuously developed and released.

List of tracers

The following list provides a summary of the current tracers. Detailed descriptions and guides to each tracer are provided in the next pages.