Pregunta

Tengo un archivo WPF (XAML) simple que tiene algunas formas animadas y texto.La animación no tiene comportamiento interactivo.Quiero grabar esta animación como un archivo de video que luego pretendo usar como pantalla de "introducción" a un screencast.

Lo que creo que necesito:Código C# que toma un archivo XAML de entrada y genera un WMV de alta calidad (por ejemplo, a 24 fps).

Posibles alternativas que ya he investigado

  1. Grabe con un software de grabación de pantalla como Camtasia Studio.Esto funciona, pero las animaciones no son tan fluidas, especialmente cuando la animación tiene muchas transiciones o movimiento.

  2. Utilice hardware como DVI2USB de Epiphan Systems.Cuesta demasiado;No lo he probado.

  3. Grabe la salida de TV (S-Video, etc.) usando una tarjeta DVR: baja calidad y baja resolución.

Actualización del 28 de octubre de 2008: código fuente funcional

Esta publicación de blog tiene un ejemplo de código fuente completo y funcional sobre cómo exportar WPF/XAML como AVI.No es tan rápido como me gustaría pero funciona para mis necesidades:

enlace al blog de MSDN

¿Fue útil?

Solución

Renderice fotogramas con RenderTargetBitmap y luego codifique con el códec de su elección.No es muy rápido, pero se pueden lograr 24 fps en una PC normal.Usamos una técnica similar para enviar secuencias de video desde nuevos indicadores WPF al sistema de mapa de bits heredado.Puede que haya una solución mejor, pero funciona.

También escuché de una solución que extrae el cuadro renderizado de los buffers DirectX que WPF usa internamente y que funciona mucho más rápido que RenderTargetBitmap, pero parecía demasiado poco confiable para usarlo en un sistema de producción.

Actualizar:parece que no necesitas tiempo real, por lo que RenderTargetBitmap debería funcionar sin ningún problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top