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

  1. 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

  2. Use hardware como DVI2USB da Epiphan Systems.Custa muito;ainda não tentei.

  3. 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:

link para o blog do MSDN

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top