Я пытаюсь написать приложение, которое сначала объединяет видео в игровой движок XNA, добавляет некоторый контент дополненной реальности, а затем передает обработанный контент другому пользователю. Все это должно происходить в реальном времени или почти в реальном времени. По сути, система будет выглядеть так:
Видео -> XNA (Игра) -> (???) -> Двигатель выражений -> Живой эфир -> Сеть -> Клиент
Чистый и элегантный способ сделать это состоит в том, чтобы обработать вывод XNA как LiveDeviceSource и передать его непосредственно в потоковое задание Expression Engine. Можно ли написать собственный LiveDeviceSource или что-то подобное для этого? По сути, кто-то знает, как создать пользовательский источник для механизма выражений, где я могу просто вставить буфер визуализации XNA прямо в кодировщик? Было бы довольно легко выгрузить буфер в файл, и механизм кодирования мог бы это закодировать, но я боюсь, что запись на диск будет слишком большой из-за времени, необходимого для записи на диск.
Альтернатива быстрому и грязному взлому - заставить механизм выражений сделать снимок экрана с выходным окном и затем передать его в поток. Я могу заставить Expression Engine делать снимки экрана, но не могу транслировать их в прямом эфире. Может кто-нибудь посоветовать, как делать оба одновременно?
Заранее извиняюсь за этот вопрос, который не был так хорошо сформирован, так как я все еще знакомлюсь с Expression Engine SDK. Для справки я использую XNA 4, MS Expression Engine 4 и Visual Studio 2010. Наша цель - в конечном итоге интегрировать эту технологию с готовящимся выпуском Goblin XNA.
Я также был бы открыт для предложений о других способах потоковой передачи живого видео напрямую из XNA. Мы не женаты на Expression Engine, просто это лучшее решение для потоковой передачи, с которым мы когда-либо сталкивались (у нас проблемы с ffmpeg).