3 webcams

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
deify
Beiträge: 141
Registriert: 29.03.2010 22:01
Computerausstattung: Win7 64bit
AMD Phenom II X4 940
NVIDIA GeForce GTS 250
4GB RAM
Kontaktdaten:

3 webcams

Beitrag von deify »

hi leute!
ein kumpel hat mir einen netten auftrag gegeben! und zwar will er ein programm, dass mit 3 webcams seine kegelbahn filmt. Sprich den spieler der gerade schiebt.
Er hätte es gerne so, dass alle 3 cams gleichzeitig aufnehmen und dass man alle 3 videos gleichzeitig abspielen kann!

An sich ja kein problem... doch ich bekomme irgendwie maximal 2 webcams zum laufen! Alle 3 Webcams sind im Gerätemanager aufgelistet. Mit der im Forum verfügbaren Avicap libary habe ich es auch schon geschafft die webcams zu starten und das bild in ein fenster zu integrieren... allerdings eben nur mit 2 cams! aber ich brauche bilder von allen 3!

Gibt es irgendeinen bug? eine bessere lösung wie avicap?

mfg deify!
Windows 7 | 64bit | PureBasic 4.51 (x64/x86)
D.J.Peters
Beiträge: 87
Registriert: 28.11.2010 13:07
Computerausstattung: P4 2x3.2GKz.1GB WIXP 32Bit NVIDEA GT240 1GB DDR3, AMD XP 1.8GHz Linux 32Bit NVIDEA GT240 TIi3200
Wohnort: Germany
Kontaktdaten:

Re: 3 webcams

Beitrag von D.J.Peters »

Ich habe in der Vergangenheit kein Problem mit 3 Kammeras gehabt
aber es durften nicht die gleichen Modelle = gleicher Treiber sein.

Es sollte auch nicht für alle drei der Vorschau-Modus eingeschaltet sein.
(Livebild während der Aufnahme)

Grüsse Joshy
Zuletzt geändert von D.J.Peters am 11.12.2010 02:29, insgesamt 1-mal geändert.
PS. meine vielen Fehler der Rechtschreibung auf dem Forum könnt Ihr gerne ignorieren.
Benutzeravatar
deify
Beiträge: 141
Registriert: 29.03.2010 22:01
Computerausstattung: Win7 64bit
AMD Phenom II X4 940
NVIDIA GeForce GTS 250
4GB RAM
Kontaktdaten:

Re: 3 webcams

Beitrag von deify »

fakt ist leider es ist 3 mal die selbe und noch dazu relativ teuer...
gibt es denn keine möglichkeit trotz gleichem treiber alle 3 aufzunehmen? ich meine mit 2 ging es ja auch^^
Windows 7 | 64bit | PureBasic 4.51 (x64/x86)
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3857
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: 3 webcams

Beitrag von bobobo »

teste es dochmal mit einer software die das kann (oder können müsste)

z.B.
http://www.heise.de/software/download/cerberus/24406


und hier als liste (welches davon mehrrere cams unterstützt wieß ich nicht)
http://www.heise.de/software/download/o ... k162?f=15s
‮pb aktuell5.7 - windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
deify
Beiträge: 141
Registriert: 29.03.2010 22:01
Computerausstattung: Win7 64bit
AMD Phenom II X4 940
NVIDIA GeForce GTS 250
4GB RAM
Kontaktdaten:

Re: 3 webcams

Beitrag von deify »

danke erstmal für den tip! also es funktioniert leider auch damit nicht...

weiß jemand von euch ob es einen weg gibt um die treiber "seperat" zubetrachten oder evtl einen anderen treiber zuverwenden ?
Windows 7 | 64bit | PureBasic 4.51 (x64/x86)
D.J.Peters
Beiträge: 87
Registriert: 28.11.2010 13:07
Computerausstattung: P4 2x3.2GKz.1GB WIXP 32Bit NVIDEA GT240 1GB DDR3, AMD XP 1.8GHz Linux 32Bit NVIDEA GT240 TIi3200
Wohnort: Germany
Kontaktdaten:

Re: 3 webcams

Beitrag von D.J.Peters »

