I have faced some nvcompositor issue. I need to composite two video streams from two USB camera.
Below is my pipeline:
$ gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format=NV12,width=640,height=480 ! videoconvert ! video/x-raw,format=RGBA ! queue ! nvcompositor name=comp sink_0::xpos=0 sink_0::ypos=0 sink_0::width=640 sink_0::height=480 sink_0::xpos=640 sink_0::ypos=0 sink_1::width=640 sink_1::height=480 ! nv3dsink v4l2src device=/dev/video1 ! video/x-raw,format=YUY2,width=640,height=480 ! videoconvert ! video/x-raw,format=RGBA ! queue ! comp. Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Setting pipeline to PLAYING ... New clock: GstSystemClock Redistribute latency... ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data stream error. Additional debug info: gstbasesrc.c(3055): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: streaming stopped, reason not-negotiated (-4) Execution ended after 0:00:00.608132989 Setting pipeline to PAUSED ... Setting pipeline to READY ... Setting pipeline to NULL ... Freeing pipeline ...
If I replace the nv3dsink by nvoverlaysink, the pipeline is working, but I can not use nvoverlaysink since nvoverlaysink does not have window.
And for some reason from my app side the sinkpad of nvcompositor need to be system memory i.e.“video/x-raw, format=RGBA” , rather than NVMM “video/x-raw(memory:NVMM)”.
Could you help? Thanks in advance.