Je voudrais générer un film en temps réel avec une application self-made faisant des captures d'écran rapides avec une partie de l'écran occupée par une application 3D en cours d'exécution. Je suis conscient que plusieurs applications existent déjà pour cela (comme FRAPS ou Taksi), et même des filtres DirectShow dédiés (comme UScreenCapture), mais j'ai vraiment besoin de faire cela avec ma propre application externe. Lorsqu'elle est correctement configurée (UScreenCapture + ffdshow), la capture d'une compression en plein écran ne consomme pas autant de CPU que prévu (environ 15%) et ne nuit pas aux performances de l'application 3D. Le problème de faire une capture à partir d'une application externe est que l'application 3D perd son Vsync et crée une application 3D hirsute et difficile à utiliser (l'application 3D est seulement présentée sur une petite partie de l'écran, le reste étant GDI , DirectX)Capture d'écran rapide et perte de Vsync
FRAPS résout ce problème en vous permettant de capturer une seule application à la fois (celle avec focus). Selon la technologie utilisée (OpenGl, DirectX, GDI), il connecte le Vsync et fait sa capture (avec glReadPixels, ...), sans le perturber. Cela ne résout pas mon problème, car je veux l'image composée complète de l'écran (y compris la 3D et le reste) ET une application 3D lisse. L'UScreenCapture semble utiliser un appel DirectX rapide pour capturer tout l'écran, mais l'application openGL 3D est toujours désynchronisée.
Faire un BitBlt est trop lent et consumming CPU à faire en temps réel 30 images par seconde acquisition (au moins sous Windows XP, pas sûr avec 7)
Ma question est de savoir s'il y a un moyen d'atteindre mon objectif avec Windows 7 et son tout nouveau moteur de composition DirectX? Windows 7 réussit à afficher en direct des aperçus dupliqués VSynced de chaque application (dans la barre des tâches), il doit donc y avoir un moyen d'accéder au tampon écran actuellement affiché sans perturber le rendu de l'application 3D OpenGL.
Autre suggestion, technologie? merci
Comment avez-vous utilisé ffmpeg avec? – rogerdpack