基于串流技術的p2p共享桌面共享方案

? ? ?研究遠控有一定時間了,但真正落地運用的不多,所以也不太上心,平時也只是自己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和網絡占用也可以接受,望大佬們指點。

2de02f2b7dd94356829c2f9afb72c489.jpg

?375b9a6f28ee409782756e6872e1e1ec.png

c536d318a96a4216a4a173b8bc4b067a.jpg?bcf405034e2a4b33a2122a9c11e07c3a.jpg

?

83cca7cdb06d48debdb2a108bd52c711.webp?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/712398.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/712398.shtml
英文地址,請注明出處:http://en.pswp.cn/news/712398.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[記錄]-cannot import name ‘prelu‘ from ‘lasagne.layers‘

問題:cannot import name prelu from lasagne.layers 現有版本:lasagne 0.1,需要更新版本,直接pip installLasagne0.2 目前還不行 需要去源碼下載 命令: pip install --upgrade https://github.com/Theano/Theano/archive/mas…

每日一題——LeetCode1556.千位分隔符

方法一 個人方法: 把n轉為字符串,逆序遍歷n,把n的每個元素加入res,每三次加入.,最后將res翻轉再轉為字符串即為符合題目要求的結果 var thousandSeparator function(n) {nlet res[],lenn.length-1for(let ilen;i>…

LibreOJ 136. 最小瓶頸路 題解 最小生成樹 倍增

題目鏈接:LibreOJ 136. 最小瓶頸路 題目描述: 給定一張無向圖,詢問兩個結點之間的最小瓶頸路。u和v兩個結點之間最小瓶頸路指的是u和v的每條路徑中經過的最大邊權的最小值。 題解: 給出結論:無向圖的最小瓶頸路與其最小…

iptables學習

iptables的4表5鏈的處理流程 一:業務地址請求服務時,首先經過iptables服務,iptables通過校驗規則,通過校驗是否同意業務訪問,規則從上到下,匹配規則都失敗了的話,走默認規則 (1&…

202435讀書筆記|《半小時漫畫中國史》——讀點經濟學與歷史,生活更美好,趣味燒腦土地制度、商鞅變法、華麗麗的絲綢之路這里都有

202435讀書筆記|《半小時漫畫中國史》——讀點經濟學與歷史,生活更美好,趣味燒腦土地制度、商鞅變法、華麗麗的絲綢之路這里都有 1. 土地政策、度量衡及稅收2. 商鞅變法3. 西漢經濟4. 西漢鹽鐵大辯論5. 西漢絲綢之路 《半小時漫畫中國史:經濟…

五子棋裁判

描述 在程序設計實踐課上,老師給大家布置下了這樣的實驗任務:編寫一個五子棋應用程序 勝負判定是五子棋程序最核心的部分。給出當前棋盤的狀態,請你完成對五子棋勝負的判定(僅考慮當前狀態,不考慮后續落子&#xff0…

Typora快捷鍵設置詳細教程(內附每個步驟詳細截圖)

😎 作者介紹:我是程序員洲洲,一個熱愛寫作的非著名程序員。CSDN全棧優質領域創作者、華為云博客社區云享專家、阿里云博客社區專家博主、前后端開發、人工智能研究生。公粽號:程序員洲洲。 🎈 本文專欄:本文…

在vue2中使用餅狀圖

1.引入vue2和echarts <script src"https://cdn.jsdelivr.net/npm/vue2.7.14/dist/vue.js"></script> <script src"https://cdn.jsdelivr.net/npm/echarts5.4.0/dist/echarts.min.js"></script> 2.1 補充基本的body內容 <div id…

存儲過程基本了解

文章目錄 介紹存儲過程示例1. 目的2. 輸入參數3. 輸出參數4. 執行邏輯5. 返回值6. 示例用法7. 注意事項 存儲過程的關鍵字有哪些簡單實操 介紹 存儲過程是一組預編譯的SQL語句&#xff0c;以及流程控制語句&#xff0c;封裝在數據庫服務器中并可以被重復調用。它們可以接收參數…

5G 網絡建設【華為OD機試-JAVAPythonC++JS】

題目描述 現需要在某城市進行5G網絡建設&#xff0c;已經選取N個地點設置5G基站&#xff0c;編號固定為1到N&#xff0c;接下來需要各個基站之間使用光纖進行連接以確保基站能互聯互通&#xff0c;不同基站之間架設光纖的成本各不相同&#xff0c;且有些節點之間已經存在光纖相…

CentOS7安裝MySQL5.7

查看并卸載系統自帶的 Mariadb rpm -qa|grep mariadb rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64 檢查系統是否安裝過MySQL rpm -qa | grep mysql 檢查有無MySQL用戶組 cat /etc/group | grep mysql cat /etc/passwd | grep mysql 創建MySQL用戶組和用戶 groupadd m…

特斯拉一面算法原題

來自太空的 X 帖子 埃隆馬斯克&#xff08;Elon Musk&#xff09;旗下太空探索技術公司 SpaceX 于 2 月 26 號&#xff0c;從太空往社交平臺 X&#xff08;前身為推特&#xff0c;已被馬斯克全資收購并改名&#xff09;發布帖子。 這是 SpaceX 官號首次通過星鏈來發送 X 帖子&a…

SpringBoot+Vue實戰:打造企業級項目管理神器

??計算機編程指導師 ??個人介紹&#xff1a;自己非常喜歡研究技術問題&#xff01;專業做Java、Python、微信小程序、安卓、大數據、爬蟲、Golang、大屏等實戰項目。 ??實戰項目&#xff1a;有源碼或者技術上的問題歡迎在評論區一起討論交流&#xff01; ?? Java實戰 |…

【YOLO】INT8量化C++版

三、INT8量化 C++ 3.1下載coco128數據集 cd /mnt/workspace/yolov5/data/scripts sh get_coco128.sh3.2 模型準備 #onnx轉simple_onnx pip install onnx-simplifier python -m onnxsim yolov5s.onnx yolov5s-simple.onnx3.3 下載量化代碼庫 git clone https://github.com/W…

水豚鼠標助手 強大的鼠標美化工具

水豚鼠標助手 水豚鼠標助手是一款 鼠標換膚、屏幕畫筆、放大鏡、聚光燈、屏幕放大、倒計時功能的強大屏幕演示工具。 軟件助手獲取 水豚鼠標助手1.0.0 安裝教程 第一步&#xff1a;下載后&#xff0c;雙擊軟件安裝包 第二步&#xff1a;Windows可能會出現提示彈窗&#xff…

【已親測有效】如何徹底刪除nodejs,避免影響安裝新版本

第一步開始菜單搜索uninstall node.js&#xff0c;點擊之后等待刪除&#xff08;刪除node_modules文件夾以及以下這些文件&#xff09; 第二步手動刪除nodejs下載位置的其他文件夾。&#xff08;就是另外自己新建的兩個文件夾node_cache和node_global&#xff09; 到這里其實應…

uniapp實現多行文本溢出超過指定行數 展開 收起

一、組件封裝 <template><view class"multiline"><view class"info"><view :class"{hide:!iSinfo}" :style"!iSinfo?computedStyle:"><view :style"{ color: textColor,fontWeight:fontWeight,font…

網絡安全課程VIP介紹(比同行便宜)

免責聲明 本文發布的工具和腳本&#xff0c;僅用作測試和學習研究&#xff0c;禁止用于商業用途&#xff0c;不能保證其合法性&#xff0c;準確性&#xff0c;完整性和有效性&#xff0c;請根據情況自行判斷。如果任何單位或個人認為該項目的腳本可能涉嫌侵犯其權利&#xff0c…

Javaweb day7

前后端分類開發 Yapi 環境配置 vue項目簡介 項目啟動 更改端口號 vue項目開發流程

【c++設計模式05】創建型3:抽象工廠模式(Abstact Factory Pattern)

【c設計模式05】創建型3&#xff1a;抽象工廠模式&#xff08;Abstact Factory Pattern&#xff09; 一、工廠模式二、抽象工廠模式三、UML類圖四、demo五、總結 原創作者&#xff1a;鄭同學的筆記 原創地址&#xff1a;https://zhengjunxue.blog.csdn.net/article/details/132…