2009-02-11 8 views
1

J'ai écrit une application de visualisation en temps réel dans DirectX. Le truc, c'est qu'il devrait être affiché sur plusieurs ordinateurs, en tant que flux vidéo.Streaming WMV d'un rendu DirectX

Je suppose que WMV sera le codec le plus facile à utiliser, puisqu'il s'agit de MS et tout ça. Alors, comment convertir une série de captures d'écran DirectX en un flux vidéo WMV fluide à 30 fps?

+0

C'est quelque chose dont j'ai besoin aussi. – Virne

Répondre

2

Je vous recommande d'écrire un filtre source DirectShow. Le filtre source peut fournir un codeur avec une série de bitmaps à coder dans un format compressé pour le transport. Vous pouvez l'enregistrer sur le disque avec un filtre d'écriture de fichier ou le diffuser à l'aide d'un filtre de diffusion en continu sur le réseau.

Cependant, ceci est une tâche non triviale! Pouvons-nous voir votre code pour l'application de visualisation?

S'il vous plaît?!

+0

Je pense qu'un filtre source est la bonne idée. Il existe des exemples dans le Kit de développement Windows que vous pouvez utiliser pour commencer. Le transfert constant de données d'image/de texture du GPU vers la mémoire système (que vous devrez faire pour le vider sur le disque) va être un tueur de performance cependant. J'aurais plusieurs cibles de rendu que le moteur de rendu de visualisation parcourt de telle sorte qu'il n'écrit jamais sur une cible de rendu qui doit être téléchargée dans la même mémoire. Vous pouvez ensuite lire le thread de travail dans cette file d'attente et envoyer les images au filtre source. – eodabash