Forum: PC-Programmierung Win. UsbWebcam mjpg-Stream Problem mit FrameBuffer


von Alex (Gast)


Lesenswert?

Schönen guten Abend,

folgende Situation:
Ich versuche an einem Notebook unter WindowsVista auf den FrameBuffer 
einer USB-Webcam direkt zuzugreifen. Das Propramm schreibe ich in C 
unter der verwendung der Windows API und dem MinGW compiler. Als Treiber 
verwende ich die Standard WDM-Schnittstelle von Windows sowie die vfw32 
Bibliothek. Die Webcam ist ansprechbar, das Video läuft soweit ganz gut, 
die Software ist somit bis dahin in Ordnung.

Mein Problem:
Ich möchte ins laufende Videobild, ganz nach OSD-Stil, einige Daten 
einblenden, dazu muss man den FrameBuffer vor dem Anzeigen mit meinen 
Daten füttern. Sobald ich aber versuche den FrameBuffer mittels einer 
CallbackOnFrame-Funktion, die bei jedem neuen Frame vor Anzeigen auch 
erfolgreich aufgerufen wird, mit meinen Daten zu füttern, friert mir das 
Videobild komplett ein.

Meine Vermutung:
Die Webcam spuckt nur das Videoformat mjpg in den FrameBuffer, der somit 
nicht direkt ohne vorher zu decodieren manipulierbar ist. Bei der 
Auswahl der Formate, blende ich bei Programmstart mit ein, ist leider 
nur das mjpg möglich.

Weitere Tests:
Habe mit demselben Programm und derselben USBWebcam an meinem zweiten PC 
dasselbe Problem. Wenn ich allerdings an die Videokarte des PCs eine 
Composit-Camera anschließe und beim Videoformat das RGB-Format auswähle, 
dann funktioniert dasselbe Programm genauso wie es soll: Das Video läuft 
Problemlos mit meinen eingeblendeten Daten. Somit bestätigt sich meine 
Vermutung von oben, da ich bei allen Tests nur das Videoformat von mjpg 
nach RGB geändert habe.

Meine Frage:
Gibt es dennoch eine Möglichkeit ein FrameBuffer mit mjpg-Format 
irgendwie zu manipulieren, ohne das das Video einfriert? Vorher 
decodieren wäre sinnvoll aber wie bei mjpg?? Hatte jemand schon mal 
dassselbe Problem??

Den Sourcecode und das Kompilat als exe-Datei kann ich bei Bedarf hier 
reinstellen.

Bin für jede Hilfe dankbar..

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.