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. :(
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?
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.
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 ...
Nachtrag: Soweit ich weiß, ist Wireshark nur zum mitschneiden von Netzwerk-Paketen gedacht. Selbst USB-Netzwerkgeräte sind da (unter Windows) eigentlich schon problematisch.
@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.
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
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.
Bei allem was deutlich über VGA Auflösung @30fps hinausgeht wird bei USB Webcams üblicherweise in MJPEG komprimiert.
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.
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
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.