[R] Gestion de 4 Webcam USB ou IP dans une seule fenêtre

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

[R] Gestion de 4 Webcam USB ou IP dans une seule fenêtre

#1

Message par pierrotm777 »

Bonjour,

J'ai revu à la baisse mes besoins , j'ai par hasard trouvé un script plus simple tjs avec 4 cams mais sans fioritures !

Mon seul problème est de créer commandes différentes ( 1 par caméra) qui au premier appui ouvre la caméra associée et au deuxième appuie la referme proprement.

Je porpose les touches F1 à F4 :

Multicam.au3
► Afficher le texte
Merci de votre aide !
Modifié en dernier par pierrotm777 le jeu. 04 mars 2010 21:17, modifié 12 fois.
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Gestion de 4 Webcam USB ou IP dans une seule fenêtre

#2

Message par pierrotm777 »

Bonjour,

J'ai un peu bossé et ai fini par arriver à quelque chose de fonctionnel, mais pour une seule caméra.
Si je rajoute les trois autres, le scripte devient trés long à charger !

Mais mon problème et que je n'ai pas de webcam pour tester. J'utilise pour mes test http://www.webcamsimulator.com/ qui comme son
nom l'indique simule une caméra à partir d'un fichier vidéo, et pour une raison que j'ignore, je dois aussi utiliser http://www.manycam.com/ et choisir la source vidéo dans manycam pour voir afin une vidéo dans ma GUI ! OOUUUFFF!!!

Donc , si quelqu'un a au moins deux webcam usb sur son PC, celui-ci pourrait-il me dire si déjà sans ces programmes mon script fonctionne ?

Utilisation:
-rester sur 4 écrans par défaut
-choisir 'Save Bmp' ou 'Save Avi'
-cliquer sur Cam1 sous le combo 'Save Type'
(si aucun préfix n'est défini dans le fichier ini , chaque nouveau fichier, bmp ou avi, est nommé à partir de la date et de l'heure du pc) .

Ce qu'il manque:
-pouvoir choisir une source différente pour chaque webcam
-mettre ON ou OFF chaque webcam séparément (les 4 boutons sous le combo 'Nbr of Cam').
-choisir écran 1 webcam ou 4 webcams(combo 'Nbr of Cam') tout en restant dans la même GUI .

J'ai mis à jour le script dans le premier post, mais je joinds tous les fichiers nécessaires .

Merci de votre aide.
Fichiers joints
Gui4webcams.zip
(3.79 Kio) Téléchargé 352 fois
Modifié en dernier par pierrotm777 le sam. 06 févr. 2010 08:05, modifié 1 fois.
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Gestion de 4 Webcam USB ou IP dans une seule fenêtre

#3

Message par pierrotm777 »

56 lectures et pas un avis ?
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Gestion de 4 Webcam USB ou IP dans une seule fenêtre

#4

Message par ani »

bein non :D
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Gestion de 4 Webcam USB ou IP dans une seule fenêtre

#5

Message par pierrotm777 »

Je n'ai pas posté au bon endroit ou quoi ? :oops:

J'ai un peu avancé .
Je pense avoir trouvé comment définir quatre webcams différentes:
J'ai modifié l'UDF webcam.au3 de telle sorte que l'on puisse gérer 4 devices différents:

ainsi, les lignes:
► Afficher le texte
deviennent:
► Afficher le texte
où $WebCamId peut donc prendre les valeurs 0 à 3 ; il semblerait que l'on puisse aller jusqu'à 9 !

Je n'arrive toujours pas à bien gérer le passage de 4 webcams à une webcam à l'écran, fonction _Gui1().
Si l'on peut me guider ?

J'ai modifié le fichier principal dans le post n°1.
J'ai besoin d'un testeur svp ! (une webcam nécessaire, deux idéal!)


le nouveau fichier UDF webcam.au3 serait donc:
Fichiers joints
webcam.au3
(8.87 Kio) Téléchargé 277 fois
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Gestion de 4 Webcam USB ou IP dans une seule fenêtre

#6

Message par pierrotm777 »

Bonjour,
Je continue mon monologue :evil: .

J'ai mis à jour le post un . Essentiellement du graphique.

Actuellement, je peut:
-sauver bmp ou avi pour chaque webcam mais uniquement si une seule webcam est ON
-definir leasource pour chaque webcam dans un fichier ini

Ce que je ne peux pas faire:
-fermer une webcam
-sortir du programme si plus d'une webcam est démarrée
-sauver un fichier bmp/avi si plus d'une webcam est démarrée
-ne peux pas effacer le fichier bmp aprés crétion du fichier jpg

