Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.9.1 - Qt Creator : 4.4.0 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

Enregistrement video pour un événement

Bonjour,

Me revoila ( il a fallu attendre 1 jour ^^)

Je viens vers vous pour vous demander conseils et de l'aide. Alors voila le problème :
j'ai ma webcam qui film et lorsque je reçois un signal, je souhaiterais enregistrer les quelques dizaines de secondes ( par exemple ) qui se sont passées AVANT ce signal.
J'utilise l'environnement Qt avec la bibliothèque OpenCV.
Pour l'instant j'arrive à enregistrer le flux video qui sort de ma webcam.

Alors voici comment on fait pour enregistrer une video avec openCV :

newImage = cvQueryFrame(capture); // pour initialiser l'image pour avoir la taille
writer = cvCreateVideoWriter("maVideo.avi", CV_FOURCC_DEFAULT, 15 (correspond au frame par seconde) , cvSize(newImage->width,newImage->height), 1);
ensuite toute les 30ms par exemple, on fait ceci :

newImage = cvQueryFrame(capture);
cvWriteFrame(writer, newImage);
Donc une de mes solutions serait de stocker toutes les newImage dans un vecteur(ou tableau car je connais la taille au départ) et lorsque mon tableau est plein je supprime la premiere newImage et je réindex toutes les autres pour pouvoir stocker la dernière newImage à la fin du tableau tout ça en temps réel.
Et lorsque je reçois un signal demandant d'enregistrer les 10 dernières secondes je ferais une boucle avec cvWriteFrame et mon tableau de newImage.

Mais est ce réalisable en temps réel ? le temps de calcul ne serait pas trop long pour réindexer le tableau en temps réel ?
Ou bien avez vous une meilleur solution ? :)

Merci d'avance :)
Connectez-vous ou Inscrivez-vous pour répondre.