2011-12-14 3 views
5

J'ai besoin d'afficher simultanément une vidéo en cours de lecture dans mon applciation, en plein écran sur un moniteur plus grand. Sur certaines cartes vidéo, cela s'appelle le mode Théâtre et est configuré à l'aide d'un outil fourni par le fabricant de la carte.Recréer le mode Cinéma avec DirectX

Je voudrais faire cela avec seulement un logiciel. Puis-je le faire avec DirectX?

Mon idée est de prendre la lecture de la vidéo actuellement active à l'aide de DirectShow et de la repeindre sur un deuxième écran (configuré par l'utilisateur) en mode plein écran.

De quelles technologies ou méthodes utiliserais-je?

Répondre

2

La méthode la plus simple consiste à diviser la vidéo encodée en deux branches et à utiliser deux ensembles de rendu vidéo pour présenter la vidéo sur différents moniteurs. Un moteur de rendu pourrait faire partie de l'interface utilisateur de votre application, l'autre pourrait s'étendre en plein écran sur le grand écran secondaire.

enter image description here

Fractionnement vous donne vidéo encodée une option pour exploiter encore le décodage assisté du matériel (DXVA) le cas échéant. Vous préférerez peut-être utiliser uniquement un décodeur logiciel et diviser la vidéo déjà décodée - cela va également fonctionner.

Vous pouvez également implémenter un filtre qui désactiverait temporairement l'un ou l'autre des rendus, par exemple en arrêtant le passage d'échantillons de média.

Une autre chose que vous pouvez faire est d'utiliser le pontage pour contrôler les moteurs de rendu de manière encore plus flexible et être capable de les détacher de la source multimédia.

+0

Merci pour votre réponse. Je vous ai envoyé un courriel et j'aimerais pouvoir vous poser quelques questions. – Jason