GStreamer Video Capture Validation
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
PAUSEDtoPLAYING - 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

Example placeholder showing the expected SMPTE preview window rendered through the NVIDIA accelerated display path.
Important Notes
nveglglessinkrequires 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:
nvvidconvshould 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