Merci de votre aide !
Avatar du membre
Stigmate
Niveau 4
Niveau 4
Messages : 70
Enregistré le : ven. 26 déc. 2008 11:54
Status : Hors ligne

Re: [..] Gestion de 4 Webcam USB ou IP dans une seule fenêtre

#7

Message par Stigmate »

Dommage que je n'ai pas les connaissances requises, le projet est intéressant j'espère que tu ne va pas l'abandonner.
J'ai testé avec la webcam de mon pc portable mais celle ci ne s'affiche pas. Cela dit tu destinais sa a des webcam usb je sais pas si sa fait une différence. En revanche ma cam virtuel fonctionne.
Sinon le script est effectivement long à charger et mange du cpu, si tu réussi à le boucler la case optimisation s'impose =p
Bon courage !
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Gestion de 4 Webcam USB ou IP dans une seule fenêtre

#8

Message par timmalos »

Il est tres difficile de s'imiscer dans un script aussi complet que celui la. On ne sait pas vraiment ou est le probleme, on ne peut pas tester bref c'est difficile de vous aider. Ceci dit un projet tel que celui ci devrait etre effectué avec un langage de bas niveau et non un langage de script comme Autoit, vous gagneriez alors le double de vitesse de chargement.
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Gestion de 4 Webcam USB ou IP dans une seule fenêtre

#9

Message par pierrotm777 »

Merci de vos encouragements.

Effectivement autoit n'est peut être pas approprié, mais je ne connait, et trés mal, que lui.
Le titre n'est pas bien clair effectivement, car le script doit pouvoir marcher avec une webcam branchée autrement qu'en USB.

Mon script est un ajout de différent morceaux de scripts trouvés ci et là .

Tout est défini dans l'udf webcam.au3 .

Les devices (sources) vont ici de 0 à 3.
Les commandes dispo sont:

_WebcamOpen($sHwnd, $sLeft, $sTop, $sWidth, $sHeight,$WebCamId=0) ;démarrage de la caméra
_WebcamClose($sId) ; fermeture de la caméra
_WebcamSnap($sId, $sFile) ; création bmp selon n° caméra
_WebcamRecordStart($sFile, $sId) ; enregistrement avi selon n° caméra
_WebcamRecordStop($sId) ; arrêt enregistrement avi selon n° caméra

Aprés un peu de lecture , j'ai ajouté cette fonction Setting qui permet de régler , la compression, le format , la source.
Settings($sId,$Settings)

J'ai ajouté dans le post 1 l'udf webcam.au3 modifié !

Voilà pour une petite description .
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Gestion de 4 Webcam USB ou IP dans une seule fenêtre

#10

Message par pierrotm777 »

Bonjour,

Je continue mon monologue :wink: ,
Je viens de mettre à jour le post 1 (multicam.au3)
Dans cette version , j'ai nettoyé le code, ajouté la possibilité d'envoyer l'image sauvegardée sur une page web (pour l'instant 192.168.0.1:6969) et l'envoie par mail d'un fichier bmp zipé .

J'ai un problème avec la fonction de sauvegarde bmp.
Je souhaite , aprés la création du bmp, convertir le bmp en jpg.
J'utilise donc GDIPlus, aucun problem.
Par contre , je n'arrive pas à effacer mon fichier bmp aprés création du jpg , comme si GDIplus me bloqait le "Filedelete".

Par contre si j'efface les lignes GDIPlus, j'arrive bien à effacer mon fichier bmp ?

Une idée SVP :mrgreen:

voici ma fonction:
► Afficher le texte
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Gestion de 4 Webcam USB ou IP dans une seule fenêtre

#11

Message par timmalos »

Essaye de rajouter

Code : Tout sélectionner

_GDIPlus_ImageDispose ($img)
avant le shutdown
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Gestion de 4 Webcam USB ou IP dans une seule fenêtre

#12

Message par pierrotm777 »

Merci timmalos,

C'était pas un problème donc de fermeture de GDIPlus.

Merci
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Gestion de 4 Webcam USB ou IP dans une seule fenêtre

#13

Message par pierrotm777 »

Bonjour,

J'ai revu à la baisse mes besoins . J'ai donc reduit énormément le script d'origine , voir post 1 ,(plus lisible !).

Mon seul besoin est de pouvoir ouvrir et fermer à volonté chaque caméra séparément .
Par appui sur les touches F1 à F4 par exemple .
Un appuie sur F1 doit ouvrir la cam 1 , un autre appuie la refermer .

J'ai simplifier le script du post 1 ce qui devrait permettre de mieux comprendre mon problème ! :mrgreen:

