? ? ?研究遠控有一定時間了,但真正落地運用的不多,所以也不太上心,平時也只是自己diy玩玩,遠程共享看看電視劇。
? ? 最近生成式ai大火,直接帶動了gpu應用的相關場景,相關場景,但gpu卡又貴,對算力共享的渴望讓我對桌面分享又一次看到了希望。
? 很早以前都聽說游戲串流以其低延遲高分辨率和跨平臺的技術特點引領遠控場景,雖然以前基于vpu的硬件版遠控也玩得比較熟了。但對gpu版本的遠控并不熟悉。于是借這個春節假期好好的研究了一下串流技術。整合進我的閉環p2p邊緣級聯音視頻推流系統中。
? ? ?整體來看串流技術主要分成三個模塊,跟大多數iot音方視頻推拉流沒有什么兩樣,也就是采集編碼,傳輸,控制反饋。
? ? ?為了低延遲,采集編碼盡量在gpu中,支持h264 h265 av1 等大分辨率4K高刷60甚至120fps,n卡amd及intel的顯卡都有對應的sdk實現,但是要自適應多種平臺軟硬件還是相當麻煩。
? ? ?傳輸基本上串流跟webrtc類似,主要是rtp udp傳輸加大劑量fec,不吝嗇帶寬大力出奇跡,為了內網穿透很多用上了upnp技術,不過比起全方位可信令交互生態完善的ice在業務場景上的自由度還是差點意思,所以我改進了傳輸,優化了底層,融入了我自己寫的閉環信令系統,方便業務邏輯控制,也完全實現了內網p2p,甚至多內網級聯分享,關鍵是可以在我的瀏覽器播放器中使用,支持h265的大分辨率桌面共享,可以像推拉流一樣享受遠程桌面,同時集成業務級的關聯邏輯控制和設備管理。
? ? ?控制方面,游戲串流真心做得不錯,手柄,鼠標,鍵盤,模擬器驅動應有盡有,控制方案也是采用系統的調用接口比如SendInput 是一個 Windows API 函數,用于模擬用戶輸入。它可以通過發送鼠標和鍵盤事件來模擬用戶的操作行為,例如鍵盤按鍵、鼠標移動、鼠標點擊等。
? ? ? 我在我的華碩筆記本電腦和華為手機上做了實測驗證,效果令人滿意,以下是局域網延遲截圖,相比hdmi in的外接硬件采集方案延遲也從最低50-60ms降低至15-16ms ,gpu和網絡占用也可以接受,望大佬們指點。
?
?
?
?
?