Как преобразовать файл XAML / WPF в видео (AVI, WMV и т.д.)
Вопрос
У меня есть простой файл WPF (XAML), который содержит несколько анимированных фигур и текст.Анимация не имеет интерактивного поведения.Я хочу записать эту анимацию в виде видеофайла, который позже собираюсь использовать в качестве вступительного экрана к скринкасту.
То, что, как я думаю, мне нужно:Код на C #, который принимает входной файл XAML и выдает высококачественный WMV-файл (например, со скоростью 24 кадра в секунду).
Возможные альтернативы я уже исследовал
Записывайте с помощью программного обеспечения для записи экрана, такого как Camtasia Studio.Это работает, но анимация получается не такой плавной, особенно когда в анимации много переходов или движения
Используйте такое оборудование, как DVI2USB от Epiphan Systems.Стоит слишком дорого;еще не пробовал.
Запись телевизионного сигнала (S-Video и т.д.) с помощью карты видеорегистратора - низкое качество и низкое разрешение.
Обновление от 28 октября 2008 г. - рабочий исходный код
В этом сообщении в блоге приведен полный рабочий пример исходного кода экспорта WPF / XAML в формате AVI.Это не так быстро, как мне бы хотелось, но это работает для моих нужд:
Решение
Визуализируйте кадры с помощью RenderTargetBitmap, затем кодируйте с помощью выбранного вами кодека.Не очень быстрый, но 24 кадра в секунду достижимы на обычном ПК.Мы используем аналогичную технику для передачи видеопотока с новых индикаторов WPF на устаревшую растровую систему.Возможно, есть решение получше, но оно работает.
Я также слышал о решении с извлечением визуализированного кадра из буферов DirectX, которое WPF использует внутренне, которое работает намного быстрее, чем RenderTargetBitmap, но оно казалось слишком ненадежным для использования в производственной системе
Обновить:кажется, вам не нужен режим реального времени, поэтому RenderTargetBitmap должен работать без каких-либо проблем.