Merci de votre aide
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Gestion de 4 Webcam USB ou IP dans une seule fenêtre

#14

Message par pierrotm777 »

Bon je pense avoir trouvé tous mes problèmes .

Voici le script final avec l'ajout de 4 boutons on/off !
► Afficher le texte
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [R] Gestion de 4 Webcam USB ou IP dans une seule fenêtre

#15

Message par timmalos »

Felicitations, on n'a pas pu vous apporter grand aide il faudrait une heure complète pour se plonger dans votre code et pour etre franc je n'en avais pas tres envi.
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Gestion de 4 Webcam USB ou IP dans une seule fenêtre

#16

Message par pierrotm777 »

Merci,

Mon seul regret est que dans mon avant dernière version, j'avais trouvé un script dont javais fait un UDF qui permettait de définir des boutons avec des images .ico.

FunButton.au3:
► Afficher le texte
Je pouvais alors créer un bouton avec du text et une image de dessus du genre:
_GUICtrlCreateBitBtn("Cam 1", 552, 68, 44, 46, Webcam.ico, 20, 35, 0, 3, 10);ON/OFF caméra 1

Mais avec la commande GUICtrlCreateCheckbox("OFF",810,10,40,40, $BS_PUSHLIKE) , je n'ais plus cette possibilité .
Si vous avez une idée ,

Merci d'avance
paberge
Niveau 1
Niveau 1
Messages : 1
Enregistré le : dim. 04 juil. 2010 20:21
Status : Hors ligne

Re: [R] Gestion de 4 Webcam USB ou IP dans une seule fenêtre

#17

Message par paberge »

Bonjour, J'ai tenté de faire fonctionner votre script avec deux caméra sans y parvenir. Il semblerait que windows ne soit pas adapté à ce type d'opération, si j'en crois des développeurs C++. C'est dommage....
LOUIS
Niveau 1
Niveau 1
Messages : 3
Enregistré le : mer. 08 sept. 2010 15:47
Status : Hors ligne

Re: [R] Gestion de 4 Webcam USB ou IP dans une seule fenêtre

#18

Message par LOUIS »

Bonjour,

Juste pour te dire que j'ai fais un programme qui utilise 2 webcams ( installées) en C++ mais avec la librairie vfw ( celle qui contient les fonctions que tu utilises).

Bonne suite.
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Gestion de 4 Webcam USB ou IP dans une seule fenêtre

#19

Message par pierrotm777 »

Et ça fonctionne avec 2 webcams?
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [R] Gestion de 4 Webcam USB ou IP dans une seule fenêtre

#20

Message par matwachich »

Juste comme ca en passant:

ca:

Code : Tout sélectionner

DllCall($user, "int", "SendMessage", "hWnd", $cap0[0], "int", $WM_CAP_END, "int", 0, "int", 0)
DllCall($user, "int", "SendMessage", "hWnd", $cap0[0], "int", $WM_CAP_DRIVER_DISCONNECT, "int", 0, "int", 0)

DllCall($user, "int", "SendMessage", "hWnd", $cap1[0], "int", $WM_CAP_END, "int", 0, "int", 0)
DllCall($user, "int", "SendMessage", "hWnd", $cap1[0], "int", $WM_CAP_DRIVER_DISCONNECT, "int", 0, "int", 0)

DllCall($user, "int", "SendMessage", "hWnd", $cap2[0], "int", $WM_CAP_END, "int", 0, "int", 0)
DllCall($user, "int", "SendMessage", "hWnd", $cap2[0], "int", $WM_CAP_DRIVER_DISCONNECT, "int", 0, "int", 0)

DllCall($user, "int", "SendMessage", "hWnd", $cap3[0], "int", $WM_CAP_END, "int", 0, "int", 0)
DllCall($user, "int", "SendMessage", "hWnd", $cap3[0], "int", $WM_CAP_DRIVER_DISCONNECT, "int", 0, "int", 0)

DllClose($user)
Exit
Ne serait-il pas mieux comme ça?:

Code : Tout sélectionner

For $i = 0 To 3
    DllCall($user, "int", "SendMessage", "hWnd", Eval("$cap" & $i & "[0]"), "int", $WM_CAP_END, "int", 0, "int", 0)
    DllCall($user, "int", "SendMessage", "hWnd", Eval("$cap" & $i & "[0]"), "int", $WM_CAP_DRIVER_DISCONNECT, "int", 0, "int", 0)
Next

DllClose($user)
Exit
Modifié en dernier par matwachich le mar. 16 nov. 2010 18:27, modifié 2 fois.
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Répondre