Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ACQUISITION VIDEO (WEBCAM, TV CARDS ...)


Information sur la source

Catégorie :Périphériques Classé sous : webcam, vidéo, incrustation, détection, enregistrer Niveau : Initié Date de création : 24/05/2005 Date de mise à jour : 19/06/2007 13:03:18 Vu / téléchargé: 36 802 / 4 068

Note :
8,85 / 10 - par 13 personnes
8,85 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (59)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
J'ai essayé de réécrire un composant d'acquisition vidéo en utilisant les fonctions de la DLL AviCap32.dll, et en restant au plus près de ces fonctions.
Les derniers sources que nous avons vu ici, usaient (et abusaient) de copier-coller pour présenter dans un TImage une vidéo rendue invisible à sa création !
Il y a ici, une utilisation des fonctions callback pour générer les évènements,
Il y a en plus, un bitmap intégré au composant qui permet de faire de l'incrustation de texte et de dessin dans l'image vidéo.

La démo présente deux points principaux :

1 - Incrustation
L'incrustation est obtenue en utilisant le canvas d'un bitmap du composant. Lors des évènements générés par les fonctions callback, lorsqu'il y a accès au buffer image captée (OnFrame et OnVideoStream), on fusionne ce buffer et les pixels du bitmap. J'encourage chaque utilisateur à écrire ses propres alogorithmes de fusion, selon ses besoins.
On peut ansi visualiser une capture avec incrustation ou enregistrer un flux vidéo avec incrustation

2 - Analyse d'image et détection de mouvement
Cette analyse est effectuée à chaque nouvelle trame, et si un mouvement est détecté, un cadre est ajouté à l'image vidéo par incrustation
 

Conclusion

Limitations :

- Pas d'enregistrement des incrustations si on utilise un codec vidéo de compression (comme DivX, Intel IYUV ou autre). (le flux est probablement détourné avant de parvenir au composant)

(Z'avez vu la capture de la capture de la capture de la capture de la capture de la capture de la capture de la capture de la capture .....)


 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

16 juin 2005 15:31:44 :
Les incrustations dans les flux vidéo compressés en UYVU ou YUY2 sont maintenant possibles. Le composant TCapture a une nouvelle propriété : VideoFormat Le programme de démo montre comment faire : - Dessiner dans un bitmap "classique" 24 bits - Utiliser une des fonctions de conversion de l'unite BMP2YUV pour remplir le bitmap avec une image compressée Il y a un nouvel algorithme de détection de mouvement multi-zone. Il est dans l'unité U_Detection Il est possible de coder dans un même esprit les fonctions que je donnais en exemple dans la précédente version. NOTE : Je préfère que la parsonne qui a noté 1 ce source, ne télécharge pas cette version !!!....
12 décembre 2005 10:31:38 :
- Ajout de l'option mmNone dans MergeMode (pas d'incrustation) - Ajout de la propriété en lecture Driver : Nom du driver Windows pour le device sélectionné.
02 juin 2006 10:56:47 :
Ajout des méthodes StartCapture et StopCapture procedure StartCapture(const FileName: string = ''; const duree: integer = 0); procedure StopCapture; StartCapture est très proche de RecordOnFile. Elle permet en plus de passer en mode capture SANS création de fichier. Le déclenchement de l'évènement OnFrame se produit alors même si le composant TCapture est totalement masqué par une autre fenêtre (contrairement au mode Preview où le masquage de la fenête d'affichage de la vidéo bloque l'évènement) StopCapture = StopRecord J'ai renomé la méthode pour parce que préférait éviter que la fonction RecordOnFile puisse justement ne plus enregistrer dans un fichier. Les méthodes RecordOnFile et StopRecord on été conservées pour la compatibilité avec les anciennes versions
19 juin 2007 13:03:18 :
Un bug dasn l'exécution d'une fonction callback du composant. Je m'en suis aperçu en faisant une source à partir du composant

Commentaires et avis

signaler à un administrateur
Commentaire de MAURICIO le 25/05/2005 13:25:17

