Webcam - enregistrer un film en memoire central

bonjour tout le monde,

je suis en train de develloper une application et j’aurais besoin de savoir s’il est possible d’enregistrer un film de 10 seconde en mémoire central et pas en dur sur mon disque dur.

Si c’est possible j’aimerais savoir comment faire ou s’il existe des sites ou cela est expliquer.

merci d’avance a tout le monde.

c’est quoi la “mémoire central” ?

La RAM.

la memoire central c’est la ram, si tu prefere.
C’est la mémoire volatile de ton ordinateur.

ça dépend de l’application, et au pire, tu met ton film sur un RAMDrive: i.e. un disque virtuel (avec une lettre différente) mappé sur une partie de la RAM.

Si tu as 2 GO de RAM tu peux le faire => mais il faut que ton image soit compressée! sinon ca ne rentrera pas!
=> quel est ton objectif au final?
pour info quand j’ai programmé un logiciel d’acquisition d’images sans compression en niveau de gris ca me prenait 2MO/images
22460*10 = beacoup de mémoire !!!

Bin mon application devra permettre de conserver dans un fichier video les 10 seconde filmer par webcam avant que l’utilisateur appuie sur un bouton.

Donc je dois toujours conserver quelque par ce que film ma webcam.
J’avais penser à avoir toujours en mémoire central les 10 seconde.
Mais j’ai peur que cela occupe trop de place sur la memoire et fasse ralentir les autre processus.

Mais au final je pense mettre mes 10 seconde dans un fichier temporaire

Mais meme probleme comment on fait pour créer un fichier video temporaire?

meme chose q’un fichier normal sauf que l’extension est tmp ou temp

Pense par contre à contrôler l’existence d’un précédent fichier temporaire au lancement de l’application (et l’effacer si tu en trouves un), histoire de ne pas surcharger le disque dur en cas de plantage :wink:

En quel language programmes-tu ?
Pour ne stocker qu’en RAM (ne pas écrire sur le disque dur) tu créer une variable qui contiendra les données (brutes) de la vidéo :neutre:

desole j’ai oublier de preciser le language que j’utilise
Je devellope en C++.

Comment on fai en C++ pour affecter une video a une variable
c’est comme les aute affectations?

Si tu n’as pas assez de RAM tu fonctionnera avec le swap (gros ralentissement perf).
Si tu as un programme d’acquisition, celui-ci doit avoir de 1 à 3 tableaux contenant les valeurs de ton images (1 image niveaux de gris, et 3 Y, Cr, Cb en couleur). Ces tableaux codent des valeurs en X Bits (selon si c’est des int, float, long, double etc). Donc ta vidéo et une suite de valeurs. (leur nombre = résolution en brute ou nb de pixels).
As tu déjà un programme qui te permet de faire l’acquisition de tes images?
Il faut plus de détails sur ce que tu veux faire.

Dans ce cas, ajoute le langage (c++) dans le titre du topic :slight_smile:

Bin mon programme doit consister a enregistrer une video que ma webcam film.

Donc quand un utilisateur va se servir de mon application et cliquer sur le bouton enregistrer, le programme devra enregistrer se qui a été filmer pendant les 10 seconde avant qu’il appuie sur le bouton.
Pour effectuer cela je suis obliger de conserver quelque part 10 seconde au minimum de film de ma webcam.
j’ai penser à reserver 2 buffer (espace mémoire) qui contienne chaqu’un 10 seconde de vidéo.

Quan l’un est plein, on remplie le second de facon a toujours avoir les 10 derniere seconde en mémoire, pour pouvoir aprés les enregistrer dans un fichier avi quand on le voudra.

Mais ce que je ne sais pas faire c’est enregistrer dans un buffer ou en mémoire central.

autant enregistrer directement dans un fichier. Je suis presque sur que tu peux diriger le flux de la webcam vers un fichier standard. Une fois enregistré, tu change de fichier (un compteur dans le nom doit suffire). puis si l’utilisateur veut sauver les données, il peut le faire facilement. al a fin du programme tu supprimes lmes fichiers temporaires qui contiennent des vidéos que l’utilisateur n’a pas voulu sauver.

je pense que je vais faire, enregistrer dans des fichier temporaire.

Merci tout le monde

Tu nous dis pas à partir de quel logiciel tu capture les images? qui fais l’acquisition?
Veux tu faire un logciel qui fais ça ou utiliser un logiciel existant pour le faire ???

Car appuyer sur un bouton pour enregistrer un flux de 10 sec y en a plein de logiciel qui te permettent de faire ça de facon manuel (utilisation de ceux-ci)

c’est pour ca que je te demandais plus de details :confused:

int **video=new int[lengthfps][widthheigh];

Bin je vais tout gerer dans mon application
capture video
enregistrement dans un fichier

tout ca sera fai en C++

C’est quoi se que tu as marquer popolof??

Allocation d’un buffer qui contiendra les données en ram, bon courage …