Я написал игру для OpenGL и хочу разрешить удаленную игру через элемент canvas.Вводить легко, но видео сложно.
Сейчас я запускаю игру через node.js, и в моем цикле рендеринга я отправляю в stdout закодированный в base64 поток растровых данных, представляющих текущий кадр.,Кадр base64 отправляется через веб-сокет на страницу клиента и обрабатывается (кропотливо медленно) попиксельно.Очевидно, что этого не может быть.
Я разбирался с идеей создания видеопотока, а затем я мог легко рендерить его на холст с помощью тега (ala http://mrdoob.github.com/three.js/examples/materials_video.html).
Проблема, с которой я столкнулся в связи с этой идеей, заключается в том, что я недостаточно знаю о кодеках / потоковой передаче, чтобы на высоком уровне определить, возможно ли это на самом деле? Я не уверен, что даже кодек - это та часть, котораяМне нужно беспокоиться о возможности динамического изменения содержимого и, возможно, рендеринга на несколько кадров впереди.
Другие мои идеи:
- Попытка создания HTMLImageElementиз кадра base64
- Попытка оптимизировать области сжатия / перерисовки таким образом, чтобы пропускная способность пикселя была намного ниже (кажется нереалистичным добиться такой производительности, которую мне нужно было бы получить со скоростью 20 кадров в секунду).
Тогда всегда есть возможность использовать флеш-память ... но я бы действительно предпочел избежать этого. Я ищу мнения о технологиях, идеи?