|
| Capture Vidéo avec Aforge.Video.FFMPEG |
| Iniciado por Jonathan, 14,ene. 2019 10:56 - 2 respuestas |
| |
| | | |
|
| |
Miembro registrado 3 mensajes |
|
| Publicado el 14,enero 2019 - 10:56 |
Bonjour,
Dans notre logiciel, nous avons voulu ajouter une petite fonctionnalité afin de pouvoir prendre en vidéo se qu'il se passe dans l'application.
Pour ce faire, je me suis basé sur des tutoriels C# qui utilisaient la bibliothèque Aforge.Video.FFMPEG : .
J'ai légèrement modifié ce qu'il y a dans le tutoriel afin de l'adapter à l'utilisation du logiciel.
J'ai créé un thread qui exécute toutes les 10 centièmes de seconde une procédure qui va me capturer ce qu'il y a sur mon écran. Mon code est construit comme suie :
_bitmap est un System.Drawing.Bitmap dynamic _graphics est un System.Drawing.Graphics dynamic _picturebximg est un PictureBox _writer est un VideoFileWriter dynamic _writer = new VideoFileWriter()
_writer:Open(GF_s_RepTemp+"\Video_"+GF_s_DateAudit+".avi",Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, 2,VideoCodec.MPEG4,1000000) ChronoDébut(2) Timer("PL_GoVideoTimer",10,1)
Procedure PL_GoVideoTimer()
_size est un System.Drawing.Size dynamic
_bitmap = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
_size = new "System.Drawing".Size(Screen.PrimaryScreen.Bounds.Width,Screen.PrimaryScreen.Bounds.Height);
_graphics = System.Drawing.Graphics.FromImage(_bitmap);
_graphics:CopyFromScreen(GF_n_Source_x,GF_n_Source_Y,0,0,_size);
_picturebximg:Image = _bitmap; _picturebximg:SizeMode = PictureBoxSizeMode.StretchImage;
_writer:WriteVideoFrame(_bitmap);
FinTimer(1)
L'enregistrement de la vidéo se passe très bien, or, je rencontre un problème au niveau du curseur, car il n'est pas visible dans la vidéo. J'ai donc ajouté un icône représentant le curseur dans la vidéo pour chaque appel de ma procédure PL_GoVideoTimer() à l'aide de ce code :
_icon est un System.Drawing.Icon dynamic _icon = new "System.Drawing".Icon(SystemIcons.Exclamation,40,40)
_position = CurseurPos(cpEcran) _positionX = PoidsFaible(_position) _positionY = PoidsFort(_position) _graphics:DrawIcon(_icon,_positionX,_positionY)
Donc après l'ajout d'un icône simulant un curseur sur ma vidéo, je me suis aperçu que lors d'un clic sur un bouton contenant un menu contextuel, celui-ci n’apparaissait pas. A partir de là je suis coincé.
Avez-vous une idée afin de me débloquer ? Un grand merci par avant.
Cordialement, JonathanMensaje modificado, 14,enero 2019 - 11:00 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 954 mensajes |
|
| Publicado el 14,enero 2019 - 18:06 |
Coucou,
L'utilitaire "WD Démonstration" de la LST 110 ne te convient pas ?
"WD Démonstration" vous permet de capturer en vidéo ce qui se passe à l'écran, une zone définie d'un écran ou bien une fenêtre spécifique. Reference: https://www.pcsoft.fr/lst/Last/lst110.htm
-- In üs we trust - #92i - #LaPiraterieNestJamaisFinieMensaje modificado, 14,enero 2019 - 18:08 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 3 mensajes |
|
| Publicado el 15,enero 2019 - 10:34 |
Bonjour,
Je vous remercie pour cette réponse rapide et plutôt efficace. J'ignorais l’existence de ce petit projet fait par Windev.
Après pour ma simple culture si l'on pouvait me donner une explication à mon problème initial, j’apprécierai;
Mais la LST 110 répond très bien à ma demande, à moi d'essayer de l'adapter.
Merci de votre aide. Cordialement, Jonathan |
| |
| |
| | | |
|
| | | | |
| | |
|