Gstreamer: nvoverlaysink does not open any window (while ximagesink does)


I am using gstreamer in my project on a Jetson Nano rev B01, but I have an issue with nvoverlaysink: it hangs after displaying
New clock: GstSystemClock
without opening the window with the video feed as it should.

gst-launch-1.0 videotestsrc ! ximagesink
works as intended (displaying the video test feed, after outputting New clock: GstSystemClock), while running
gst-launch-1.0 videotestsrc ! nvoverlaysink
output exactly the same lines, but does not open the window.

nvoverlaysink expects NVMM memory buffers, so you would insert nvvidconv for copying from CPU memory :

gst-launch-1.0 videotestsrc ! nvvidconv ! nvoverlaysink

Window-based sinks are nveglglesink and nv3dsink. Please try

gst-launch-1.0 videotestsrc ! nvvidconv ! 'video/x-raw(memory:NVMM)' ! nv3dsink


gst-launch-1.0 videotestsrc ! nvvidconv ! 'video/x-raw(memory:NVMM)' ! nvegltransform ! nveglglessink

@Honey_Patouceul Adding nvvidconv did not make any difference unfortunately.

@DaneLLL Both sinks work, thank you! I have questions about nvoverlaysink still:

I cannot find any resource telling that nvoverlaysink is not window-based, could you link a documentation please? (not doubting you, I am looking for documentation ^^)

I just discovered that it is deprecated in Jetson Linux Driver Package Release 32.1, according to this documentation, but the autovideosink still tries to use nvoverlaysink.

gst-launch-1.0 -v -m videotestsrc ! autovideosink
let me see this. At some point, there is the message:
Got message #26 from pad "autovideosink0-actual-sink-nvoverlay:sink" [...]

Are you using a DP monitor ?
I have no Nano for checking, but my guess would be that it works… on the wrong display.
You may try changing the display-id property of nvoverlaysink:

gst-launch-1.0 videotestsrc ! video/x-raw,format=NV12 ! nvvidconv ! 'video/x-raw(memory:NVMM),format=NV12' ! nvoverlaysink display-id=1

The document is gstreamer user guide. You have got the link.

The nvoverlaysink plugin is not deprecated on r32(Jetpack 4.x) releases. You may use it or try nvdrmvideosink.

@Honey_Patouceul Yes I am using a DP monitor (and it is the only monitor connected to my Nano). Setting the display-id to 1 makes the nvoverlaysink work.

But why does it not work without changing that display-id? Which monitor could display-id=0 (or whatever the default value is) correspond to?

@DaneLLL If I understand correctly, gstreamer elements starting with “nv” are made by Nvidia, so they should not be documented by gstreamer (and I cannot find them on their documentation)

By default display-id is 0 and it is HDMI. You may try with a HDMI TV.

Our gstreamer user guide is Tegra Linux Driver

You may also get details about a given gstreamer plugin with gst-inspect:

gst-inspect-1.0 nvoverlaysink
1 Like

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