Forum: PC Hard- und Software Frameaufbau von Webcamdaten


von TwiTwi (Gast)


Lesenswert?

Hallo!

Ich wollte gern mal wissen, wie der Datenstrom einer handelsüblichen 
USB-Webcam aussieht, also was, außer einer Reihe von Pixeldaten wird 
noch übertragen? Welche Art von Headern gibt es und was steckt da drin?

Wenn ich am Rechner eine bestimmte Auflösung oder einen Farbraum 
einstelle, werden dann nur andere Informationen aus dem Datenstrom 
gepickt oder wird der Webcam selbst mitgeteilt, dass andere Daten 
gesendet werden sollen? Oder sind es immer dieselben Informationen, die 
von der PC-Software nur anders verarbeitet werden?

Wo gibt es eventuell eine übersichtliche Zusammenstellung des 
Frameaufbaus?

Das Programm SnoopyPro zum sniffen der USB-Datenpakete habe ich mir 
schon geladen, aber irgendwie sehen diese, verglichen mit von Wireshark 
gesnifften Netzwerkpaketen viel kryptischer aus. Ich blicke jedenfalls 
nicht wirklich durch. :(

von Rolf Magnus (Gast)


Lesenswert?

TwiTwi schrieb:
> Ich wollte gern mal wissen, wie der Datenstrom einer handelsüblichen
> USB-Webcam aussieht, also was, außer einer Reihe von Pixeldaten wird
> noch übertragen?

Schau ihn dir doch an, zB. mit Wireshark. Oder lies die Spezifikation, 
zu finden auf http://www.usb.org/developers/devclass_docs ganz unten.

> Wenn ich am Rechner eine bestimmte Auflösung oder einen Farbraum
> einstelle, werden dann nur andere Informationen aus dem Datenstrom
> gepickt oder wird der Webcam selbst mitgeteilt, dass andere Daten
> gesendet werden sollen? Oder sind es immer dieselben Informationen, die
> von der PC-Software nur anders verarbeitet werden?

Warum sollte da überhaupt ein Zusammenhang bestehen?

von TwiTwi (Gast)


Lesenswert?

Zuerst mal vielen Dank für den Link. Etwas in der Art habe ich gesucht.

Rolf Magnus schrieb:
>> Wenn ich am Rechner eine bestimmte Auflösung oder einen Farbraum
>> einstelle, werden dann nur andere Informationen aus dem Datenstrom
>> gepickt oder wird der Webcam selbst mitgeteilt, dass andere Daten
>> gesendet werden sollen? Oder sind es immer dieselben Informationen, die
>> von der PC-Software nur anders verarbeitet werden?
>
> Warum sollte da überhaupt ein Zusammenhang bestehen?

Ich wollte halt wissen, was passiert, wenn ich ein Kamerabild mit 
verschiedenen Auflösungen darstellen will und über ein Pull-Down-Menü 
der Videosoftware einen entsprechenden Eintrag wie 160x120 oder 640x480 
auswähle. Bleibt der Datenstrom durch den USB-Port derselbe und die 
Software verarbeitet nur die gewünschten Informationen wird eine 
entsprechend andere Forderung an die Kamera gesendet, welche dann eine 
andere Art von Frame sendet?
Ich nehme an, die Antwort steht in den Spezifikationen, werde allerdings 
eine Weile brauchen, die durchzuarbeiten.

von Martin (Gast)


Lesenswert?

ich glaube dass USB Kameras  den Datenstrom komprimieren, rechne  mal 
aus was das  unkomprimiert so wäre.  Eben mal so USB Daten von der 
Kamera abgreifen is da nich ...

von TwiTwi (Gast)


Lesenswert?

Nachtrag:
Soweit ich weiß, ist Wireshark nur zum mitschneiden von Netzwerk-Paketen 
gedacht. Selbst USB-Netzwerkgeräte sind da (unter Windows) eigentlich 
schon problematisch.

von TwiTwi (Gast)


Lesenswert?

@Martin: Komprimiert wird da nichts. Soweit ich bis jetzt verstanden 
habe, werden sogar irgendwelche RAW-Daten transferiert, die erst ins 
RGB-Format umgerechnet werden müssen.

von Lukas K. (carrotindustries)


Lesenswert?

Seh' dir mal im Linux-Kernel die Treiber für gpca-Webcams an, das sollte 
deine Fragen mehr als umfassend beantworten ;) Zu finden in 
drivers/media/video/gspca

