alliedvision / gst-vimbasrc

Official vimbasrc element for use of Vimba with GStreamer
Other
10 stars 9 forks source link

Gst-launch not displaying camera capture #13

Closed PAmerikanos closed 1 year ago

PAmerikanos commented 1 year ago

Greetings all,

We are trying to run a Gstreamer pipeline on an NVidia Jetson NX ARM64 device with feeds from one and two Allied Vision 1800 C-319c cameras on the CSI interface. The versions we are running are:

The command we are using to initialize the gst pipeline is:

gst-launch-1.0 vimbasrc camera=DEV_00012C017XXX  settingsfile=AlliedVision_camera_config.xml ! videoconvert ! ximagesink

This opens up a gst-launch window which rarely displays the camera stream (with high latency), but most often displays a blank/frozen image. We are using gst-debug:vimbasrc which displays the following warning and errors:

0:00:06.613368322 18906   0x557a142000 DEBUG               vimbasrc gstvimbasrc.c:1071:gst_vimbasrc_get_caps:<vimbasrc0> returning caps: video/x-raw, format=(string){ GRAY8, GRAY16_LE, GRAY16_LE, RGB, BGR, IYU2, IYU1, UYVY }, width=(int)2064, height=(int)1544, framerate=(fraction)0/1; video/x-bayer, format=(string){ rggb }, width=(int)2064, height=(int)1544, framerate=(fraction)0/1
LIBCSI: 14:41:02.042247 L:02807 P:18906 T:18912  libcsi_start_stream ERROR: Number of announced frames insufficient. Required: 1. Announced: 0
LIBCSI: 14:41:02.042789 L:02952 P:18906 T:18912  libcsi_stop_stream ERROR: Invalid device state.

We have successfully run gst-inspect-1.0 on vimbasrc and can see its properties. Also, we have successfully run the Vimba Viewer which allowed us to play with the camera's settings and export the XMLs. Finally, we have run a similar Gstreamer pipeline (as above) with V4L2 instead of vimbasrc, even though it did not allow us to set the camera properties and the image was very dark.

We would like to ask for some assistance with troubleshooting. Is this possibly a driver/library mismatch, may the Forecr kernel patch be broken, or is the framerate too high for the device's bandwidth?

Thank you for your time,

Teresa-AlliedVision commented 1 year ago

Hello, you can check a few things:

  1. Include queue in the pipeline, as seen in the examples
  2. Add num-buffers=1 (or more) after camera=DEV_00012C017XXX
  3. Make sure to use a pixel format that is supported, try setting the camera to Mono8 or BayerRG8 Hope that helps, Teresa
PAmerikanos commented 1 year ago

Teresa, thank you for the reply.

We tried all three of the above, but we are still facing the same errors. Is there anything else we could check? Should we approach tech support directly, perhaps?

Thank you

Teresa-AlliedVision commented 1 year ago

Hi, If V4L2 works well, why not use that as the source? Vmbsrc was originally developed for USB cameras, so there could be a compatibility issue here. If you need the settings feature with the XML file, I would recommend setting the necessary features via GenICam Features with the API or the Viewer and then save it into a UserSet instead. This UserSet can then be set to be the default and will load when the camera is starting up. Userset_Alvium USB Cheers, Teresa

PAmerikanos commented 1 year ago

Dear Teresa,

Thank you very much, this solution worked great and solved us multiple problems we were facing.

Cheers

Teresa-AlliedVision commented 1 year ago

Hi, good to hear that the issues could be resolved.