Oui Z vu la capture de la capture de la capture.
Malheureusement, je pourrai tester ce prog. que chez moi :(
Mais je te felicite de te jeter sur un tel compo!
Vu ta passion pour les jeux, quand est-ce que tu nous fait un jeu "Eye-toy" comme sur la Playstation?
Je cherche un compo (avec source) pour scanneriser, tu sais po où trouver ça?

signaler à un administrateur
Commentaire de WhiteHippo le 25/05/2005 20:01:03

Chez moi, j'ai le texte d'incrustation qui pose problème. C'est comme si on avait effectué une symetrie horizontale sur ce texte, qui se retrouve en haut et non tête bêche. Bref, c'est plutot bizarre.... J'ai pas le temps de chercher maintenant pour savoir si cela viens de mes paramètres de caméra, mais je vérifierais plus tard.
Je jetterais également un coup d'oeil au code.

N.B. Y'a du taf là dessous Kenavo, elle doit être belle la bouteille de chouchen :P

Cordialement.

signaler à un administrateur
Commentaire de Kenavo le 25/05/2005 22:34:33

Mauricio > Je connaissais pas Eye-Toy, et maintenant que j'ai vu, je suis totalement découragé ! Je bosse pour améliorer la reconnaissance de mouvement (plusieurs zones, vitesse et direction ...), mais là ! Je te remercie pour m'avoir fait entrevoir la profondeur de ma médiocrité ;-)
Pour ton Pb de scan : http://www.torry.net/quicksearchd.php?String=twain&Title=Yes

WhiteHippo > Le phénomène d'incrustation dont tu parles doit être du à un flux vidéo orignal compressé. Il faut configurer la caméra en RVB 24 bits si possible. Car non content d'être compressé, il y a en plus l'ordre des lignes qui est inversé. Mais à la fin du chouchen le problème n'est plus trop visible ! :-))

Ken@vo

signaler à un administrateur
Commentaire de MAURICIO le 27/05/2005 11:25:15

Merci Kenavo pour ce link. Je viens de telecharger un compo avec sa source :)
Je suis désolé de t' avoir découragé ... Par contre, je verrai bien l' exploitation de ton source pour faire un prog. pour manipuler les fenetres de windows à la "minority Report". Ça doit pas être dûr pour toi je pense. Et puis apres tout: rien ne se crée, tout se transforme, non?

signaler à un administrateur
Commentaire de Ralpho le 01/06/2005 17:32:51

Demat,
Bravo pour ta source, trugarez kenavo

signaler à un administrateur
Commentaire de jmp77 le 06/06/2005 13:33:18

Hello tous le monde,

Bravo Kenavo c'est une très bonne source.

Pour ma part je ne suis pas connaisseur du traitement d'image ou video avec delphi et c'est super interessant.

Merci à toi.

Ca merite un bon 9/10 pour moi.

Bonne continuation et bon Chouchen !!!!

signaler à un administrateur
Commentaire de JLF26 le 11/06/2005 23:53:05

Excellent travail pour ce composant de capture pour delphi.

Encore bravo.



signaler à un administrateur
Commentaire de Stephane_menard le 14/06/2005 12:57:51

bonjour,

je travaille avec delphi 7 edition professionlle et je rencontre des problèmes avec la démonstration du composant d'acquisition video.

Si je double-clique sur 'DemoCapture.dpr', je rencontre un premier message d'erreur :
'Impossible de trouver le fichier ressources DemoCapture.res. Recrée.'

après avoir cliqué sur 'OK', j'en ai un deuxième :
"Erreur de lecture de la fiche"
'Classe TCapture non trouvée. Ignorer l'erreur et continuer ?'
'Remarque : ceci peut provoquer la suppression de composants'
'ou la perte de valeurs de propriétés.'

Si je clique sur 'Ignorer', j'ai accès au code et au formulaire graphique, mais je ne peux pas compiler le programme sans erreur et l'affichage ne fonctionne pas dans le composant TCapture.

Si je clique sur 'Annuler', un troisième message d'erreur apparaît :
'Erreur à la création de la fiche classe TCapture non trouvée'
Là, je peux compiler et modifier le code. La capture marche, mais je n'ai pas accès au formulaire graphique.

J'ai tenté d'installer le composant en vain dans un autre projet.


Comment faire pour faire fonctionner la démonstration correctement ?

Comment faire pour pouvoir utiliser le composant dans un autre programme Delphi ? Comment l'installer correctement?

signaler à un administrateur
Commentaire de Kenavo le 14/06/2005 13:49:20

Salut,

Il y a un tutorial sur l'intallation de composants : http://www.delphifr.com/tutorial.aspx?ID=86
Le composant Tcapture est dans l'unité Capture.pas, Capture.dcr est le fichier ressouce composant lié.

Quant au message 'Impossible de trouver le fichier ressources DemoCapture.res. Recrée.' c'est normal puisque je n'ai pas mis le fichier DemCapture.res dans le zip

Ken@vo

signaler à un administrateur
Commentaire de Stephane_menard le 16/06/2005 08:36:28

Merci de votre aide.

Ca fontionne maintenant, et c'est vraiment un beau composant !

Encore merci.

signaler à un administrateur
Commentaire de Stephane_menard le 17/06/2005 14:49:21

