Как преобразовать файл XAML / WPF в видео (AVI, WMV и т. Д.) - PullRequest
4 голосов
/ 16 сентября 2008

У меня есть простой файл WPF (XAML) с анимированными фигурами и текстом. Анимация не имеет интерактивного поведения. Я хочу записать эту анимацию в виде видеофайла, который позже собираюсь использовать в качестве экрана «вступления» для скринкаста.

То, что мне нужно: код C #, который принимает входной файл XAML и выдает высококачественный WMV (например, со скоростью 24 кадра в секунду).

Возможные альтернативы, которые я уже исследовал

  1. Запись с помощью программного обеспечения для записи экрана, такого как Camtasia Studio. Это работает, но анимация не такая плавная, особенно когда анимация имеет много переходов или движений

  2. Используйте аппаратные средства, такие как DVI2USB от Epiphan Systems. Стоит слишком дорого; еще не пробовал.

  3. Запись телевизионного выхода (S-Video и т. Д.) С использованием карты DVR - низкого качества и низкого разрешения.

Обновление от 28 октября 2008 г. - рабочий исходный код

В этом посте приведен полный рабочий пример исходного кода экспорта WPF / XAML в виде AVI. Это не так быстро, как хотелось бы, но работает для моих нужд:

ссылка на блог MSDN bost

1 Ответ

4 голосов
/ 16 сентября 2008

Рендеринг кадров с помощью RenderTargetBitmap, затем кодирование с использованием кодека по вашему выбору. Не очень быстро, но на обычном ПК достижимо 24 кадра в секунду. Мы используем подобную технику для подачи видеопотока с новых индикаторов WPF в устаревшую растровую систему. Возможно, есть лучшее решение, но оно работает.

Я также слышал о решении с извлечением отрендеренного кадра из буферов DirectX, которое WPF использует внутри, которое работает намного быстрее, чем RenderTargetBitmap, но оно казалось слишком ненадежным для использования в рабочей системе

Обновление: кажется, что вам не нужно в реальном времени, поэтому RenderTargetBitmap должен работать без проблем.

...