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.