USB Video Class

Die USB Video Class (auch USB Video Device Class oder UVC genannt) fasst bestimmte Geräte, die Video über USB streamen, zu einer speziellen Klasse von USB-Geräten zusammen. Dazu gehören zum Beispiel Webcams, Camcorder, Transcoder und Geräte, die bandbasiertes Material in ein digitales Format wandeln.

Die aktuelle Revision der UVC Spezifikation ist die Version 1.5 und wurde durch das USB Implementers Forum definiert.[1]

Geräte

Ein USB-Gerät gilt nur dann als UVC-Gerät, wenn es die USB Device Class Definition for Video Devices erfüllt, also den minimalen Anforderungen der UVC-Spezifikation genügt. Solche Geräte haben den Vorteil, dass sie für ihren Betrieb keinen separaten Treiber benötigen, da ein einheitlicher UVC-Treiber die Geräte verschiedener Hersteller betreiben kann.

Webcams

Webcams gehörten zu den ersten Geräten, die den UVC Standard unterstützten.

Fernsehempfänger und Videorekorder

Version 1.1 von UVC unterstützt die Übertragung von komprimierten Videostreams, darunter auch MPEG-2 TS, H.264, MPEG-4 SL SMPTE VC1 und MJPEG.[1]

Formate

Versionen

Einen detaillierteren Überblick über die Versionsgeschichte findet sich auf usb.org im Bereich „Video Class“.[2]

Version Datum Beschreibung
1.0 4. September 2003 Erstveröffentlichung.
1.0a 4. Dezember 2003 Zusätzliche Untertypen für den Typ „Extension“ hinzugefügt. In der FAQ wurde ein Abschnitt für Interlaced Video erstellt.
1.0b (unbekannt) Nur Änderungen in der FAQ.
1.0c 5. Juni 2004 Nur Änderungen in der FAQ.
1.1 1. Juni 2005 Großes Update, unter anderem: Neue Dokumentspezifizierung für Streaming und Frame-basierte Formate, Latenzoptimierung für Streaming-Formate, Namensänderung von „VDC“ zu „UVC“, Entfernung veralteter Formate und Hinzufügung von neuen Formaten. Hinzufügung eines Flags, um zwischen dynamischen und festen Bildfrequenzen zu unterscheiden.
1.5 6. Juni 2012 Hinzufügen von H.264 und VP8 Übertragungen und Verweise auf USB 3.0.

Unterstützung durch Betriebssysteme

Android
Android unterstützt UVC.
Linux
UVC Unterstützung in Linux wird durch den „Linux UVC Treiber“ bereitgestellt, der Status kann über die Projektseite abgefragt werden.[3] Der UVC-Treiber ist ab Version 2.6.26 Bestandteil des Kernels. Die Erkennung von UVC-Geräten der Version 1.5 wurde in Version 4.5 in den Kernel aufgenommen,[4] aber eine Unterstützung spezifischer Funktionen von UVC 1.5 wurde nicht hinzugefügt. Daher arbeiten nur solche UVC 1.5 Geräte korrekt, die auch UVC 1.1 unterstützen.
OS X
macOS unterstützt UVC ab Version 10.4.3, und ab Version 10.4.9 auch in iChat.[5]
Windows
Windows XP enthält einen Treiber für UVC 1.0 seit Service Pack 2, ebenso Windows Vista und Windows CE 6.0. Windows 7 fügte UVC 1.1 Unterstützung hinzu, und UVC 1.5 ist ab Windows 8 verfügbar.[6]
FreeBSD
FreeBSD fügte den „uvc“ Treiber für Unterstützung von UVC-Geräten am 18. Januar 2011 hinzu. Er wurde in der Version 9.0 veröffentlicht.[7]
NetBSD
NetBSD fügte den „uvideo“ Treiber für UVC-Geräte im September 2008 hinzu. Er wurde in der Version 5.0 veröffentlicht.[8]
OpenBSD
OpenBSD fügte den „uvideo“ Treiber für UVC-Geräte im April 2008 hinzu. Er wurde in der Version 4.4 veröffentlicht.[9]
PlayStation 3
Die PlayStation 3 fügte in der Version 1.54 der Firmware Unterstützung für UVC-Geräte hinzu (nur für Videochats).
MenuetOS
MenuetOS fügte in Version 0.87 Unterstützung für UVC-Geräte hinzu.
Solaris
Solaris beinhaltet Unterstützung für UVC Webcams durch den „usbvc“ Treiber für OpenSolaris. Er ist in Solaris Express build 56 und später enthalten.[10]
MorphOS
MorphOS besitzt seit Version 3.10 Treiber für isochronen Transfer.

Einzelnachweise

  1. a b c d e f USB Device Class Definition for Video Devices, Revision 1.5, Juni 2012. (englisch)
  2. USB-IF Device Class Documents (englisch)
  3. Linux UVC driver and tools, Status. (englisch).
  4. Enable UVC 1.5 device detection. (englisch).
  5. Mac OS X 10.4.9 update "Includes iChat support for USB Video Class webcams", Apple Inc. 8. April 2008. Abgerufen am 28. Januar 2010. (englisch)
  6. USB Video Class Driver Overview. Microsoft. (englisch)
  7. UVC(4) FreeBSD Kernel Interfaces Manual. 6. August 2012, archiviert vom Original am 2. Juni 2015; abgerufen am 10. September 2013. (englisch)
  8. http://netbsd.gw.com/cgi-bin/man-cgi?uvideo++NetBSD-current (englisch)
  9. http://man.openbsd.org/OpenBSD-current/man4/uvideo.4 (englisch)
  10. USB Video Class driver on Solaris (Memento vom 23. August 2007 im Internet Archive) (englisch)