我有一个简单的WPF(XAML)文件,它有一些动画形状和文本。动画没有交互行为。我想把这个动画录制成一个视频文件,我后来打算用它作为截屏视频的“介绍”屏幕。
我认为我需要:C#代码采用输入XAML文件并吐出高质量的WMV(例如24fps)。
使用Camtasia Studio等屏幕录制软件进行录制。这有效,但动画并不是很流畅,特别是当动画有很多过渡或动作时
使用Epiphan Systems的DVI2USB等硬件。成本太高;没试过。
使用DVR卡录制电视输出(S-Video等) - 低质量和低分辨率。
此博客文章包含将WPF / XAML导出为AVI的完整工作源代码示例。它并不像我想的那么快,但它可以满足我的需求:
答案 0 :(得分:4)
使用RenderTargetBitmap渲染帧,然后使用您选择的编解码器进行编码。速度不是很快,但普通PC上可以达到24 fps。我们使用类似的技术将视频流从新的WPF指标提供给传统的位图系统。可能有更好的解决方案,但它确实有效。
我还听说过一个解决方案,从内部使用WPF从DirectX缓冲区中提取渲染帧,其工作速度比RenderTargetBitmap快得多,但在生产系统中使用它似乎太不可靠了
更新:看起来你不需要实时,所以RenderTargetBitmap应该没有任何问题。