我已经编写了一个OpenGL游戏,希望能通过canvas元素允许远程游戏。输入很简单,但视频很难。
目前我正在使用node.js启动游戏,在渲染循环中发送一个base64编码的位图数据流,表示当前帧。通过websocket将base64帧发送到客户端页面,并逐像素地呈现(非常缓慢)。显然这样做是不可行的。
我一直在考虑尝试生成一个视频流,然后可以通过标记(如http://mrdoob.github.com/three.js/examples/materials_video.html)轻松地将其呈现在画布上。
我对这个想法的问题是我不知道足够有关编解码器/流媒体的知识,以高层次确定是否可能实现?我不确定甚至编解码器是否是我需要担心内容动态更改并可能提前几帧呈现的部分。
我其他的想法:
- 尝试从base64帧创建HTMLImageElement
- 尝试优化压缩/重绘区域,以使像素带宽更低(似乎无法实现我需要达到20+fps的性能水平)。
然后总是有选择使用Flash的选项...但我真的很想避免它。我正在寻找一些关于要追求的技术和想法的意见?