Salut,

Ben euh depuis la mise à jour j'ai une image rose ???

Si quelqu'un a une idée, je suis preneur !

Merci.

Stéphane.

signaler à un administrateur
Commentaire de Kenavo le 17/06/2005 15:43:39

Sans doute un problème de reconnaissance du format vidéo.  
TCapture.VideoFormat retourne une chaine donnant une info sur le format. Vu mon matériel, je n'ai testé que 'RGB', 'UYVY' et 'YUY2'. Si tu as un autre format (YUV ou autre) il peut y avoir un problème.
Le composant lui-même n'a pas beaucoup changé (juste la propiété VideoFormat et la fonction GetVideoFormat)
Le programme de démo précédent devrait tourner de la même façon

Ken@vo

signaler à un administrateur
Commentaire de Stephane_menard le 04/07/2005 08:06:11

Salut Ken@vo,

La capture fonctionne bien avec une webcam 'Philips ToUCam Pro 2', en USB ; par contre je n'y arrive pas avec une camera 'Panasonic NV-GS11' que ce soit en USB ou en FireWire. Ca fonctionne quand même si je mets la camera en mode webcam, mais c'est pas le but.

Une idée ?

signaler à un administrateur
Commentaire de Stephane_menard le 04/07/2005 08:33:31

Re-salut,

Avant qu'on ne me pose la question, le message d'erreur que je reçois est le suivant :

Violation d'accès à l'adresse 00456680 dans le module 'DemoCapture.exe'. Lecture de l'adresse 00B20000.

Merci de votre aide,

Stéphane.

signaler à un administrateur
Commentaire de Ludolpif le 06/07/2005 11:16:07

J'ai beau fouiller... Je ne voit pas comment SELECTIONNER un périphérique dans le cas où il n'est pas unique...
Exemple de cas concret bien enbêtant :
J'ai 1 carte WinTV, et une webcam... Et par défaut, je risque de choper la télé... Je compte pas afficher à chaque fois que je lance le prog la dialog box générique Micr$oft pour changer la source vidéo quoi...
Si quelqu'un a l'info, ça serai cool car vaut mieux 1 qui sait en informatique que 10 qui cherchent !
NB : J'ai regardé sur MSDN mais j'ai pas trouvé...
Je sais séldectoinner le DRIVER avant de m'y connecter desus...Seulement, dans mon cas, c'est un seul driver qui gère mes deux sources...

signaler à un administrateur
Commentaire de Kenavo le 09/07/2005 08:18:20

Salut,

N'ayant qu'un périph, je n'ai pas fait d'essais. Je pensais que la propriété Device servait à ça, mais effectivement, elle ne sert qu'à sélectionner le Driver. Je se sais pas comment contourner le dialogue de sélection de source. Désolé !

Ken@vo

signaler à un administrateur
Commentaire de Nicolas___ le 15/07/2005 19:44:38

Bon je sais que je suis un peu a la bourre pour te le dire mais voila vaut mieux tard que jamais

Donc ::=>

Ton prog et ton compo , ils sont vraiment excellents vraiment ce que je voulais voir,
Je dis simplement Chapeau et Meric Bcp pour Ta source

Slt
Nico
@+

signaler à un administrateur
Commentaire de Ludolpif le 18/07/2005 18:27:59

Perso, je suis parti sur une autre piste : DirectX et l'OLE... Je suis tombé sur un composant tout prêt qui marche pas mal... Je ne sais pass'il est possible de gérer plusieurs webcam avec... Quand j'aurai 1 peu plus avancé, je vous ferai signe ;)
Le composant s'appelle TCapture... J'ai pas le temps ed recherche le lien, mais je vous le donnerai ;)

signaler à un administrateur
Commentaire de phmosse le 16/08/2005 11:12:43

Très bien ton Objet il serait bon d'ajouter la méthode suivante qui permet de retourner la liste des sources vidéo  et affecter l'indice de la liste au Device (Capture.Device:=Combo.itemIndex):

function TCapture.GetDriverList: TStrings;
var
  i: integer;
  name: array[0..80] of char;
  ver: array[0..80] of char;
begin
  result := TStringList.Create;
  for i := 0 to 9 do
    if capGetDriverDescription(i, name, 80, ver, 80) then
      result.Add(StrPas(name) + ' ' + strpas(ver))
    else
      Break;
end;

Si ça Peu Aider

Philippe à Bientot

signaler à un administrateur
Commentaire de Stephane_menard le 26/08/2005 08:39:01

Bonjour,

j'ai un problème avec le composant TCapture.

