如何将 XAML/WPF 文件转换为视频(AVI、WMV 等)
题
我有一个简单的 WPF (XAML) 文件,其中包含一些动画形状和文本。动画没有交互行为。我想将此动画录制为视频文件,稍后我打算将其用作截屏视频的“介绍”屏幕。
我认为我需要的是:C# 代码接受输入 XAML 文件并输出高质量的 WMV(例如 24fps)。
我已经研究过可能的替代方案
使用Camtasia Studio等屏幕录制软件进行录制。这可行,但动画不那么流畅,特别是当动画有很多过渡或运动时
使用 Epiphan Systems 的 DVI2USB 等硬件。成本太高;没试过。
使用 DVR 卡记录电视输出(S-Video 等) - 低质量和低分辨率。
2008 年 10 月 28 日更新 - 工作源代码
这篇博文有一个将 WPF/XAML 导出为 AVI 的完整工作源代码示例。它没有我想要的那么快,但它可以满足我的需求:
解决方案
使用 RenderTargetBitmap 渲染帧,然后使用您选择的编解码器进行编码。速度不是很快,但在普通 PC 上可以达到 24 fps。我们使用类似的技术将视频流从新的 WPF 指示器馈送到旧位图系统。可能有更好的解决方案,但它有效。
我还听说过一种从 DirectX 缓冲区中提取渲染帧的解决方案,WPF 在内部使用该解决方案,其工作速度比 RenderTargetBitmap 快得多,但在生产系统中使用它似乎太不可靠了
更新:看来您不需要实时,因此 RenderTargetBitmap 应该可以正常工作。
不隶属于 StackOverflow