本申請涉及計算機(jī)應(yīng)用領(lǐng)域,尤其涉及一種云桌面3d多屏顯示方法、系統(tǒng)、設(shè)備及介質(zhì)。
背景技術(shù):
1、linux服務(wù)器的云桌面的遠(yuǎn)程連接方式一般使用spice(simple?protocol?forindependent?computing?environment)協(xié)議,spice協(xié)議的多屏顯示方式一般都使用qxl虛擬顯卡設(shè)備,qxl虛擬顯卡設(shè)備只適用于2d場景。3d場景下目前已經(jīng)有的方式都需要gpu支持,如使用virtio-gpu的方法,或使用vhost-user-gpu的方法,這些都需要gpu支持。而一些gpu對這種技術(shù)支持有限,或者根本不支持。
2、對于需要3d渲染的云桌面場景,如gis應(yīng)用等,一般需要在虛擬機(jī)中使用物理gpu處理3d渲染,如果云桌面只有一個屏,可以使用spice協(xié)議,在虛機(jī)里使用spice-stream-agent推流?+?gpu硬編碼的方式,在客戶端使用spice-gtk?+?virt-viewer解碼顯示。虛擬機(jī)使用的是virtio虛擬顯卡。但是spice-stream-agent僅支持單屏推流,對于多屏推流不支持。目前的一些公開專利中也有涉及云桌面屏幕顯示的方案,但是大多也只適用于2d場景下的多屏顯示或者3d場景下的單屏顯示,仍然無法解決3d場景下的多屏顯示問題。
技術(shù)實(shí)現(xiàn)思路
1、為了解決上述技術(shù)缺陷之一,本申請實(shí)施例中提供了一種云桌面3d多屏顯示方法、系統(tǒng)、設(shè)備及介質(zhì)。
2、本申請實(shí)施例第一方面提供了一種云桌面3d多屏顯示方法,所述方法包括:
3、在服務(wù)器物理機(jī)中創(chuàng)建虛擬顯卡并配置服務(wù)器虛擬機(jī)gpu驅(qū)動類型;
4、服務(wù)器虛擬機(jī)啟動時,在服務(wù)器物理機(jī)中創(chuàng)建通用端口,并根據(jù)客戶端所連接的流媒體設(shè)備屏幕數(shù)量創(chuàng)建多個流端口;
5、服務(wù)器虛擬機(jī)根據(jù)流端口數(shù)量創(chuàng)建多個推流處理線程,所述推流處理線程將客戶端所連接的流媒體設(shè)備屏幕的顯示輸出尺寸發(fā)送至gpu驅(qū)動,gpu驅(qū)動根據(jù)顯示輸出尺寸獲取圖像數(shù)據(jù),并對圖像數(shù)據(jù)進(jìn)行編碼,將編碼后的碼流返回至推流處理線程;
6、推流處理線程通過流端口將編碼后的碼流發(fā)送至服務(wù)器物理機(jī)的動態(tài)庫,并通過所述動態(tài)庫發(fā)送至客戶端,客戶端對所述編碼后的碼流進(jìn)行處理后進(jìn)行3d多屏顯示。
7、本申請實(shí)施例第二方面提供了一種云桌面3d多屏顯示系統(tǒng),所述系統(tǒng)包括:
8、客戶端,用于連接流媒體設(shè)備,輸出流媒體設(shè)備屏幕的顯示輸出尺寸,并進(jìn)行3d多屏顯示;
9、服務(wù)器,包括服務(wù)器物理機(jī)和服務(wù)器虛擬機(jī);
10、服務(wù)器物理機(jī),用于創(chuàng)建虛擬顯卡并配置服務(wù)器虛擬機(jī)gpu驅(qū)動類型,以及在服務(wù)器虛擬機(jī)啟動時,創(chuàng)建通用端口,并根據(jù)客戶端所連接的流媒體設(shè)備屏幕數(shù)量創(chuàng)建多個流端口;
11、服務(wù)器虛擬機(jī),用于根據(jù)流端口數(shù)量創(chuàng)建多個推流處理線程,所述推流處理線程將客戶端所連接的流媒體設(shè)備屏幕的顯示輸出尺寸發(fā)送至gpu驅(qū)動,gpu驅(qū)動根據(jù)顯示輸出尺寸獲取圖像數(shù)據(jù),并對圖像數(shù)據(jù)進(jìn)行編碼,將編碼后的碼流返回至推流處理線程,推流處理線程通過流端口將編碼后的碼流發(fā)送至服務(wù)器物理機(jī)的動態(tài)庫,以使服務(wù)器物理機(jī)的動態(tài)庫將編碼后的碼流發(fā)送至客戶端。
12、本申請實(shí)施例第三方面提供了一種電子設(shè)備,包括:處理器和存儲器;
13、其中,在所述存儲器中存儲有一個或多個計算機(jī)程序,所述一個或多個計算機(jī)程序包括指令;當(dāng)所述指令被所述處理器執(zhí)行時,使得所述電子設(shè)備執(zhí)行如本申請實(shí)施例第一方面所述的方法。
14、本申請實(shí)施例第四方面提供了一種計算機(jī)存儲介質(zhì),包括計算機(jī)指令,當(dāng)所述計算機(jī)指令在電子設(shè)備上運(yùn)行時,所述電子設(shè)備執(zhí)行如本申請實(shí)施例第一方面所述的方法。
15、采用本申請實(shí)施例中提供的云桌面3d多屏顯示方法,通過對服務(wù)器虛擬機(jī)中的推流方式進(jìn)行修改和優(yōu)化,使其能夠支持使用gpu多屏分流,只需一個客戶端連接多個流媒體設(shè)備的物理屏就可以實(shí)現(xiàn)在3d渲染場景下的服務(wù)器虛擬機(jī)多屏顯示,減少客戶端的數(shù)量,也簡化了系統(tǒng)布線的繁瑣過程,在車載移動場景下也具有良好的實(shí)際應(yīng)用前景。同時,本申請實(shí)施例可以擴(kuò)寬選用cpu和gpu的類型,且安全性可以得到很好的滿足。
1.一種云桌面3d多屏顯示方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)流端口數(shù)量創(chuàng)建多個推流處理線程,所述推流處理線程將客戶端所連接的流媒體設(shè)備屏幕的顯示輸出尺寸發(fā)送至gpu驅(qū)動,gpu驅(qū)動根據(jù)顯示輸出尺寸獲取圖像數(shù)據(jù),并對圖像數(shù)據(jù)進(jìn)行編碼,將編碼后的碼流返回至推流處理線程的過程包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述獲取用戶在流媒體設(shè)備上的鼠標(biāo)操作,根據(jù)所述鼠標(biāo)操作確定鼠標(biāo)位置的過程包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:當(dāng)客戶端與服務(wù)器虛擬機(jī)連接時,服務(wù)器虛擬機(jī)獲取并記錄客戶端所連接的多個流媒體設(shè)備屏幕的顯示輸出尺寸。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述方法還包括:當(dāng)與客戶端所連接的流媒體設(shè)備發(fā)生新增、刪減或替換時,對服務(wù)器虛擬機(jī)中記錄的顯示輸出尺寸進(jìn)行修改。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
8.一種云桌面3d多屏顯示系統(tǒng),其特征在于,包括:
9.一種電子設(shè)備,其特征在于,包括:處理器和存儲器;
10.一種計算機(jī)存儲介質(zhì),其特征在于,包括計算機(jī)指令,當(dāng)所述計算機(jī)指令在電子設(shè)備上運(yùn)行時,所述電子設(shè)備執(zhí)行如權(quán)利要求1至7任一項所述的方法。