mjhowell / gst-zeromq

GStreamer source and sink elements using ZeroMQ sockets
GNU General Public License v2.0
22 stars 20 forks source link

ZeroMQ and RGB #6

Open VLongobardi opened 1 year ago

VLongobardi commented 1 year ago

Hi all, Is it possible to run a gst pipeling using RGB as video/x-raw format? Or just I420 is supported? I am trying to use RGB instead of I420. On the publisher pipeline i get no error, but executing the subscriver pipeline I get the following error:

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstCapsFilter:capsfilter0: Filter caps do not completely specify the output format
Additional debug info:
gstcapsfilter.c(453): gst_capsfilter_prepare_buf (): /GstPipeline:pipeline0/GstCapsFilter:capsfilter0:
Output caps are unfixed: EMPTY
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...

Publisher pipeline: gst-launch-1.0 vimbasrc camera=DEV_XXX settingsfile=1216_1936.xml ! video/x-raw, format=RGB, width=1936, height=1216 ! queue ! zmqsink endpoint=tcp://192.168.1.10:5555

Subscriber pipeline: gst-launch-1.0 zmqsrc endpoint=tcp://192.168.1.10:5555 ! video/x-raw, format=RGB, width=1936, height=1216, framerate=30/1 ! queue ! autovideosink

The fact is that I need an RGB output and if I try to convert I420 to RGB I get the same error. In this case publisher and subscriber are this:

Publisher pipeline: gst-launch-1.0 vimbasrc camera=DEV_XXX settingsfile=1216_1936.xml ! video/x-raw,format=RGB ! videoconvert ! video/x-raw, format=I420, width=1936, height=1216 ! queue ! zmqsink endpoint=tcp://192.168.1.10:5555

Subscriber pipeline: gst-launch-1.0 zmqsrc endpoint=tcp://192.168.1.10:5555 ! video/x-raw, format=I420, width=1936, height=1216, framerate=30/1 ! videoconvert ! video/x-raw,format=RGB ! queue ! autovideosink

Do you have any idea, please?

mjhowell commented 1 year ago

Hi... it's a long time since I worked on this but I wouldn't expect the zmqsink/src stuff cares about the details of the caps like I420 vs RGB. I'd suggest seeing if you can get a similar pub/sub pipeline to work using udpsink/udpsrc with a single subscriber. That might highlight some caps detail you need to straighten out for the pub and sub to agree. Then try same with zmqsink/src. My 2 cents.