Full screen video on Jetson Xavier with gstreamer

I have been experimenting with various gstreamer pipelines and renderers in order to display full-screen video with the Jetson Xavier. So far, I have not been able to accomplish this with the renderers I know about. Here is what I have tried; I am wondering if anyone has any ideas.

  1. nvoverlaysink--this sort of works for rendering on one screen at a time. However, there is a red bar that goes across the screen about 20% down from the top, and if the cursor is moved, the screen fills with red (vertically) from where the red bar is to where the cursor is. Also, I would like to render on two screens at once, but when doing that, both screens turn red and everything freezes. I then have to restart the Jetson. (Also this renderer is deprecated.)
  2. nveglglessink--this works well, with the exception that I do not know how to make the window completely full-screen
  3. nvdrmvideosink--I have not managed to get a working pipeline with this renderer. I have not tried the commands ``` sudo systemctl stop gdm && sudo loginctl terminate-seat seat0 ``` as recommended in the Accelerated Gstreamer User Guide; does anyone know if this is required first? What will happen if I run them?
  4. xvimagesink--to get this pipeline to work i have to do additional cpu image conversion, which makes the framerate too low

Any thoughts on how to do this, or even better, working examples, are very much appreciated.

For full screen rendering, please follow the steps to run nvdrmvideosink. It is ‘Direct Rendering Manager’ and requires top disable Ubuntu desktop.

Okay, thanks. I ran the commands in my post above to shut down Ubuntu desktop and I was able to use nvdrmvideosink in my pipeline over SSH. A couple of questions:

  • After I shut down gdm, is there a way to access to the command line, or do I have to log in remotely to start my pipeline?
  • If I try to restart gdm, I no longer have the mouse cursor. Is this a bug or is there a way to get the cursor back?

P.S. I think it would be helpful to add your explanations above to the Accelerated GStreamer User Guide.

If you need Ubuntu desktop, it may not be good to disable and enable it dynamically. nvdrmvideosink is designed for the case gdm is disabled.
You may try NvEglRenderer in tegra_multimedia_api. Please run 00_video_decode and check if it meets your requirement.