Como transformar um arquivo XAML/WPF em um vídeo (AVI, WMV, etc.)
Pergunta
Eu tenho um arquivo WPF (XAML) simples que contém algumas formas e textos animados.A animação não tem comportamento interativo.Quero gravar esta animação como um arquivo de vídeo que pretendo usar posteriormente como tela de "introdução" de um screencast.
O que acho que preciso:Código C# que pega um arquivo XAML de entrada e gera um WMV de alta qualidade (por exemplo, a 24 fps).
Possíveis alternativas que já investiguei
Grave com um software de gravação de tela como o Camtasia Studio.Isso funciona, mas as animações não são tão suaves, especialmente quando a animação tem muitas transições ou movimentos
Use hardware como DVI2USB da Epiphan Systems.Custa muito;ainda não tentei.
Grave saída de TV (S-Video, etc.) usando uma placa DVR - Baixa qualidade e baixa resolução.
Atualização em 28 de outubro de 2008 - código-fonte funcional
Esta postagem do blog tem um exemplo de código-fonte completo e funcional de exportação de WPF/XAML como AVI.Não é tão rápido quanto eu gostaria, mas funciona para minhas necessidades:
Solução
Renderize quadros com RenderTargetBitmap e codifique com o codec de sua escolha.Não muito rápido, mas 24 fps são possíveis em um PC normal.Usamos uma técnica semelhante para alimentar o fluxo de vídeo dos novos indicadores WPF para o sistema legado de bitmap.Pode haver uma solução melhor, mas funciona.
Também ouvi falar de uma solução que extrai quadros renderizados de buffers DirectX que o WPF usa internamente e que funciona muito mais rápido que o RenderTargetBitmap, mas parecia pouco confiável para uso em um sistema de produção
Atualizar:parece que você não precisa de tempo real, então o RenderTargetBitmap deve funcionar sem problemas.