avec la lib vfw, ca doit etre possible de stocker la frame et de la comparer à la précédente pour voir si il y a un changement et puis ensuite de renregistrer la passage. par contre, chaque pixel qui change sera reaffiché. pour un effet qui detecte plus le mouvement, il faudrait localiser les positions qui changent(tester un pixel plus le nombre de pixels qui changent autours de lui, plus le nombre autour de lui est grand, plus sa valeur d'affichage augmente, si sa valeur d'affichage dépasse une certaine valeur, on l'affiche)
AVISTREAMINFO psi; AVIStreamInfo(pavi_video, &psi, sizeof(psi)); //infos sur le stream video int width=psi.rcFrame.right-psi.rcFrame.left; //recupere la largeur int heigtht=psi.rcFrame.bottom-psi.rcFrame.top; //recupere la hauteur
LPBITMAPINFOHEADER lpbi; lpbi = (LPBITMAPINFOHEADER)AVIStreamGetFrame(pgf, frame); // recupere la frame char *temp=(char *)lpbi+lpbi->biSize+lpbi->biClrUsed * sizeof(RGBQUAD); //tableau
//temp est le tableau with*height*3 qui contient les pixel de la frame
ensuite, y a plus qu'a comparer le tableau temp avec celui de la frame precedente
pour la réécriture, je n'ai jamais essayé mais j'ai trouvé une source sur ce site : http://www.cppfrance.com/codes/CONVERTIR-IMAGES-WAV-VERS-FICHIER-AVI-WIN32_28542.aspx qui gère ca, tu dois pouvoir trouver les infos nécessaires dedans.
pour la lecture, j'ai fait un tuto ici : http://killingskill.ke0.eu/index.php?page=tuto&tuto=video
|