Gstream not work in AGX Orgin But ok in Xavier NX

Hi, All

I used the command bellow to read the image from one usb camera and display it to the hdmi screen.

sudo gst-launch-1.0 v4l2src device=/dev/video8 ! image/jpeg,width=640,height=360,framerate=10/1 ! jpegdec ! videoconvert ! autovideosink

It works in the Xavier NX, but not works when I execute in the AGX Orgin:

==============
sudo gst-launch-1.0 v4l2src device=/dev/video8 ! image/jpeg,width=640,height=360,framerate=10/1 ! jpegdec ! videoconvert ! autovideosink

Setting pipeline to PAUSED …

error: XDG_RUNTIME_DIR not set in the environment.

Using winsys: x11

Using winsys: x11

Pipeline is live and does not need PREROLL …

Got context from element ‘autovideosink0-actual-sink-nveglgles’: gst.egl.EGLDisplay=context, display=(GstEGLDisplay)NULL;

Setting pipeline to PLAYING …

New clock: GstSystemClock

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)

Execution ended after 0:00:00.519405644

Setting pipeline to PAUSED …

Setting pipeline to READY …

Setting pipeline to NULL …
(gst-launch-1.0:45014): GStreamer-CRITICAL **: 20:04:13.113: gst_object_unref: assertion ‘((GObject *) object)->ref_count > 0’ failed

===============

Cloud you help me find why , and how to change it ?

Hi,
Please share information of the camera source for reference:

$ v4l2-ctl -d /dev/video8 --list-formats-ext

And please try this command on Orin:

$ export DISPLAY=:0(or 1)
$ gst-launch-1.0 v4l2src device=/dev/video8 ! image/jpeg,width=640,height=360,framerate=10/1 ! jpegdec ! videoconvert ! xvimagesink

See if it works by linking to xvimagesink

Now I have replaced the autovideosink with nvdrmvideosink, and the nvdrmvideosink works.
But I still want to know why the autovideosink not work.
I run the command in one remote ssh terminal, not in the desktop,so I think xvimagesink will not work. I will try xvimagesink in the desktop later.

