Hello,
I am experiencing issues with the nvjpegdec
element in my GStreamer pipeline on an NVIDIA Jetson device. I am trying to display a live video feed from a USB camera that operates at 120 FPS with a resolution of 1280x800 in MJPEG format. While jpegdec
works without any problems, using nvjpegdec
for hardware-accelerated decoding fails with a “not-negotiated” error.
Here are the details of my setup:
- Device: NVIDIA Jetson Orin Nano developer Kit 8 GB
- Operating System: 20.04.6 LTS (Focal Fossa)
- GStreamer Version: gst-launch-1.0 version 1.16.3
- Camera Details: USB Arducam Camera, 120 FPS, 1280x800, MJPEG format
This is the pipeline that works with jpegdec
:
gst-launch-1.0 v4l2src device=/dev/video0 ! ‘image/jpeg,width=1280,height=800,framerate=120/1’ ! jpegdec ! videoconvert ! autovideosink
However, when I switch to nvjpegdec
, I encounter errors. Here’s the non-working pipeline:
gst-launch-1.0 v4l2src device=/dev/video0 ! ‘image/jpeg,width=1280,height=800,framerate=120/1’ ! nvjpegdec ! videoconvert ! autovideosink
The error message I receive is:ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data stream error.
Additional debug info:
gstbasesrc.c(3072): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
streaming stopped, reason not-negotiated (-4)
I’ve tried various troubleshooting steps, including adding queues, explicitly defining formats, and using different NVIDIA-specific plugins, but none have resolved the issue.
Could anyone provide insights or suggestions on how to resolve this “not-negotiated” error with nvjpegdec
? Any help or guidance would be greatly appreciated!
Thank you!