Как преобразовать файл XAML/WPF в видео (AVI, WMV и т. д.)

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

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

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

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

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

  3. Запись ТВ-выхода (S-Video и т. д.) с помощью карты DVR - Низкое качество и низкое разрешение.

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

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

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


person namenlos    schedule 16.09.2008    source источник


Ответы (1)


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

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

Обновление: похоже, вам не нужен режим реального времени, поэтому RenderTargetBitmap должен работать без проблем.

person ima    schedule 16.09.2008