You are not logged in.
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 deviceWhen 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
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
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 : 0v4l2-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