GStreamer Video Stabilizer for NVIDIA Jetson Boards - Getting Started - Evaluating GstNvStabilize

From RidgeRun Developer Wiki


Note
GstNVStabilize works for Jetpack versions up to 4.x. For latest Jetpacks please refer to our new Stabilization product:

RidgeRun Video Stabilization Library


Previous: User Guide Index Next: Getting Started/Getting the code





This page serves as a guide to test the GStreamer Video Stabilizer for the NVIDIA Jetson Board evaluation binary provided by RidgeRun.

Requesting the Evaluation Binary

In order to request an evaluation binary for a specific architecture, please contact us providing the following information:

  • Platform (i.e.: NVIDIA Jetson TX1/TX2, Xavier, Nano, NXP i.MX8, i.MX6 etc...)
  • gst-launch-1.0 --gst-version
  • uname -a



Features in the Evaluation

To help you test GstNvStabilize, RidgeRun can provide an evaluation version of the plug-in. The following table summarizes the features available in both the professional and evaluation version of the element.

Feature Professional Evaluation
GstNvStabilize Element Y Y
Unlimited Processing Time Y N(1)
Source Code Y N
Table 1. Features provided in the evaluation version

(1) The evaluation version will limit the streaming time of each pad to 1 minute after a 5 seconds delay (at 30fps).

Testing the Binary

Dependencies

GstNvStabilize has the following dependencies:

  • GStreamer 1.14 or greater[1]
    • libgstreamer1.0-0
    • libgstreamer-plugins-base1.0-0
  • CUDA 10.0 or greater[1] [2]
  • VisionWorks 1.6 or greater[1] [2]

Additionally, depending on your use case you may find it useful to have the following GStreamer elements installed:

  • v4l2src
  • nvvidconv
  • nvoverlaysink
  • nveglglessink
  • filesrc
  • qtdemux
  • h264parse
  • omxh264dec
  • videoconvert

Running the Binary

RidgeRun should've provided you with a shared object:

GStreamer Plug-in
libgstnvstabilize.so

In order to use the binary provided, export the location of the plugin in your environment.

export GST_PLUGIN_PATH=${GST_PLUGIN_PATH}:/path/to/evaluation/binary/plugin

where /path/to/evaluation/binary/plugin is the location in your file system where you have the plugin provided by RidgeRun. Additionally, you may just copy the binary into the standard GStreamer plug-in search path.

Finally, test that the plugin is being properly picked up by GStreamer by running:

gst-inspect-1.0 nvstabilize

You should see the inspect output for the evaluation binary.

Example Pipelines

Please refer to the next pages for reference pipelines.

Troubleshooting

The first level of debug to troubleshoot a failing evaluation binary is to inspect GStreamer debug output.

GST_DEBUG=2 gst-launch-1.0 videotestsrc ! nvstabilize ! fakesink

If the output doesn't help you figure out the problem, please contact support@ridgerun.com with the output of the GStreamer debug and any additional information you consider useful.

If the plug-in is not being recognized, please provide the output of the following command:

gst-inspect-1.0 path/to/your/evaluation/binary/libgstnvstabilize.so

CoreDump running nvstabilize

If you get a coredump issue when running Gst-NvStabilize like the following:

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
terminate called after throwing an instance of 'std::runtime_error'
what(): CUDA-capable GPU was not found.

Aborted (core dumped)

Please check if the Jetson TX2/Nano/Xavier was able to load the modules located at /lib/modules. This issue happens when the GPU modules have not been loaded.


Previous: User Guide Index Next: Getting Started/Getting the code



  1. 1.0 1.1 1.2 Lower versions should be supported but have not been tested
  2. 2.0 2.1 By default, JetPack 4.2 installs these versions. For instructions on how to manually install these packages refer to Jetson Nano Guide