Forum: PC-Programmierung USB Webcam Daten


von Ich (Gast)


Lesenswert?

Hallo ich habe eine Frage:

schmeißt eine USB Webcam die Daten komprimiert und unkomprimiert raus? 
Wenn schon, dann üblicherweise in welchem Format. DAnke im Voraus

von Benedikt K. (benedikt)


Lesenswert?

Es gibt beides. Häufiger dürfte aber unkomprimiert sein. Das Format ist 
dann meist RGB oder YUV.

von Düsentrieb (Gast)


Lesenswert?

Häufiger dürfte aber komprimiert sein!
leider legt zb creative das format der kompression nicht offen, dh es 
geht nur mit deren treiber unter windoof.
is wohl irgendeine mpeg4 variante...

von Ich (Gast)


Lesenswert?

Weil wenn sie unkomprimiert ist reicht doch die Geschwindigkeit von USB 
gar nicht aus:
typische werte sind ja 30 fps bei 24 bit Farbtiefe und sagen wir bei so 
einer Auflösung von ca 1000*1000 (einfachheitshalber)

ich habe jetzt keinen Taschenrechner bei mir aber ich hab das schon mal 
ausgerechnet und da würden ja 480 Mbit/s überhaupt nicht ausreichen

von SintesiMoe (Gast)


Lesenswert?

1000*1000?
Bist du bekloppt?

von Benedikt K. (benedikt)


Lesenswert?

Ich wrote:
> Weil wenn sie unkomprimiert ist reicht doch die Geschwindigkeit von USB
> gar nicht aus:

Bleiben wir mal bei der Realität:
Viele Kameras können nur 640x480, 15fps, YUV4:2:2
Also 640x480*15*2=9,2MByte/s=73MBit/s. Schafft USB High Speed 
problemlos.

Neuere Cams haben häufiger eine Komprimierung, ältere aber eher selten.

von Aquila (Gast)


Lesenswert?

Hi Leute,
ich würde gern wissen, wie man überhaupt an die Daten einer Webcam 
rankommt. Ich habe eine Webcam mit usb-Anschluss und würde gern mit 
Assembler ein Programm schreiben, das zum Beispiel ein Bild von meiner 
Webcam empfängt und dieses als Bitmap speichert. Wäre cool, wenn ihr mir 
helfen könntet.

von Benedikt K. (benedikt)


Lesenswert?

Aquila wrote:
> würde gern mit Assembler ein Programm schreiben,

Auf einem PC oder einem µC ?

von Aquila (Gast)


Lesenswert?

Auf dem PC.

von Benedikt K. (benedikt)


Lesenswert?

Etliche Webcams lassen sich ähnlich einer TV Karte ansprechen:
Beitrag "Video-Capture-Card auslesen"

von Aquila (Gast)


Lesenswert?

In dem Beitrag ist die Rede von DirectX oder DirectShow. Damit kenne ich 
mich nicht aus.
Wahrscheinlich stelle es ich mir zu einfach vor, aber ist es nicht 
möglich mit einer (vielleicht kurzen) Assembler-Sequenz und vielleicht 
einen bestimmten Assembler (ich benutzen MASM) auf die Daten 
zuzugreifen?
Es wären schön, wenn mir jemand sagen könnte, wie die Assembler-Sequenz 
aussehen könnte (Code-Bsp.) oder mir sagen könnte, wo ich die nötigen 
Befehle finden kann.

von Εrnst B. (ernst)


Lesenswert?

Du suchst den Assembler-Befehl für "Frame von USB-Kamera abholen und in 
den Speicher legen"? Sorry, den gibt es nicht.

Du musst rausfinden, was für einen Treiber deine Kamera hat (VFW oder 
DirectShow oder Twain oder Herstellereigen) und diesen dann ansprechen.

Das kann man zwar sicher auch in ASM machen, aber du wärst 
wahrscheinlich der erste der sich das antut. Folglich wirds da auch kaum 
fertige ASM-Codeschnippsel ("Schnippsel"? Eher Romane...) für geben.

Tu dir selbst einen Gefallen, und mach das in C oder C++. Da gibts 
fertigen Beispielcode, und du setzt deine geistige Gesundheit nicht aufs 
Spiel...

Wenn dann immer noch was schneller werden soll, kannst du ja inline-asm 
dazupacken.

von Werner A. (homebrew)


Lesenswert?

Ich hab vor ca. 10 Jahren mal die Daten von einer Parallelport Cam 
ausgelesen. Da kamen die noch unkomprimiert als einfache BMP rein...

von Simon K. (simon) Benutzerseite


Lesenswert?

Werner A. wrote:
> Ich hab vor ca. 10 Jahren mal die Daten von einer Parallelport Cam
> ausgelesen. Da kamen die noch unkomprimiert als einfache BMP rein...

Da gibts nur ein Problem an deiner Aussage: Es war vor 10 Jahren.

von JojoS (Gast)


Lesenswert?

da könnte ich mal wieder einen Beitrag de c't empfehlen (nein, ich 
arbeite nicht bei Heise): in Heft 13/2008 gehts um Gesichtserkennung. 
Dazu wird die IVT Libraray der Uni Karlsruhe verwendent, die kapselt die 
verschiedenen Treiber in einer C/C++ Lib und stellt auch 
Umwandlungsfunktionen für verschiedene Videoformate bereit. Weitere 
Infos gibts hier: http://ivt.sourceforge.net/

von Christian (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

das ist normalerweise nicht möglich, da die Webcam Treiber keine 
Freeware sind und damit nicht zugänglich.  Man kann es mit VFW versuchen 
(Video for Windows), das API ist dokumentiert und ich habe damit in VB 
Bilder aus der Kamera bekommen.

Anbei das Zip File, allerdings VB.

von Christian (Gast)


Angehängte Dateien:

Lesenswert?

Noch eins.

von Christian (Gast)


Angehängte Dateien:

Lesenswert?

Hier ist meine unfertige Anwendung, die aber ein Bild erzeugtt. Die 
vielen Einstellungen rechts lassen sich auch machen, zB Divx Codierung 
des Streams aber leider noch kein Code hinterlkegt. Ladbares VB6 
Projekt.

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.