Question

J'ai un simple fichier WPF (XAML) qui contient des formes animées et du texte. L'animation n'a pas de comportement interactif. Je souhaite enregistrer cette animation sous forme de fichier vidéo que je compte utiliser par la suite en tant que "introduction". écran à un screencast.

Ce dont je pense avoir besoin: un code C # qui prend un fichier XAML d’entrée et crée un fichier WMV de haute qualité à (par exemple, à 24 images par seconde).

Alternatives possibles que j'ai déjà examinées

  1. Enregistrez avec un logiciel d’enregistrement sur écran tel que Camtasia Studio. Cela fonctionne, mais les animations ne sont pas aussi fluides, en particulier lorsque l’animation comporte beaucoup de transitions ou de mouvements.

  2. Utilisez du matériel tel que DVI2USB d’Epiphan Systems. Coûte trop cher; ne l'ai pas essayé.

  3. Enregistrez une sortie TV (S-Vidéo, etc.) à l'aide d'une carte DVR - Basse qualité et basse résolution.

Mise à jour du 28 octobre 2008 - code source de travail

Cet article de blog contient un exemple de code source complet permettant d'exporter WPF / XAML en tant qu'AVI. Ce n'est pas aussi rapide que je le souhaiterais, mais cela répond à mes besoins:

lien vers le blog MSDN bost

Était-ce utile?

La solution

Rendez les images avec RenderTargetBitmap, puis encodez avec le codec de votre choix. Pas très rapide, mais 24 images par seconde sont réalisables sur un PC ordinaire. Nous utilisons une technique similaire pour alimenter un flux vidéo à partir de nouveaux indicateurs WPF vers un système bitmap hérité. Il y a peut-être une meilleure solution, mais ça marche.

J'ai aussi entendu parler d'une solution permettant d'extraire le cadre rendu à partir des mémoires tampons DirectX utilisée en interne par WPF, qui fonctionne beaucoup plus rapidement que RenderTargetBitmap, mais qui semblait trop peu fiable pour être utilisée dans un système de production

Mise à jour: il semble que vous n'ayez pas besoin de temps réel. RenderTargetBitmap devrait fonctionner sans aucun problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top