Running the GstQtOverlay plugin without Graphics Server
| GStreamer Qt Overlay |
|---|
| Overview |
| Getting Started |
| Examples |
| Performance |
| Similar Solutions |
| Troubleshooting |
| FAQ |
| Contact Us |
|
Running QTOverlay using EGL
Many embedded systems run without a graphics server. The most common graphics servers would be X11 (Xorg) or Wayland (Weston). QtOverlay may run without a graphics server by using purely EGL.
To run without a graphics server set the following variables:
export QT_QPA_EGLFS_INTEGRATION=none export QT_QPA_PLATFORM=eglfs
For example, the following pipeline will run in a Jetson platform without any graphics server running:
QT_QPA_EGLFS_INTEGRATION=none QT_QPA_PLATFORM=eglfs GST_DEBUG=2 gst-launch-1.0 videotestsrc ! nvvidconv ! qtoverlay qml=main.qml ! nvvidconv ! video/x-raw\(memory:NVMM\),format=I420 ! nvoverlaysink
Running QTOverlay on Jetson through the DRM
In minimal Jetson setups, it might be preferable to have a completely disabled Graphics Server and instead use the Direct Rendering Manager (DRM) to interact with a display device. QTOverlay can be used with the Jetson DRM to render Gstreamer output on a display device. To test QTOverlay through the Jetson DRM follow these steps:
1. Setup your Jetson device with a connected display.
2. Connect to your Jetson device through SSH
3. Stop the Ubuntu display manager
sudo service gdm stop
4. Make sure that the display environment variable is unset
unset DISPLAY
5. Run the Jetson DRM driver
sudo modprobe nvidia-drm modeset=1
7. The device should now be set to run the NVidia DRM Video Sink to render graphics through the DRM. The following pipeline is an example to test QTOverlay with the DRM. Make sure to run this example from the root directory of the QTOverlay project:
QT_QPA_EGLFS_INTEGRATION=none QT_QPA_PLATFORM=eglfs gst-launch-1.0 videotestsrc ! nvvidconv ! video/x-raw,width=1920,height=1080 ! qtoverlay qml=gst-libs/gst/qt/main.qml ! nvvidconv ! nvdrmvideosink
(Optional) 8. QTOverlay User Input interaction can also be used with DRM. The following pipeline is an example to use User Input. Run this example from the examples/dashboard directory and make sure to connect a keyboard and mouse to your Jetson device to test the user interaction:
QT_QPA_EGLFS_INTEGRATION=none QT_QPA_PLATFORM=eglfs gst-launch-1.0 filesrc location=dashcam.mp4 ! qtdemux name=demux demux.video_0 ! h264parse ! nvv4l2decoder ! nvvidconv ! videoscale method=0 add-borders=false ! video/x-raw,width=1920,height=1080 ! qtoverlay qml=main_dashboard.qml enable-ui-events=true ! nvvidconv ! nvdrmvideosink