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

StackOverflow https://stackoverflow.com/questions/75906

Вопрос

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

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

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

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

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

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

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

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

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

Это было полезно?

Решение

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top