GstRerunSink - Building and Installation Guide
| GstRerunSink | |
|---|---|
| Features and Limitations | |
| Building and Installation Guide | |
| Examples | |
|
|
|
| Contact Us |
Getting the Code
GstRerunSink is an open-source project. The project is hosted on Github.
https://github.com/RidgeRun/gst-rerunsink
To clone the latest version you can run:
git clone https://github.com/RidgeRun/gst-rerunsink.git
Dependencies
GstRerunSink is supported on Jetson, NXP, and PC systems and almost any Linux system with GStreamer-1.20. The following packages are needed in order to build:
- General dependencies:
- GStreamer 1.20.0 version or greater
- gstreamer-1.0
- gstreamer-plugins-base-1.0
- gstreamer-base-1.0
- gstreamer-check-1.0
- gstreamer-video-1.0
- gstreamer-controller-1.0
- gstreamer-plugins-bad-1.0
- CMake 3.16 or higher
- C++14 compatible compiler
- Rerun SDK (automatically downloaded during build)
- If NVMM support is required:
- CUDA Toolkit
- NVIDIA DeepStream SDK 6.3
The GStreamer packages are likely already installed in your Ubuntu OS distribution. In case you want to double-check and install the missing packages, run the following commands.
sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-bad
Building the project
The GstRerunsink package is built natively.
Build without NVMM support
To build the project with CPU support only execute the following commands:
mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=ON .. make -j$(nproc)
You can continue to the Installing the plugin section
Build with NVMM support
Install CUDA L4T package
The Jetpack default installation will flash and install all the necessary CUDA packages. This section describes how to perform a manual installation, which is typically not needed.
Installation guide:
1. You will need to know which distribution version you are using:
lsb_release -a
2. Go to the CUDA 11.6.1 download archive and follow the selection menu.
- For Jetson platform you can follow this link: CUDA 11.6.1 Jetson Configuration
- For Ubuntu x86 platform you can follow this link: CUDA 11.6.1 Ubuntu x86 Configuration
Select the version depending on the lsb_release command executed above. We recommend using the deb (local) option for the installation.
3. Once you have selected your system setup, NVIDIA will show you the installation instructions for those requirements.
Install DeepStream SDK
The DeepStream SDK can be install using SDK Managerby selecting it in the Additional SDKs section before flashing. Alternatively, it can be installed using a Debian package, which can be downloaded from Nvidia's repository. After downloading the corresponding Debian package use the following command to install the SDK:
sudo apt-get install ./deepstream-7.1_7.1.0-1_arm64.deb
GStreamer RerunSink build commands with NVMM support
In order to build it with NVMM support, use the following commands instead:
mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release -DWITH_NVMM_SUPPORT=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON .. make -j$(nproc)
Build options
Additionally, when building manually the following options are provided:
| Option | Description | Default |
|---|---|---|
| WITH_NVMM_SUPPORT | Enable NVIDIA GPU memory support | OFF |
| CMAKE_BUILD_TYPE | Build configuration (Debug/Release) | Release |
Installing the plugin
The plugin is installed to the GStreamer's default plug-in location in the file system by running:
sudo make install
To verify that the plug-in was correctly installed, you should run:
gst-inspect-1.0 gstrerunsink
with expected output (example output with NVMM Support enabled)
gst-inspect-1.0 rerunsink
Factory Details:
Rank none (0)
Long-name RerunSink
Klass Sink/Video
Description Video sink that logs frames to Rerun for visualization
Author Frander Diaz <frander.diaz@ridgerun.com>
Plugin Details:
Name rerunsink
Description GStreamer sink plugin for Rerun visualization
Filename ./libgstrerunsink.so
Version 1.0
License LGPL
Source module rerunsink
Binary package GStreamer Rerun Sink
Origin URL https://github.com/rerun-io/rerun
GObject
+----GInitiallyUnowned
+----GstObject
+----GstElement
+----GstBaseSink
+----GstVideoSink
+----GstRerunSink
Pad Templates:
SINK template: 'sink'
Availability: Always
Capabilities:
video/x-raw
format: { (string)NV12, (string)I420, (string)RGB, (string)GRAY8, (string)RGBA }
width: [ 1, 2147483647 ]
height: [ 1, 2147483647 ]
framerate: [ 0/1, 2147483647/1 ]
video/x-raw(memory:NVMM)
format: { (string)NV12 }
width: [ 1, 2147483647 ]
height: [ 1, 2147483647 ]
framerate: [ 0/1, 2147483647/1 ]
video/x-raw
format: video/x-h264
stream-format: { (string)avc, (string)byte-stream }
video/x-h265
stream-format: { (string)hvc1, (string)hev1, (string)byte-stream }
width: [ 1, 2147483647 ]
height: [ 1, 2147483647 ]
framerate: [ 0/1, 2147483647/1 ]
Element has no clocking capabilities.
Element has no URI handling capabilities.
Pads:
SINK: 'sink'
Pad Template: 'sink'
Element Properties:
async : Go asynchronously to PAUSED
flags: readable, writable
Boolean. Default: true
blocksize : Size in bytes to pull per buffer (0 = default)
flags: readable, writable
Unsigned Integer. Range: 0 - 4294967295 Default: 4096
enable-last-sample : Enable the last-sample property
flags: readable, writable
Boolean. Default: true
grpc-address : gRPC server address (if non-default, connects via gRPC instead of spawning viewer)
flags: readable, writable
String. Default: "127.0.0.1:9876"
image-path : Entity path for logging images (e.g. 'camera/front/frame')
flags: readable, writable
String. Default: null
last-sample : The last sample received in the sink
flags: readable
Boxed pointer of type "GstSample"
max-bitrate : The maximum bits per second to render (0 = disabled)
flags: readable, writable
Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0
max-lateness : Maximum number of nanoseconds that a buffer can be late before it is dropped (-1 unlimited)
flags: readable, writable
Integer64. Range: -1 - 9223372036854775807 Default: 5000000
name : The name of the object
flags: readable, writable
String. Default: "rerunsink0"
output-file : Path to output .rrd file (if set, saves to disk instead of spawning viewer)
flags: readable, writable
String. Default: null
parent : The parent of the object
flags: readable, writable
Object of type "GstObject"
processing-deadline : Maximum processing deadline in nanoseconds
flags: readable, writable
Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 15000000
qos : Generate Quality-of-Service events upstream
flags: readable, writable
Boolean. Default: true
recording-id : Rerun recording/session identifier
flags: readable, writable
String. Default: null
render-delay : Additional render delay of the sink in nanoseconds
flags: readable, writable
Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0
show-preroll-frame : Whether to render video frames during preroll
flags: readable, writable
Boolean. Default: true
spawn-viewer : Spawn a Rerun viewer instance (ignored if output-file is set or grpc-address is non-default)
flags: readable, writable
Boolean. Default: true
sync : Sync on the clock
flags: readable, writable
Boolean. Default: true
throttle-time : The time to keep between rendered buffers (0 = disabled)
flags: readable, writable
Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0
ts-offset : Timestamp offset in nanoseconds
flags: readable, writable
Integer64. Range: -9223372036854775808 - 9223372036854775807 Default: 0
After installing GstRerunSink and all its dependencies, the Linux OS running on your platform must be rebooted before running a GStreamer pipeline that uses GstRerunSink.