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.<ref name=uvc11>USB Device Class Definition for Video Devices, Revision 1.5, Juni 2012. (englisch)</ref>
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.<ref name=uvc11/>
Formate
- Unkomprimierte YUV Formate: YUY2, NV12<ref name=uvc11/>
- DV Formate: SD-DV, SDL-DV und HDV<ref name=uvc11/>
- Frame-basiert<ref name=uvc11/>
- Videostreaming-Formate wie MPEG-2 TS, H.264, MPEG-4 SL, SMPTE VC1 und MJPEG<ref name=uvc11/>
Versionen
Einen detaillierteren Überblick über die Versionsgeschichte findet sich auf usb.org im Bereich „Video Class“.<ref>USB-IF Device Class Documents (englisch)</ref>
| 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.<ref>Vorlage:Cite book/Name: [Internetquelle: archiv-url ungültig Linux UVC driver and tools, Status.] , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref> 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,<ref>Vorlage:Cite book/Name: [Internetquelle: archiv-url ungültig Enable UVC 1.5 device detection.] , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref> 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.<ref>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)</ref>
- 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.<ref>USB Video Class Driver Overview. Microsoft. (englisch)</ref>
- 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.<ref>Vorlage:Cite book/Name: [Internetquelle: archiv-url ungültig UVC(4) FreeBSD Kernel Interfaces Manual.] , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 10. September 2013.Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung (englisch)</ref>
- 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.<ref>http://netbsd.gw.com/cgi-bin/man-cgi?uvideo++NetBSD-current (englisch)</ref>
- 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.<ref>https://man.openbsd.org/OpenBSD-current/man4/uvideo.4 (englisch)</ref>
- 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.<ref><templatestyles src="Webarchiv/styles.css" />USB Video Class driver on Solaris ( vom 23. August 2007 im Internet Archive) (englisch)</ref>
- MorphOS
- MorphOS besitzt seit Version 3.10 Treiber für isochronen Transfer.
Weblinks
- Offizielle Definition unter https://www.usb.org/developers/docs/devclass_docs/, Abschnitt Video Class
- Unterstützung von UVC unter Linux: ideasonboard.org/uvc
Einzelnachweise
<references />