J'ai un boitier d'acquisition vidéo analogique branché sur le port USB. C'est un 'Instant VideoMPX' de chez 'ADS Tech'. Il permet d'acquérir de la vidéo analogique en Composite ou SVideo.

Le format d'acquisition est 'UYVY', en diverses tailles d'image(640x480, 352x240,...), en 30 ou 60 images par secondes. Cela devrait donc fonctionner, mais au lieu de ça, l'application rame comme c'est pas possible et j'obtient une image verte.

Bien sûr, je ne peux pas acquérir.

AU SECOURS !!!!

Si quelqu'un peux m'aider !!!

signaler à un administrateur
Commentaire de Ludolpif le 26/08/2005 10:44:39

je crois tout simplement qu'il vaut mieux changer de fusil d'épuale de ne pas utiliser cette #%µ$$¨% de dll ;) En OLE et avec DirectX, ça devrais marcher bien mieux ! J'ai trouvé une super source ailleurs qu'ici, mais j'ai plus le lien... je cherche... humhum... je galère... ;) Ah ! Je trouve ;)
Perso, j'suis en train de développer un prog basé la dessus
http://www.torry.net/authorsmore.php?id=3310
voilà voilà ;)

signaler à un administrateur
Commentaire de Stephane_menard le 26/08/2005 11:14:14

Salut,

LUDOLPIF, tout d'abord, merci de ton aide.

J'ai téléchargé l'exemple dont tu m'as donné le lien, et il me sort une erreur dans l'unité 'DirectDraw' sur la ligne :
      lpDDSZBufferDest            : PDirectDrawSurface; // Surface to use as Z buffer for dest


l'erreur est la suivante :
[Erreur] DirectDraw.pas(176): Le type 'IDirectDrawSurface' nécessite une finalisation - non autorisé dans enregistrement variant

Que faire ?

J'utilise Delphi 7, est ce que ça vient de là ?

Merci.

signaler à un administrateur
Commentaire de astropierrot le 05/09/2005 15:18:48

bONJOUR

i am happy !!
Je suis inscris depuis 10mn, mais j'ai le meme probleme que certains.
a ca tu reponds:
c'est normal puisque je n'ai pas mis le fichier DemCapture.res dans le zip  
On fait quoi dans ce cas là  :-)))

Merci pour l'info; je bous (du verbe bouillir, et pas bouder !) d'impatience !
A+
AstroPierrot

signaler à un administrateur
Commentaire de Ludolpif le 05/09/2005 15:34:00

en réponse au problème de stéphane... mais ça peut servir à d'autres ;)
ah oui... j'suis, j'ai pas pensé à te dire... regardes un coup les $ID DEF ;)
Suivant les versions de Delphi, il charge un truc... en fait si C la version 5, alros il met Pointer au lieu de IDirectDrawSurface à une certaine variable (je te di ça de tête, dc C 1 peu cho pr moa ;)), parce que le cr"ateur avait constaté qu'il devait mêtre son type bizarre pour delphi 4, seulement évidement il pa pensé aux versions supérieures ;) Alros si tu veux faire propre, voit comment tu peux arranger les IF Def pour que ç définisse en pointer, autrement, vire les iddef et met Pointer à la place de IDirectDrawSurface ;)
Si t'y arrives pa, renvoi moi 1 msg, je te dirai + précisément, parce que j'ai pa tro de temps ce soir ;)

signaler à un administrateur
Commentaire de astropierrot le 08/09/2005 18:48:50

Je rehitere ma demande.....  :-))
Je voudrais utiliser le "composant video"

Ce que j'ai comme probleme (copie d'aun autre message).

Si je double-clique sur 'DemoCapture.dpr', je rencontre un premier message d'erreur :
'Impossible de trouver le fichier ressources DemoCapture.res. Recrée.'

après avoir cliqué sur 'OK', j'en ai un deuxième :
"Erreur de lecture de la fiche"
'Classe TCapture non trouvée. Ignorer l'erreur et continuer ?'
'Remarque : ceci peut provoquer la suppression de composants'
'ou la perte de valeurs de propriétés.'

Si je clique sur 'Ignorer', j'ai accès au code et au formulaire graphique, mais je ne peux pas compiler le programme sans erreur et l'affichage ne fonctionne pas dans le composant TCapture.

Si je clique sur 'Annuler', un troisième message d'erreur apparaît :
'Erreur à la création de la fiche classe TCapture non trouvée'
Là, je peux compiler et modifier le code. La capture marche, mais je n'ai pas accès au formulaire graphique.

J'ai tenté d'installer le composant en vain dans un autre projet.


Comment faire pour faire fonctionner la démonstration correctement ?

