Dzisiaj użyłem narzędzia WireShark + USBPcaps do przetestowania ruchu na magistrali USB podczas wideo-połączenia Skype na dwóch kamerkach wideo:
- Logitech C210, 640x480
- Logitech C930e, 1920x1080, UVC 1.5, kompresja sprzętowa
Najpierw C210:
Kamerka nagrywała w 480p30, ale kodek docelowo wysyłał tylko 14 fps. A oto ruch na magistrali USB:
Widać, że nie ma kompresji sprzętowej i to, co przychodzi z kamerki jest kompresowane do H264. W miarę zmniejszania FPS widać spadek użycia pasma USB od 16 do 9 mega-bajtów na sekundę.
Bez kompresji spodziewałem się maksymalnie ruchu 640 x 480 x 30fps x 24bit = 27.6 MBps, więc Skype i tak dobrze kombinował z ograniczeniem FPS (przy 14fps jest 13MBps).
Teraz C930e:
Tutaj po chwili mamy 720p30 i Skype używa kompresji sprzętowej. Praktycznie rzecz biorąc przekłada strumień z USB wprost w tunel. Zobaczmy, co się dzieje na kablu:
Początkowo miałem spore użycie ze względu na 1080p30 - 19 MB/s, ale już po chwili Skype zszedł na 720p30, co obniżyło ruch na USB do 4MB/s.
Bez kompresji spodziewałbym się maksymalnie ruchu 1280 x 720 x 30fps x 24bit = 83 MBps, tymczasem otrzymałem ślicznie skompresowane 4MBps.
Ku memu zaskoczeniu użycie CPU było bardzo podobne. Niestety nie znalazłem sposobu na test w tj samej rozdzielczości.