Use gstreamer to write on hdmi sink without dektop environment

Hi,

I want to use the nx for an embedded solution without the Desktop/GUI. The plan is to show a “live-view” on a HDMI Monitor. I need a “fast” booting solution and can’t wait for Gnome to start. Im using opencv with gstreamer and python or c.

Also I don’t want to have a gui for security reasons

Any Ideas ? Best regards Martin

Hi,
You may try nvdrmvideosink plugin. Please refer to examples in gstreamer user guide:
https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/accelerated_gstreamer.html#wwpID0E0UP0HA

1 Like

thank you for this solution, works pretty nice:

gst-launch-1.0 filesrc location=1.mp4 ! qtdemux name=demux ! h264parse ! nvv4l2decoder ! nvdrmvideosink -e

with python3 /opencv i got: GStreamer warning: error opening writer pipeline: syntax error

ret, frame_read = cap.read()
frame_height, frame_width, _ = frame_read.shape 

gst_str = "appsrc ! videoconvert ! qtdemux name=demux ! h264parse ! nvv4l2decoder ! nvdrmvideosink -e "  
stream = cv2.VideoWriter(gst_str, 0, 25, (frame_width, frame_height), True)  

while True:
    ret, frame_read = cap.read() 
    stream.write(frame_read)

any ideas how to improve my pipeline ?

okay this pipeline works so far, im happy with it !

gst_str = "appsrc ! videoconvert ! nvvidconv ! video/x-raw(memory:NVMM),width=1920,height=1080,format=RGBA ! 
 nvdrmvideosink sync=false "

But if there any ideas how to improve this pipeline, i would be happy for some input

Best regards Martin

Hi,
There is BGR to RGBA conversion in videoconvert plugin, and copying data from CPU buffer to MVMM buffer in nvvidconv plugin. These utilize CPU usage so suggest execute sudo nvpmodel -m 2 and sudo tegrastats, to enable 6 CPU cores at 1.4GHz.