URGENT URGENT suis presque debutant, merci de m'aider !!

cordialement

ASTROPIERROT

signaler à un administrateur
Commentaire de Kenavo le 08/09/2005 18:55:44

Il faut installer le composant TCapture !!!!!!!!!
Lis ça : http://www.delphifr.com/tutorial.aspx?ID=86

Kenavo

signaler à un administrateur
Commentaire de astropierrot le 08/09/2005 19:21:10

RE
je suis bien allé sur http://www.delphifr.com/tutorial.aspx?ID=86

Je me suis perdu en route.... !
j'utilise D6perso ..!
je ne retouvre pas ou est Mon cas par rapport à la présentation generale..

A+

ASTROPIERROT

signaler à un administrateur
Commentaire de 39mich59 le 02/11/2005 11:03:11

salut,
Je fais une petite demande. Le composant marche niquel, j'ai modifié pour faire apparaitre un rectangle rouge. Mais il disparait quand l'image de la camera devient blanche. Comment faire pour garder le rectangle toujours visible? Merci.

(seul les bords du rectangle sont rouges, l'interieur est transparent)
mIch°°

signaler à un administrateur
Commentaire de 39mich59 le 02/11/2005 11:59:20

hum, desolé, je viens de trouver.. pour ceux que ca interesse, cela se passe dans le mergemode:=mmMask;
desolé pour la pagaille

signaler à un administrateur
Commentaire de asmaeber le 23/11/2005 19:45:04

SaLuT tous le monde.

Je voudrai realiser un serveur qui lit un flux webcam et qui l'envoie par reseau, et un client qui lit le flux envoyé.

Est ce que quelqu'un peut m'aider sur comment réaliser cela?
je me suis dis que je peux utiliser le code source d'acquisistion video et essayer d'envoyer le flux recuperé par reseau.

Merci de m'aider!!!

signaler à un administrateur
Commentaire de Stephane_menard le 02/12/2005 14:24:29

Salut,

N'y a-t-il pas un moyen simple de désactiver l'incrustation pour avoir une simple capture et ainsi pouvoir capturer à des vitesses correctes sur des machines lentes ?

Merci pour tout conseil.

signaler à un administrateur
Commentaire de Kenavo le 02/12/2005 16:42:57

Salut Stéphane,

Tu peux modifier Capture.pas en rajoutant mmNone dans les modes de fusion :
TMergeMode = (mmNone,mmOr, mmAnd, mmMask, mmPixelMask); (reconstruire le paquet où il est installé)

En choisissant mmNone (dans l'inspecteur d'objet par exemple) tu feras que rien ne sera fait dans la  procédure MaskMerge, mmNone n'étant pas référencée dans le case ... of

Je pense que celà devrait suffire

signaler à un administrateur
Commentaire de Stephane_menard le 05/12/2005 08:58:52

Bonjour,

Eh bien merci Kenavo, c'est exactement ce que je voulais.

signaler à un administrateur
Commentaire de GGX91 le 05/01/2006 14:43:08

Bonjour

Bravo pour le programme !
J'ai cependant un problème avec la Preview. L'acquisition video ou Bitpmap fonctionne bien (fichiers OK), mais la preview reste invariablement noire. De plus, il est impossible de modifier la propriété Preview du composant Capture1 dans le programme de Demo, qui reste invariablement à False.

Auriez-vous une idée ? (J'utilise Delphi 7 pro)
Merci.

signaler à un administrateur
Commentaire de medelias le 12/02/2006 15:12:58

salut tous,

j'ai pas pu même pas ouvrir le source en complet il me donne une erreur de type "List index out of limits (0)", d'où vient ce problème???

CHAAO

signaler à un administrateur
Commentaire de askil2000 le 27/03/2006 20:39:52

Salut Kenavo et tout les programmeurs ;)
Comme j'aime bien être le dernier à ajouter un post sur les sources hard. Voici la question qui tue :
comment afficher la fenetre de selection de la source vidéo
affin de pouvoir choisir :) Elle s'affiche 1 fois lors du lancement du prog puis enregistre (je suppose dans la bdr) le périf video de capture. => http://vdpsys.free.fr/choix.jpg

voilà merci à tous et good luck ...

signaler à un administrateur
Commentaire de Kenavo le 31/03/2006 11:59:31

Salut Askil,
Il me semble que c'est la méthode SelectDisplay. Regarde les lignes qui suivent Capture1.Connect, c'est là que sont les dialogues qui apparaissent au début (méthode FormActivate)

Ken@vo

signaler à un administrateur
Commentaire de DeltaFX le 21/04/2006 21:08:27