Als erstes, das ist im allgemeinem keine Einschränkung des Betriebssystems.

Ein Treiber ist in der Regel nichts anderes als eine DLL (oft mit anderer Endung *.sys *.drv ...)
Unabhängig davon ob der Treiber im KERNAL user USER "Space" läuft
können meherere Applikationen den gleichen Treiber zur selben Zeit benutzen
z.B. können fast beliebig viele Programme die selbe Soundkarte bzw. dessen Treiber benutzen.

Für den Programmierer eines Treibers heißt dies das immer wenn OpenDevice() aufgerufen wird
eine neue Instance erstellt werden soll.

In Deinem Beispiel sollen aber nicht viele Programme sich ein Gerät teilen
sondern ein Programm benutzt viele Geräte.

Wenn das OS bemerkt das z.B. eine USB Kamera angeschlossen wurde wird dieses Gerät am USB BUS Enumeriert also die Endpunkte abgefragt.
(Abgefragt wer bist Du was kannst Du was brauchst DU)
Auf Grund des Ergebnisses dieser Abfrage wird der Passende Treiber geladen und eine Applikation kann dieses Gerät "ansprechen".

Wird nun ein zweites,drittes Gerät mit gleichen Eigenschaften Enumeriert dann wird der Treiber nicht nochmal geladen.
Es wird dem Treiber(programmierer) überlassen wie er weitere baugleiche Geräte behandelt.

Wenn in Deinem Beispiel der Treiber mehr als ein Gerät unterstützt dann gibt es nur zwei Gründe warum nicht auch noch ein drittes oder mehr.

1) Vielleicht hat der Programmierer absichtlich, aus welchen Gründen auch immer, die Anzahl auf zwei beschränkt
oder bei der Entwicklung des Treibers nie mehr als zwei Geräte gleichzeitig getestet. (MAX_INSTANCES = 2)
(Könnte also durch einen Poke im Treiber überschrieben werden z.B. mit einem Hexeditor wenn man die genaue Adresse in Erfahrung bringen könnte)

2) Oder ganz einfach Dein USB BUS erlaubt kein drittes Gerät weil dann mehr als 500mA Strom gezogen würde oder die Maximale BUS Geschwindigkeit nicht ausreicht.

Im ersten Fall solltest Du den Hersteller eine eMail schicken vielleicht haben die einfach nicht mehr als zwei Kameras getestet. (Wozu auch :lol:)
Wenn Es mit dem USB BUS zusammen hängt dann könnte ein zweiter HUB mit eigener Stromversorgung eine Lösung sein.

Ich selber habe z.B. für Banken vor einigen Jahren Multimedia Steuerungen gewerblich entwickelt bei z.B. 16 zu überwachenden Kammeras
nimmt man eine hochleistungs PCI Karte die hat dann z.B. 16 Eingänge und man kann einzelne Videoquellen als Vollbild
oder alle 16 Kanäle als Miniaturen auf dem Desktop darstellen und auch aufnehmen.

Für Dein Kegelbahn Projekt wäre eine günstige Karte mit 4 Channels genau das richtige gewesen.

Da es aber unbedingt USB sein soll wünsche ich Dir viel Glück bei der Lösungsfindung.

Grüsse Joshy

EDIT:
Kannst ja mal zum Testen ein Programm schreiben welches immer nur eine (die nächst freie) Kamera benutzt
und dieses Programm drei mal ausführen.

Oder zwei Kameras via VFW und die dritte via DirectShow (oder anders herum) benutzen.

EDIT 2:
Ich sehe an Deiner Forumssignatur das Du z.Z. mit Win7 64 Bit unterwegs bist.
Handelt es sich bei dem Treiber um einen "echten" 64 Bit WIN 7 Treiber ?
Wenn nicht könnte es ja auch sein das der 32 Bit Treiber in einer art Emulationsmodus läuft
und vielleicht daher es eine Beschränkung auf zwei gibt.
(ach was weiss ich schon, ich habe kein 64Bit WIN 7)
PS. meine vielen Fehler der Rechtschreibung auf dem Forum könnt Ihr gerne ignorieren.
DarkDragon
Beiträge: 6267
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: 3 webcams

