Estou usando três webcams Logitech C920 com mjpg-streamer . A configuração funciona muito bem, mas acabei de perceber que ela não é dimensionável. Comecei a encontrar problemas de largura de banda ao aumentar a taxa de quadros do meu favorito de 5 FPS para 10 FPS e superior (o que seria mais ou menos equivalente a adicionar outra webcam). Basicamente, eu não percebi o 480Mbit / s o limite teórico foi por controlador USB 2.0; Eu pensei que era por porta. Isso me fez pensar que a publicidade teórica USB 2.0 velocidades como 480Mbit / s é enganosa, mas considerando que eu não li as especificações USB eu vou resolver com o fato de que era puramente uma suposição ingênua da minha parte.
Eu sei que o quadro em que eu montei isso, o Intel DN2800MT , tem apenas um controlador USB 2.0:
gw1 ~ # lsusb -t | grep ehci
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/8p, 480M
Mas também sei que minhas webcams Logitech C920 suportam decodificação h264 acelerada por hardware:
gw1 ~ # v4l2-ctl --list-formats
ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: 'YUYV'
Name : YUV 4:2:2 (YUYV)
Index : 1
Type : Video Capture
Pixel Format: 'H264' (compressed)
Name : H.264
Index : 2
Type : Video Capture
Pixel Format: 'MJPG' (compressed)
Name : MJPEG
Portanto, eu deveria ser capaz de criar uma solução alternando as webcams para o modo h264, pois acredito que usaria menos largura de banda (e, é claro, use um programa diferente para buscar as imagens, mas deixe isso para mim mais tarde. )
Dado tudo isso, existe alguma maneira de descobrir quanto da largura de banda total disponível de um controlador USB está sendo consumida atualmente? Isso simplesmente me ajudaria a colocar alguns números em minha experiência com essa configuração. Minha intuição é provavelmente, mas não é tão fácil assim. Se alguém puder lançar alguma luz sobre isso, eu adoraria saber.