Et hop, un lien qui pourrait servir à titiller les neurones codeurs :)

http://rsb.info.nih.gov/ij/index.html

signaler à un administrateur
Commentaire de askil2000 le 25/04/2006 03:52:37

Merci Kenavo ! pour cette réponse rapide.
Je n'ai trop cherché j'avoue (manque de temps)
perso j'aurais voulu travailler avec le hcam il est + simple.
//Handle du periph d ela cam
hcam:=capCreateCaptureWindowA('',0,0,0,320,240,handle,0);
//Connection a la cam
sendmessage(hcam,1034,0,0);
etc ...
tu vois de koi je parle.
je pense qu'il existe un sendmessage qui puisse me demander le périf d'entrée video. je m'y connais pas suffisement pour l'affirmer, mais en tout k se serais génial.
http://vdpsys.free.fr/choix.jpg
Merci à tous !

signaler à un administrateur
Commentaire de AimLess le 09/06/2006 14:27:58

Bonjour Kenavo,

Si je peux me permettre, je te félicite sur ce source qui m'est d'une grande utilité... Et oui des petits rigolos s'amuse à fracturer les voitures du voisinage, j'ai donc mis sous surveillance électronique mon box.

Merci pour tes travaux et vive l'open source,

Aimless, l'homme qui fait des bugs plus vite que son ombre

PS : pour Kenavo une grande hola !!! holé ;-)

signaler à un administrateur
Commentaire de AimLess le 09/06/2006 14:39:04

Petite aparté (en espérant que le modérateur ne censure pas ce commentiare) :
Pour les personnes qui ont mis 1/10 à cette source, si je peux encore me permettre (et je le fais ;-) ). Elles sont des truffons (mélanges de truffes et de cons = cons de luxes) :-))))))

Mais bon, nous sommes en démocratie et comme dirait l'autre (Beaumarchais) : "Sans la liberté de blâmer, il n'est point d'éloge flatteur."

Alors encore bravo pour ton source,

Mes repects missiou et peut-être à bientôt sur la toile

Aimless

PS : Bah je suis resté courtois !!! et je suis toujours très zen c'est l'une de mes qualités ;-))))

signaler à un administrateur
Commentaire de CamTre9 le 04/08/2006 12:42:25

Bonjour Kenavo,
Je use le code DemoCapture pour relever le mouvement de les mains, pour déterminé une position x,y moyenne et pour passée au système
      mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);  
      setcursorpos(x,y);                  
      sleep(50);                                  
      mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);      
pour explorer un quicktime panorama sans le mouse.

J’avez un problème: si je mette le software en icone et le panorama quicktime en ‘full screen’ le software ne fonction pas, je pense parce que la fenêtre de DemoCapture n’est pas visible et donc la capture de webcam est enfermée.
Avez vous quelque information au regard?    

Merci beaucoup,
Camillo

PS : excuse moi pour mon français!

signaler à un administrateur
Commentaire de Stephane_menard le 29/08/2006 16:59:56

Bonjour,

quelques questions subsidiares :
- Comment savoir combien de périphériques d'acquisition sont branchés ?
- Comment connaître le nom du périphérique actuellemnt utilisé ?
- Comment régler contraste et luminosité en direct ?
- Commment faire fonctionner correctement une acquisition avec un temps définit ? (je n'y arrive pas avec l'instruction RecordOnFile)

Merci de vos réponses.

signaler à un administrateur
Commentaire de cincap le 30/10/2006 09:07:37

Bonjour Kenavo,

J'ai testé ta source, tout fonctionne correctement. Pour ceux qui veulent choisir la source d'une autre caméra, il suffit de réouvrir une 2ième application et de choisir automatiquement une autre caméra, ce qui pourrait être utile pour faire un ensemble pour 4 caméras sur une seule fiche puisqu'apparemment, le presse papier accepte plusieures images.

signaler à un administrateur
Commentaire de smido le 16/12/2006 11:12:00

Salut,
Merci Kenavo pour ce composant, il est très important.

J’avez un problème: après l'ouverture du programme "DemoCapture" un message d'erreur apparaisse " Indice de liste hors limite (0)"
Comment résoudre ce problème ?
Merci beaucoup,
SMIDO

signaler à un administrateur
Commentaire de goliasse le 13/01/2007 20:12:45

Merci Kenavo ;
Le code marche a la perfection avec les webcams mais , y a t'il une soulution pour améliorer le code afin de pouvoir exploiter la carte TV numérique DVB-s , je sais que ça demande un effort mais je suis d'accord.. pour l'aventure...! car tous les prog qui traite le domaine DVB son en C/C++ dû au lots de documentations disponible pour ces languages ...
en attente .....