Beitrag von DarkDragon »

Teste es mal mit mehreren Programmen. Ich würde folgende vorschlagen:

- AmCap (DirectShow)
- VidCap (VfW)
- SimpleCapture (MMF)

(Alles Beispiele aus dem Platform SDK)

Dann wissen wir obs überhaupt mit irgendeiner Technik geht.
Zuletzt geändert von DarkDragon am 12.12.2010 08:47, insgesamt 1-mal geändert.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
deify
Beiträge: 141
Registriert: 29.03.2010 22:01
Computerausstattung: Win7 64bit
AMD Phenom II X4 940
NVIDIA GeForce GTS 250
4GB RAM
Kontaktdaten:

Re: 3 webcams

Beitrag von deify »

danke erstmal für die antworten!
also dass mit den usb-cams war nicht mein plan, war eher der gedanke meines freundes. den sollte ich jetzt nach möglichkeit umsetzten weil sonst 3*70€ flöten gehen :D

naja ich werde das mit dem treiber einmal probieren, wobei ich nicht sicher weiß ob es daran liegt, da es von windows aus auf einem 32 bit xp system auch nicht klappen wollte! habe da allerdings auch nicht mein programm verwendet.
zu deinem vorschlag mit den programmen die alle 3 cams starten! ich habe bis jetzt nur ein programm welches eine cam öffnen kann! mit diesem(beispiel zur lib) war es mir auch noch nicht möglich die einzelnen kameras via code auszuwählen, da nur eine funktio zum ansteuern des treibers vorhanden ist. dennoch konnte man mit einem click auf source in einem menu die source auswählen! wie geau ich das programmieren sollte weiß ich erlich gesagt noch nicht!

mit dein einzelnen "arten" das signla aufzunehmen habe ich mich ehrlichgesagt noch nicht befasst, da ich noch kein wirkliches pb-genie bin^^ aber ich werde auf jedenfall alle programme ausprobieren und euch ein feedback geben!

danke schonmal im vorraus


EDIT:
Also ich habe jetzt mal keinen neuen treiber installiert aber 2 der programme ausgewählt! un dzwar funktioniert es z.B. wenn man 2 amcap und ein vidcap startet oder eben andersherum! das andere programm startet nicht, aber es funktioniert ja auch mit den beiden. könnt ihr mir evtl erklären wie ich jetzt diese "arten" implementieren kann? un d was avicap ist?
eine weitere interesante frage wäre wie man mit avicap die source ändern kann! also nicht manuell sondern über den code


deify
Windows 7 | 64bit | PureBasic 4.51 (x64/x86)
D.J.Peters
Beiträge: 87
Registriert: 28.11.2010 13:07
Computerausstattung: P4 2x3.2GKz.1GB WIXP 32Bit NVIDEA GT240 1GB DDR3, AMD XP 1.8GHz Linux 32Bit NVIDEA GT240 TIi3200
Wohnort: Germany
Kontaktdaten:

Re: 3 webcams

Beitrag von D.J.Peters »

Wenn ich das richtig verstandenhabe dann liegt es auf keinen Fall an Deinem USB BUS
also bei USB Cams für 210€ würde ich doch mal eine eMail an den Hersteller Schicken.

Welche Cam's hast Du denn da für das Projekt ?

Grüsse Joshy
PS. meine vielen Fehler der Rechtschreibung auf dem Forum könnt Ihr gerne ignorieren.
Benutzeravatar
deify
Beiträge: 141
Registriert: 29.03.2010 22:01
Computerausstattung: Win7 64bit
AMD Phenom II X4 940
NVIDIA GeForce GTS 250
4GB RAM
Kontaktdaten:

Re: 3 webcams

Beitrag von deify »

also ich verwende die logitech webcam pro 9000.
wie gesagt es ging ja mit den beiden programmen dass ich alle 3 webcams gleichzeitig starten kann! heiißt das ich brauche einfach nur eine weitere dll? die eben auch webcams aufnehmen kann? oder wie funktioniert das mit diesen einzelnen "arten"
Windows 7 | 64bit | PureBasic 4.51 (x64/x86)
Antworten