von TwiTwi (Gast)


Lesenswert?

Ich bin Windows-Nutzer. :p

von Lukas K. (carrotindustries)


Lesenswert?

TwiTwi schrieb:
> Ich bin Windows-Nutzer. :p

Ist doch an dieser Stelle egal. Die Webcam ist unter Windows dieselbe, 
wie unter Linux und der Treiber muss ja auch dasselbe machen, sonst 
würde die Cam nicht funktionieren. Leider sind die Windows-Treiber nicht 
quelloffen, sonst könntest du dir auch diese ansehen.

von Deh Es Peh (Gast)


Lesenswert?

Bei allem was deutlich über VGA Auflösung @30fps hinausgeht wird bei USB 
Webcams üblicherweise in MJPEG komprimiert.

von TwiTwi (Gast)


Lesenswert?

Deh Es Peh schrieb:
> Bei allem was deutlich über VGA Auflösung @30fps hinausgeht wird bei USB
> Webcams üblicherweise in MJPEG komprimiert.

Kann durchaus sein und klingt auch vernünftig. Bisher habe ich aber nur 
mit einfachen Billig-Cams gearbeitet, die eine Maximum-Framerate von 
30/s haben. Ich glaube, die sind dann nicht komprimiert. Zumindest habe 
ich in keinem Kamera-Captureing-Programm einen Hinweis auf einen Codec 
gefunden.

von Medi (Gast)


Lesenswert?

TwiTwi schrieb:
> Nachtrag:
> Soweit ich weiß, ist Wireshark nur zum mitschneiden von Netzwerk-Paketen
> gedacht. Selbst USB-Netzwerkgeräte sind da (unter Windows) eigentlich
> schon problematisch.

http://wiki.wireshark.org/CaptureSetup/NetworkMedia

von Peter II (Gast)


Lesenswert?

TwiTwi schrieb:
> Kann durchaus sein und klingt auch vernünftig. Bisher habe ich aber nur
> mit einfachen Billig-Cams gearbeitet, die eine Maximum-Framerate von
> 30/s haben. Ich glaube, die sind dann nicht komprimiert. Zumindest habe
> ich in keinem Kamera-Captureing-Programm einen Hinweis auf einen Codec
> gefunden.
sotwas sollte auch der Treiber erledigen und nicht das 
Kamera-Captureing-Programm.

von Rolf Magnus (Gast)


Lesenswert?

Medi schrieb:
> TwiTwi schrieb:
>> Nachtrag:
>> Soweit ich weiß, ist Wireshark nur zum mitschneiden von Netzwerk-Paketen
>> gedacht. Selbst USB-Netzwerkgeräte sind da (unter Windows) eigentlich
>> schon problematisch.
>
> http://wiki.wireshark.org/CaptureSetup/NetworkMedia

Ah, also geht USB nur unter Linux. Mir war nur mal vor einer Weile 
aufgefallen, daß ich auf einmal in Wireshark auch USB-Ports auswählen 
und deren Kommunikation ansehen konnte.

von Archie F. (archie)


Lesenswert?

Guck dir mal die Spezifikastion handelsüblicher cmos sensoren an, den 
Rest übernimmt der Treiber. Die Auflösung z.B. Die hardware wird so 
einfach gehalten wie es nur geht. Nicht umsonst kostet die Dinger 15 €.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.