gstCamera -- could not find v4l2 device

Hello Sirs.
I am currently using the jetson nano platform, I need to connect two usb cameras. The problem is that the system assigns a different address to each camera each time and I need the addresses to be fixed. I have created udev rules to assign symbolic links. But there is something wrong when establishing the connection. Here is the output of the program:

[gstreamer] initialized gstreamer, version 1.14.5.0
[gstreamer] gstCamera – attempting to create device v4l2:///dev/video9
[gstreamer] gstCamera – found v4l2 device: Microsoft® LifeCam VX-2000
[gstreamer] v4l2-proplist, device.path=(string)/dev/video0, udev-probed=(boolean)false, device.api=(string)v4l2, v4l2.device.driver=(string)uvcvideo, v4l2.device.card=(string)“Microsoft\302\256\ LifeCam\ VX-2000”, v4l2.device.bus_info=(string)usb-70090000.xusb-2.4, v4l2.device.version=(uint)264649, v4l2.device.capabilities=(uint)2216689665, v4l2.device.device_caps=(uint)69206017;
[gstreamer] gstCamera – could not find v4l2 device /dev/video9
[gstreamer] gstCamera – device discovery failed, but /dev/video9 exists
[gstreamer] support for compressed formats is disabled
[gstreamer] gstCamera pipeline string:
[gstreamer] v4l2src device=/dev/video9 ! appsink name=mysink
[gstreamer] gstCamera successfully created device v4l2:///dev/video9
[video] created gstCamera from v4l2:///dev/video9.

The camera is an old webcam that I use for testing, but I have tried others and the result is the same.
I have not been able to find a solution for this problem.
Kind regards,
Antonio.

Hi @agmanso, the reason this issues the warning, is because it uses GStreamer to enumerate the V4L2 devices and their formats, so that it can automatically select the compression codec to use (if your camera offers that). Two things you can try:

  1. If you still want to use compressed format from the camera (which is typically used for USB2 cameras because they don’t have the connection bandwidth to transmit full-resolution full-framerate raw video), then you can manually select the desired codec/resolution to use with the --input-codec, --input-width, and --input-height arguments (see here for more info)

  2. Instead of launching with /dev/video9 use $(readlink /dev/video9) on the command line (this will substitute /dev/video0 or whatever the udev rule is currently linking to)

Thank you very much for your answer. Now it works.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.