Bonjour !
J'aimerais faire des vidéos en sauvegardant le contenu de mon application DirectX dans un fichier avi...
Après quelques recherches sur le web, je n'ai pas trouvé beaucoup de pistes...
Une idée ?
En vous remerciant...
Francky
Bonjour !
J'aimerais faire des vidéos en sauvegardant le contenu de mon application DirectX dans un fichier avi...
Après quelques recherches sur le web, je n'ai pas trouvé beaucoup de pistes...
Une idée ?
En vous remerciant...
Francky
Je ne sais pas si DirectShow peut le faire, par contre je te propose autre chose :
- Le faire avec l'API Win32 (quelques posts doivent déjà en parler, soit sur ce forum soit sur "Développement Windows").
- Faire tes captures avec le logiciel FRAPS.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Merci pour votre réponse, c'est une piste que je vais exploter...
J'ai réussi à capturer les images de l'écran dans un fichier avi
en faisant en gros :
_device->CreateOffscreenPlainSurface(...);
je récupère la surface du Back Buffer
_device->GetFrontBufferData (0, surf)) ;
j'accède aux datas de la surface
surf->LockRect(...);
J'envoie les datas de l'image dans un fichier avi
AVIStreamWrite(...);
Ca marche très bien. Le seul (gros) problème est l'extrême lenteur de la fonction_device->GetFrontBufferData (0, surf)) ; (presque 1 seconde par image !) qui rend inutilisable le logiciel...
Comment accélérer le traitement de GetFrontBufferData ? Y-a-t-il une façon plus simple d'accéder aux pixels de l'image affichée ?
En vous remerciant pour vos réponses...
Francky
J'ai utilisé votre méthode (utiliser les API de base de Windows pour récupérer l'écran et ça marche parfaitement !!!!!)
Je récupère le bitmap de l'écran dans un dc compatible, je fait un bitblt etc.. etc... et j'envoie les données vers AVIStreamWrite !!!
Merci encore aux passionnés de Developpez.com
Partager