USB Video Class
# 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.

## 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.

## Formate

* Unkomprimierte YUV Formate: YUY2, NV12
* DV Formate: SD-DV, SDL-DV und HDV
* Frame-basiert
* Videostreaming-Formate wie MPEG-2 TS, H.264, MPEG-4 SL, SMPTE VC1 und MJPEG

## Versionen

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

| 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. 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, 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.

### 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.

### 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.

### 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.

### 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.

### 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.

### MorphOS

    MorphOS besitzt seit Version 3.10 Treiber für isochronen Transfer.
