Jump to content

GStreamer Video Capture Validation

From RidgeRun Developer Wiki

Follow us on: YouTube Twitter LinkedIn Email Share this page

Share This Page

Preferred Partner Logo 3 Partner Program Banner



Video Source Validation

This section validates the basic video pipeline used throughout the multimedia examples in this guide.

Instead of relying on a physical camera, the examples use videotestsrc to generate a synthetic video pattern. This makes the examples easy to reproduce on almost any Jetson platform, including systems running through SSH, serial console, or headless configurations without camera hardware attached.

The goal is to validate the generic video path before introducing recording, accelerated codecs, or streaming pipelines.

Before continuing, confirm that the multimedia environment described in Software Environment is already available on the target system.

What This Section Validates

The examples below exercise several parts of the NVIDIA multimedia stack, including:

  • Synthetic video generation
  • Hardware accelerated buffer conversion
  • Display rendering
  • EGL based output
  • Headless pipeline execution
  • Basic GStreamer negotiation

Verifying the Required Plugins

Before running the examples, verify that the required plugins are available:

gst-inspect-1.0 videotestsrc
gst-inspect-1.0 nvvidconv
gst-inspect-1.0 nvegltransform
gst-inspect-1.0 nveglglessink
gst-inspect-1.0 fakesink

What to expect:

  • Each command should print plugin information
  • None of the commands should return:
No such element or plugin

If one or more plugins are missing, the multimedia environment is incomplete and the remaining examples should not be used yet.

Synthetic Video Preview

This example validates live video generation together with graphical rendering.

gst-launch-1.0 -e -v videotestsrc is-live=true pattern=smpte \
  ! video/x-raw,width=1920,height=1080,framerate=30/1,format=I420 \
  ! nvvidconv ! 'video/x-raw(memory:NVMM),format=RGBA' \
  ! queue ! nvegltransform ! nveglglessink sync=0

What to expect:

  • The pipeline should move from PAUSED to PLAYING
  • A SMPTE test pattern window should appear
  • The terminal should show successful caps negotiation
  • The pipeline should continue running until interrupted manually

Expected terminal output:

Pipeline is live and does not need PREROLL
Setting pipeline to PLAYING
New clock: GstSystemClock
SMPTE test output
Synthetic Video Preview - SMPTE test output

Example placeholder showing the expected SMPTE preview window rendered through the NVIDIA accelerated display path.

Important Notes

  • nveglglessink requires an active graphical session
  • These examples should be executed locally on the target device when graphical rendering is required
  • Systems connected only through SSH should use the headless example instead

Color Conversion Validation

This example validates the conversion path through:

nvvidconv

using a different synthetic pattern.

gst-launch-1.0 -e -v videotestsrc is-live=true pattern=ball \
  ! video/x-raw,width=1920,height=1080,framerate=30/1,format=I420 \
  ! nvvidconv ! 'video/x-raw(memory:NVMM),format=RGBA' \
  ! queue ! nvegltransform ! nveglglessink sync=0

This example helps validate:

  • Hardware accelerated color conversion
  • Buffer negotiation between plugins
  • GPU based processing paths
  • EGL rendering compatibility

What to expect:

  • nvvidconv should negotiate successfully
  • The animated test pattern should render correctly
  • The terminal should display negotiated RGBA caps

Expected output typically includes:

... caps = video/x-raw(memory:NVMM), format=(string)RGBA ...

Headless Validation

This example validates the synthetic video path without requiring a graphical session.

gst-launch-1.0 -e -v videotestsrc is-live=true num-buffers=300 pattern=smpte \
  ! video/x-raw,width=1920,height=1080,framerate=30/1,format=I420 \
  ! nvvidconv ! 'video/x-raw(memory:NVMM),format=NV12' \
  ! queue ! fakesink

This is the preferred validation method when:

  • The platform is accessed only through SSH
  • No display is connected
  • Remote bring up is being performed
  • Only basic multimedia validation is required

What to expect:

  • The pipeline should process all buffers successfully
  • The command should terminate cleanly
  • No graphical output should appear
  • The terminal should end with:
Got EOS from element "pipeline0"
Execution ended after ...

Common Issues

Missing Plugins

If any of the following commands fail:

gst-inspect-1.0 nvvidconv
gst-inspect-1.0 nveglglessink

the multimedia environment is incomplete, and the image configuration should be reviewed before continuing.

No Display Window Appears

If graphical pipelines execute, but no preview window appears:

  • Verify that X11 is running
  • Confirm that a graphical session is active
  • Make sure the target display is connected correctly
  • Use the headless pipeline if working remotely over SSH

Pipeline Negotiation Errors

If negotiation errors appear during execution:

  • Verify the caps used in the pipeline
  • Confirm that the NVIDIA accelerated plugins are installed
  • Make sure the image was generated using the multimedia enabled configuration

Additional Resources



Cookies help us deliver our services. By using our services, you agree to our use of cookies.