我已經寫了一個OpenGL遊戲,我想通過畫布元素允許遠程玩遊戲。輸入很簡單,但視頻很難。如何呈現動態位圖流到畫布?
我現在正在做的是通過node.js啓動遊戲,並在我的渲染循環中發送stdout代表當前幀的位圖數據的base64編碼流。 base64框架通過websocket發送到客戶端頁面,並逐個像素地渲染(苦心慢慢地)。顯然這不能忍受。
我一直在嘗試生成一個視頻流的想法,然後我可以很容易地通過標籤(ala http://mrdoob.github.com/three.js/examples/materials_video.html)將其渲染到畫布上。
我有這個想法的問題是我不知道編解碼器/流確定在高層次,如果這實際上是可能的?我不確定編解碼器是否是我需要擔心能夠動態更改內容的部分,並且可能會提前幾幀。
其他想法我有:
- 試圖創建以base64框架
- 試圖優化壓縮/重繪區域,使得像素帶寬低得多的HTMLImageElement(似乎不現實實現我需要獲得20 + fps的性能)。
然後總是有閃光燈的選擇......但我真的更喜歡避免它。我正在尋找一些關於追求技術的觀點,想法?
1.谷歌搜索似乎表明,否則,但我從來沒有嘗試過(因爲我嘗試前搜索)。 2.現在我想起它..你說得對,與重繪區域/壓縮相結合可能足夠快。我會試驗它。 – amirpc
是的,在進一步思考WebSocket可能會收到一個原始字符串,但你仍然必須解壓到一個本地數組,以便能夠'putImageData()'使用它。 – Alnitak