You are not logged in.

#1 2022-07-31 22:34:02

rajhlinux
Member
Registered: 2022-07-08
Posts: 58

USB 3.0 Controller: "/dev/video2: No space left on device"

I have six USB 3.0 webcams of the same brand and model.

How can I use them with V4L2?

For some reason I'm getting this error:

/dev/video2: No space left on device

When trying to record the 2nd webcam (I have 4 more webcams to deal with).

Google says that it has to do with the USB controller not having enough space...

like seriously?

How can I reduce bandwidth or "space" (buffer space?) so that all USB 3.0 webcams can be used?

Thanks

Offline

#2 2022-08-01 10:23:19

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 15,060

Re: USB 3.0 Controller: "/dev/video2: No space left on device"

https://wiki.archlinux.org/title/Webcam … mmand_line shows how to get info about the devices.

near the bottom of that page you'll see

When running multiple webcams on a single USB bus, they may saturate the bandwidth of the USB bus and not work properly.

That section also mentions  a tool that can be used to troubleshoot .


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#3 2022-08-01 20:00:22

rajhlinux
Member
Registered: 2022-07-08
Posts: 58

Re: USB 3.0 Controller: "/dev/video2: No space left on device"

Hello, thanks for the reply.

How can I set options or parameters such that I can use multiple USB cams in using less bandwidth?

Here is the USB device:

$ v4l2-ctl --all --device /dev/video0:

Driver Info:
        Driver name      : uvcvideo
        Card type        : USB3.0 HD Video Capture: USB3.0
        Bus info         : usb-0000:04:00.0-2
        Driver version   : 5.18.12
        Capabilities     : 0x84a00001
                Video Capture
                Metadata Capture
                Streaming
                Extended Pix Format
                Device Capabilities
        Device Caps      : 0x04200001
                Video Capture
                Streaming
                Extended Pix Format
Media Driver Info:
        Driver name      : uvcvideo
        Model            : USB3.0 HD Video Capture: USB3.0
        Serial           : HU123450
        Bus info         : usb-0000:04:00.0-2
        Media version    : 5.18.12
        Hardware revision: 0x00000328 (808)
        Driver version   : 5.18.12
Interface Info:
        ID               : 0x03000002
        Type             : V4L Video
Entity Info:
        ID               : 0x00000001 (1)
        Name             : USB3.0 HD Video Capture: USB3.0
        Function         : V4L2 I/O
        Flags            : default
        Pad 0x01000007   : 0: Sink
          Link 0x02000010: from remote pad 0x100000a of entity 'Processing 3' (Video Pixel Formatter): Data, Enabled, Immutable
Priority: 2
Video input : 0 (Camera 1: ok)
Format Video Capture:
        Width/Height      : 1920/1080
        Pixel Format      : 'MJPG' (Motion-JPEG)
        Field             : None
        Bytes per Line    : 0
        Size Image        : 2073600  [Megapixels: 2.1 MP (2,073,600 pixels)]
        Colorspace        : sRGB
        Transfer Function : Rec. 709
        YCbCr/HSV Encoding: ITU-R 601
        Quantization      : Default (maps to Full Range)
        Flags             :
Crop Capability Video Capture:
        Bounds      : Left 0, Top 0, Width 1920, Height 1080
        Default     : Left 0, Top 0, Width 1920, Height 1080
        Pixel Aspect: 1/1
Selection Video Capture: crop_default, Left 0, Top 0, Width 1920, Height 1080, Flags:
Selection Video Capture: crop_bounds, Left 0, Top 0, Width 1920, Height 1080, Flags:
Streaming Parameters Video Capture:
        Capabilities     : timeperframe
        Frames per second: 60.000 (60/1)
        Read buffers     : 0
v4l2-ctl --list-formats-ext

ioctl: VIDIOC_ENUM_FMT
        Type: Video Capture

        [0]: 'MJPG' (Motion-JPEG, compressed)
                Size: Discrete 1920x1080
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 1280x720
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 960x540
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 800x450
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                Size: Discrete 640x360
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)

I have six of these, all are the same brand and model.

I am using FFMPEG and it throws the "no space left" error when trying to load and transcode the 2nd webcam.
I am using 720P at 30FPS, I do not understand how this is giving that error, I am assuming my required bandwidth for two USB streams is way less than the USB bus capabilities.

Seems like this is some driver, hardware, and OS related issue and requires some tweaking. Seems everyone who are doing machine vision under Linux is also having the exact same issue.

All USB ports needs to be utilized, can not improvise in using a different USB port.

I think the best solution is to just simply buy a multiple USB port PCIe card where each USB port has it's own dedicated USB controller/memory, sadly I do not have any 16x PCIe slots available to be used since I am using two GPUs for transcoding and I only have one PCIe left which is a X1 bus bandwidth, not sure if this is enough for three to four 1080P @ 30FPS MJPG streams (highly doubt it). My motherboard is an old one, which uses PCIe Gen 2.

I'll take a look at the link you mentioned.

Thanks

Offline

Board footer

Powered by FluxBB