我有一个简单的 WPF (XAML) 文件,其中包含一些动画形状和文本。动画没有交互行为。我想将此动画录制为视频文件,稍后我打算将其用作截屏视频的“介绍”屏幕。

我认为我需要的是:C# 代码接受输入 XAML 文件并输出高质量的 WMV(例如 24fps)。

我已经研究过可能的替代方案

  1. 使用Camtasia Studio等屏幕录制软件进行录制。这可行,但动画不那么流畅,特别是当动画有很多过渡或运动时

  2. 使用 Epiphan Systems 的 DVI2USB 等硬件。成本太高;没试过。

  3. 使用 DVR 卡记录电视输出(S-Video 等) - 低质量和低分辨率。

2008 年 10 月 28 日更新 - 工作源代码

这篇博文有一个将 WPF/XAML 导出为 AVI 的完整工作源代码示例。它没有我想要的那么快,但它可以满足我的需求:

链接到 MSDN 博客博主

有帮助吗?

解决方案

使用 RenderTargetBitmap 渲染帧,然后使用您选择的编解码器进行编码。速度不是很快,但在普通 PC 上可以达到 24 fps。我们使用类似的技术将视频流从新的 WPF 指示器馈送到旧位图系统。可能有更好的解决方案,但它有效。

我还听说过一种从 DirectX 缓冲区中提取渲染帧的解决方案,WPF 在内部使用该解决方案,其工作速度比 RenderTargetBitmap 快得多,但在生产系统中使用它似乎太不可靠了

更新:看来您不需要实时,因此 RenderTargetBitmap 应该可以正常工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top