v4l2-ctl -d /dev/video8 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
	Type: Video Capture

	[0]: 'YUYV' (YUYV 4:2:2)
		Size: Discrete 640x480
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.042s (24.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.067s (15.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.133s (7.500 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 176x144
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.042s (24.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.067s (15.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.133s (7.500 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 320x240
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.042s (24.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.067s (15.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.133s (7.500 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 424x240
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.042s (24.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.067s (15.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.133s (7.500 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 640x360
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.042s (24.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.067s (15.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.133s (7.500 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 848x480
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.042s (24.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.067s (15.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.133s (7.500 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 960x540
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.042s (24.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.067s (15.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.133s (7.500 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 1280x720
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.042s (24.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.067s (15.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.133s (7.500 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 1600x896
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.042s (24.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.067s (15.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.133s (7.500 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 1920x1080
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.042s (24.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.067s (15.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.133s (7.500 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 2304x1296
			Interval: Discrete 0.200s (5.000 fps)
	[1]: 'MJPG' (Motion-JPEG, compressed)
		Size: Discrete 640x480
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.042s (24.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.067s (15.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.133s (7.500 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 176x144
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.042s (24.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.067s (15.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.133s (7.500 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 320x240
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.042s (24.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.067s (15.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.133s (7.500 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 424x240
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.042s (24.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.067s (15.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.133s (7.500 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 640x360
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.042s (24.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.067s (15.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.133s (7.500 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 848x480
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.042s (24.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.067s (15.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.133s (7.500 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 960x540
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.042s (24.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.067s (15.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.133s (7.500 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 1280x720
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.042s (24.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.067s (15.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.133s (7.500 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 1600x896
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.042s (24.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.067s (15.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.133s (7.500 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 1920x1080
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.042s (24.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.067s (15.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.133s (7.500 fps)
			Interval: Discrete 0.200s (5.000 fps)
	[2]: 'NV12' (Y/CbCr 4:2:0)
		Size: Discrete 640x480
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.042s (24.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.067s (15.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.133s (7.500 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 640x360
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.042s (24.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.067s (15.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.133s (7.500 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 1280x720
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.042s (24.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.067s (15.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.133s (7.500 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 1920x1080
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.042s (24.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.067s (15.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.133s (7.500 fps)
			Interval: Discrete 0.200s (5.000 fps)

Hi,
You may set this:

$ export GST_DEBUG=*FACTORY*:4

And check what sink plugin is picked by autovideosink

On Jetson platforms, we would suggest use nv3dsink, nveglglessink, nvdrmvideosink.
For using nvdrmvideosink, Ubuntu desktop has to be disabled first.

In order to use nvdrmvideosink I has executed the commands bellow as descripted in the guide.

sudo systemctl stop gdm
sudo loginctl terminate-seat seat0

For Jetson Xavier use
$ sudo modprobe tegra_udrm modeset=1

For Jetson Orin use
$ sudo modprobe nvidia-drm modeset=1

If now I want to use autovideosink , should I start gdm?

The commands using nveglglessink,xvimagesink or nv3dsinkbellow all work if execute in the terminal opened in the desktop.

gst-launch-1.0 v4l2src device=/dev/video8 ! image/jpeg,width=640,height=360,framerate=10/1 ! jpegdec ! videoconvert ! xvimagesink
gst-launch-1.0 v4l2src device=/dev/video8 ! image/jpeg,width=640,height=360,framerate=10/1 ! jpegdec ! videoconvert ! nveglglessink 
gst-launch-1.0 v4l2src device=/dev/video8 ! image/jpeg,width=640,height=360,framerate=10/1 ! jpegdec ! videoconvert ! nv3dsink 

But the nveglglessink/nveglglessink are not suitable for me,because I want to display the stream in the hdmi device without logging into the desktop.

The result after export GST_DEBUG:

export GST_DEBUG=*FACTORY*:4

root@tegra-ubuntu:/home/nvidia# gst-launch-1.0 v4l2src device=/dev/video8 ! image/jpeg,width=640,height=360,framerate=10/1 ! jpegdec ! videoconvert ! autovideosink

0:00:00.087572690 3075 0xaaaad4fbe0c0 INFO **GST_ELEMENT_FACTORY gstelementfactory.c:363:gst_element_factory_create:** creating element "v4l2src"

0:00:00.088619540 3075 0xaaaad4fbe0c0 INFO **GST_ELEMENT_FACTORY gstelementfactory.c:363:gst_element_factory_create:** creating element "jpegdec"

0:00:00.088912181 3075 0xaaaad4fbe0c0 INFO **GST_ELEMENT_FACTORY gstelementfactory.c:363:gst_element_factory_create:** creating element "videoconvert"

0:00:00.089293526 3075 0xaaaad4fbe0c0 INFO **GST_ELEMENT_FACTORY gstelementfactory.c:363:gst_element_factory_create:** creating element "autovideosink"

0:00:00.089782647 3075 0xaaaad4fbe0c0 INFO **GST_ELEMENT_FACTORY gstelementfactory.c:360:gst_element_factory_create:** creating element "fakesink" named "fake-video-sink"

0:00:00.089928664 3075 0xaaaad4fbe0c0 INFO **GST_ELEMENT_FACTORY gstelementfactory.c:363:gst_element_factory_create:** creating element "pipeline"

0:00:00.090016760 3075 0xaaaad4fbe0c0 INFO **GST_ELEMENT_FACTORY gstelementfactory.c:363:gst_element_factory_create:** creating element "capsfilter"

Setting pipeline to PAUSED ...

0:00:00.093228864 3075 0xaaaad4fbe0c0 INFO **GST_ELEMENT_FACTORY gstelementfactory.c:360:gst_element_factory_create:** creating element "xvimagesink" named "autovideosink0-actual-sink-xvimage"

0:00:00.095699973 3075 0xaaaad4fbe0c0 INFO **GST_ELEMENT_FACTORY gstelementfactory.c:360:gst_element_factory_create:** creating element "glimagesink" named "autovideosink0-actual-sink-glimage"

0:00:00.096017222 3075 0xaaaad4fbe0c0 INFO **GST_ELEMENT_FACTORY gstelementfactory.c:363:gst_element_factory_create:** creating element "glupload"

0:00:00.096143623 3075 0xaaaad4fbe0c0 INFO **GST_ELEMENT_FACTORY gstelementfactory.c:363:gst_element_factory_create:** creating element "glcolorconvert"

0:00:00.096251687 3075 0xaaaad4fbe0c0 INFO **GST_ELEMENT_FACTORY gstelementfactory.c:363:gst_element_factory_create:** creating element "glcolorbalance"

0:00:00.121526243 3075 0xaaaad4fbe0c0 INFO **GST_ELEMENT_FACTORY gstelementfactory.c:360:gst_element_factory_create:** creating element "kmssink" named "autovideosink0-actual-sink-kms"

0:00:01.079052541 3075 0xaaaad4fbe0c0 INFO **GST_ELEMENT_FACTORY gstelementfactory.c:360:gst_element_factory_create:** creating element "nv3dsink" named "autovideosink0-actual-sink-nv3d"

0:00:01.079831423 3075 0xaaaad4fbe0c0 INFO **GST_ELEMENT_FACTORY gstelementfactory.c:360:gst_element_factory_create:** creating element "nveglglessink" named "autovideosink0-actual-sink-nveglgles"

Using winsys: x11

Using winsys: x11

Pipeline is live and does not need PREROLL ...

Got context from element 'autovideosink0-actual-sink-nveglgles': gst.egl.EGLDisplay=context, display=(GstEGLDisplay)NULL;

Setting pipeline to PLAYING ...

New clock: GstSystemClock

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)

Execution ended after 0:00:00.559307710

Setting pipeline to NULL ...

0:00:02.071347018 3075 0xaaaad4fbe0c0 INFO **GST_ELEMENT_FACTORY gstelementfactory.c:360:gst_element_factory_create:** creating element "fakesink" named "fake-video-sink"

(gst-launch-1.0:3075): GStreamer-**CRITICAL** **: 16:22:13.095: gst_object_unref: assertion '((GObject *) object)->ref_count > 0' failed

So the message means it tried many sinks,such as xvimagesink/glimagesink/kmssink/nv3dsink/nveglglessink and chooses fakesink at last?

Then I run the same command in the Xavier NX, and I found it choose “nvoverlaysink”.

gst-launch-1.0 v4l2src device=/dev/video0 ! image/jpeg,width=640,height=360,framerate=10/1 ! jpegdec ! videoconvert ! autovideosink -e
0:00:00.239081974 13992   0x55b4a47380 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:361:gst_element_factory_create: creating element "v4l2src"
0:00:00.244242280 13992   0x55b4a47380 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:361:gst_element_factory_create: creating element "jpegdec"
0:00:00.245388254 13992   0x55b4a47380 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:361:gst_element_factory_create: creating element "videoconvert"
0:00:00.247276685 13992   0x55b4a47380 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:361:gst_element_factory_create: creating element "autovideosink"
0:00:00.249152189 13992   0x55b4a47380 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:359:gst_element_factory_create: creating element "fakesink" named "fake-video-sink"
0:00:00.249774743 13992   0x55b4a47380 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:361:gst_element_factory_create: creating element "pipeline"
0:00:00.250189844 13992   0x55b4a47380 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:361:gst_element_factory_create: creating element "capsfilter"
Setting pipeline to PAUSED ...
0:00:00.291381446 13992   0x55b4a47380 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:359:gst_element_factory_create: creating element "nvoverlaysink" named "autovideosink0-actual-sink-nvoverlay"
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock

so I tried replace autovideosink as nvoverlaysink and run in the AGX Orin.

sudo gst-launch-1.0 v4l2src device=/dev/video8 ! image/jpeg,width=640,height=360,framerate=10/1 ! jpegdec ! videoconvert ! nvoverlaysink

But get WARNING: erroneous pipeline: no element “nvoverlaysink”, could I also use nvoverlaysink in AGX Orin?

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.