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.
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.