signaler à un administrateur
Commentaire de PoulpHunter le 17/01/2007 12:06:57

Salut,!
Super source ! juste c'est ptéte moi, mais j'ai testé sur des PC virtuels n'ayant pas de cam, et sa plante (erreur kernell32.dll)
J'ai testé et après quelques reprises (j'ai viré l'audio car je m'en sert pas aussi) sa serais la fonction :
GetDriverList qui me fesait planter le soft...

j'ai pas eu le temps encore de bien tout analyser mais sinon j'ai matté que cette source me prennait 15-25% de mon CPU contre 30% sur pour la méthode via bitmap
c'est sympa sa !

par contre j'ai toujours pas trouver comment passer en 30 frame par seconde si quelqu'un à une solution (autre que passer sous DirectX) ???

signaler à un administrateur
Commentaire de Kenavo le 17/01/2007 19:02:40

Salut à tous ! et pardon pour le retard !

@SMIDO  : Essaie de repérer la fonction qui pose problème (probablement une ligne dans OnActivate)
@GOLIASSE : Désolé, je ne pourrai pas t'aider (du moins pour le moment) n'ayant pas de carte TV
@PoulpHunter : La fonction GetDriverList(qui m'a été proposée par PHMOSSE) n'est pas indispensable à un fonctionnement basique. 30 FPS semble fonctionner (304 trames en 10,4 secondes en mode capture)
Sur Pentium Dual Core  1.86 Ghz et Logitech 500 pro

@tous : N'oubliez pas qu'il s'agit d'une démo d'un composant sans doute incomplet! Je ne peux pas tester tous les matériels et toutes le configurations !  

signaler à un administrateur
Commentaire de PoulpHunter le 18/01/2007 19:23:39

Exact en capture vidéo sa marche nickel (30fps), juste c'est en preview que sa ramme... (chez moi avec un 2800+)
J'ai testé de lancer une capture sans fichier via StartCapture et la hop, sa marche correctement... mais dès que je Stop sa relague... c'est bizzard... bon enfin tant que sa marche...

Je vais essayer de faire une sorte d'Eye-toy, la j'ai déjà réussi à contrôler le volume du PC via cette source c'est franchement top :D
mais j'aimerais vraiment approfondire les capacitées de la cam...

signaler à un administrateur
Commentaire de Guss_ le 23/04/2007 23:37:22

Salut, cette source me parait interessante mais je n'arrive pas à la lancer
J'utilise Delphi 5 Professionel

J'ai installé les composants avicap.pas et capture.pas

A l'ouverture du projet j'ai les erreurs suivantes:
-ne peut trouver les ficher resources ..\DemoCapture.res. Recrée.   (Normal)
-Erreur lors de la lecture de DemoForm.designSize: Propriété inexistante.
-Erreur lors de la lecture de lbSeuil.caption :Propriété inexistante.
-Erreur lors de la lecture de LbSeuil
-Erreur lors de la lecture de LbSeuil
-Erreur lors de la lecture de LbSeuillbSeuil.ntrÃ'le d'enregistrement
-Erreur à la création de la fiche Erreur de lecture du flux.


Ensuite en essayant d'executer le programe j'ai ue erreur dans Bmp2YUV.pas
Directive de compilation incorrecte : '$A8,B-,C-,D-,E-,F-,G+,H+,I+,J+,K-,L-,M-,N+,O-,P+,Q+,R+,S-,T-,U-,V+,W-,X+,Y-,Z1'

Si quelqu'un à une idées pour me donné une piste.

J'utilise une camera en FireWire(IEEE1394)

signaler à un administrateur
Commentaire de Kenavo le 24/04/2007 17:44:10

Salut

Pour Delphi 5, il est possible que la propriété DesignSize n'existe pas.
lbSeuil étant un TLabel, je ne comprends pas que la propriété Caption puisse être marquée inexistante.
Pour les directives de compilation de Bmp2YUV, je pense que $A8 ne soit pas reconnu pas Delphi 5. Essaie $A-
Pour les autres directives, essaye de la supprimer une à une jusqu'à ce que ça marche.

Bon courage

Ken@vo

signaler à un administrateur
Commentaire de Guss_ le 25/04/2007 01:53:58

Merci, la compilation de Bmp2YUV fonctionne avec $A-

Pour le reste je vais voir, peut être que le fait qu'il ne puisse pas créer la feuille a cause de Designsize, fait qu'il ne trouve pas le lbseuil donc ne peut voir la propriété de celuici.

Je vais creuser...

@+

signaler à un administrateur
Commentaire de brac23 le 26/04/2007 18:41:03

merci Kenavo
je n'ais pas encore testé la demo mais l'effort est important, merci encore une fois et bonne continuation

@+

signaler à un administrateur
Commentaire de brac23 le 26/04/2007 18:43:56

Merci @+

signaler à un administrateur
Commentaire de Guss_ le 29/04/2007 22:00:49

Je pense avoir trouvé le problème.

Dans le fichier U_DemoCap.dfm
à la ligne 55 il y a pluiseurs lignes dans retour à la ligne entrelèlé de ce genre de caractère : 

Comme si le fichier était éronné.

J'ai retéléchargé le ZIP mais sans résultat.

signaler à un administrateur
Commentaire de Kenavo le 30/04/2007 11:29:39

Pas de problèmes dans le zip ! Change d'outil, IzArc par exemple, gratuit et multilingue (même breton, basque, catalan, .....  - http://www.izarc.org/index.html )

signaler à un administrateur
Commentaire de Guss_ le 01/05/2007 13:19:25

Toujours le même problème avec téléchargement avec Opera ou Mozilla, décompressé avec Winrar ou Izarc. Je pense que c'est Delphi qui ne doit pas interprété correctement certain caractère de mise en page.

J'ai enlevé tout les déclaration sur ces label et Bevel, mais je n'ai un souci avec Delphi, le composant installés disparaissent au redemarage de Delphi ???

Merci quand même

signaler à un administrateur
Commentaire de brac23 le 02/05/2007 09:55:38

Bonjour,
   je ne comprend pas bien pourquoi le composant ne fonction pas sur delphi 2006 :(, puis-je avoir votre soutient, Kenavo?
merci d'avance

signaler à un administrateur
Commentaire de aerie le 12/02/2009 14:22:20

Bonjour,

Merci pour ces sources.
Je cherchais à acquérir les images vidéo d'une webcam pour mon projet, et je suis tombée sur ton composant TCapture.
Cela m'a bien aidé.
Cependant, j'aimerais afficher une image, ou un TShape par-dessus le composant, sans incrustation, et ainsi permettre un drag'n drop de cette image ou du shape. J'ai fait hérité le TCapture du TPanel pour avoir en plus les évènements liés au drag'n drop, mais j'ai un problème.
Dès que la vidéo se met en route, l'image ou le shape est alors dissimulé.
En entrant dans le code du TCapture, je n'arrive pas à comprendre comment est affichée la vidéo dans un composant qui dérive du TCustomPanel. Il me semble qu'il n'y a pas de canvas de présent.

Merci d'avance.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

[Webcam] probleme ecran bleu [ par ffomnislash ] hello. J'écris un programme en Delphi me permettant de visualiser le flux vidéo d'un webcam. J'utilise pour cela le composant que voici: h Msn webcam [ par bobizumi ] Salut!J'aimerais savoir si on pouvait (avec un programme ou wathever) changer de webcam ou de source vidéo durant une conversation vidéo msn enregistrer une page web [ par meteor35 ] Bonjour, Est-ce que quelqu'un saurait enregistrer une page web ainsi que son contenu Merci d'avance Meteor Ou enregistrer mon fichier de sauveguarde?? [ par zibong ] Voila j'ai fait un petit logiciel mais je voudrai sauvegardai les information donné par l'utilisateur. J'ai mis toute ces information dans un fic [graphics32] Enregistrer sous... pour garder les calques [ par nitrique ] enregistrer des TStringList dans un fichier [ par tichau4 ] voila mon probleme : je voudrai enregistrer une liste de TStringList dans un seul fichier. Comment faire, apparament la technique si dessous ne march Détecter Fin de WindowsMediaPlayer [ par Also know as ] Bonjour, Voilà je me renseigne pour savoir s'il était possible de détecter quand le lecteur Windows Media à fini de lire sa vid&# Insérer une image dans une autre ... [ par Yil2201 ] Salut! Voila, là je bosse sur un soft qui sert à faire des photos avec sa webcam. Aucun problème, je recois bien l'image webcam. J'ai v Enregistrer, Enregistrer sous, Fermer, Ouvrir un Fichier [ par Kad Kad ] Encore une question, comment puis-je faire pour que les fonctions " Enregistrer, Enregistrer sous, Fermer, Ouvrir un Fichier" de mon MainMenu fas Webcam, keylogger et renvoi d'ip avec IdTCPClient1 et IdTCPServer1 [ par ewertheimer ] Bonjour, Je voudrais creer un logiciel client/serveur(IdTCPClient1/IdTCPServer1). Je vous explique je voudrais que le serveur, dés qu'il sera activé r


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,591 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.