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
Es gibt beides. Häufiger dürfte aber unkomprimiert sein. Das Format ist dann meist RGB oder YUV.
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...
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
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.
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.
Aquila wrote:
> würde gern mit Assembler ein Programm schreiben,
Auf einem PC oder einem µC ?
Etliche Webcams lassen sich ähnlich einer TV Karte ansprechen: Beitrag "Video-Capture-Card auslesen"
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.
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.
Ich hab vor ca. 10 Jahren mal die Daten von einer Parallelport Cam ausgelesen. Da kamen die noch unkomprimiert als einfache BMP rein...
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.
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/
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.