前言:想要寫(xiě)出一篇引人入勝的文章?我們特意為您整理了視頻云制作下云桌面應(yīng)用設(shè)計(jì)范文,希望能給你帶來(lái)靈感和參考,敬請(qǐng)閱讀。
摘要:云桌面?zhèn)鬏攨f(xié)議是云桌面的核心技術(shù)之一,其決定著云桌面的傳輸效率和使用效果,業(yè)界廠商的解決方案?jìng)?cè)重點(diǎn)也各不相同。在桌面?zhèn)鬏斨校?a href="http://saumg.com/lunwen/spzzlw/189830.html" target="_blank">視頻的流暢度與每一幀的畫(huà)面質(zhì)量之間是一對(duì)矛盾,而好的用戶體驗(yàn)既要優(yōu)秀的操作流暢度,也要高質(zhì)量的傳輸畫(huà)面。本設(shè)計(jì)方案主要針對(duì)視頻云制作的場(chǎng)景,在服務(wù)端集成主流GPU的編碼SDK,在客戶端提供回傳畫(huà)面編碼參數(shù)配置,從而靈活滿足視頻非編的場(chǎng)景需求。
關(guān)鍵詞:云桌面傳輸協(xié)議云制作
1引言
在2006年8月9日的搜索引擎大會(huì)上,時(shí)任Google首席執(zhí)行官的埃里克·施密特首次提出了云計(jì)算的概念。自此之后,“云計(jì)算”成為近年來(lái)計(jì)算機(jī)領(lǐng)域最熱門(mén)的話題之一,越來(lái)越多的組織和個(gè)人加入云計(jì)算的研究,其價(jià)值不斷被發(fā)掘,互聯(lián)網(wǎng)產(chǎn)品和IT服務(wù)出現(xiàn)了新的模式。VDI,即虛擬桌面基礎(chǔ)設(shè)施,也常被稱為云桌面、虛擬桌面或桌面虛擬化,是云計(jì)算的主要產(chǎn)品形式之一。相對(duì)于傳統(tǒng)PC,VDI中的虛擬桌面更加靈活便捷,也更加綠色環(huán)保。遠(yuǎn)程桌面協(xié)議種類頗多,業(yè)界廠商的解決方案?jìng)?cè)重點(diǎn)也各不相同,很難說(shuō)誰(shuí)優(yōu)誰(shuí)劣。VDI中客戶端與虛擬桌面分離的模式使得遠(yuǎn)程桌面協(xié)議必須依賴于實(shí)際網(wǎng)絡(luò)環(huán)境,而好的用戶體驗(yàn)既要流暢度也要畫(huà)面質(zhì)量,因此,對(duì)遠(yuǎn)程桌面協(xié)議來(lái)說(shuō),只能在有限的資源下做出適當(dāng)?shù)娜∩嵋猿尸F(xiàn)出相對(duì)最好的用戶體驗(yàn)[1]。傳輸協(xié)議是云桌面技術(shù)中重要的技術(shù)內(nèi)容。傳輸協(xié)議的效率決定了云桌面的基本交付能力,而對(duì)傳輸協(xié)議中的承載協(xié)議、圖形圖像的處理方式則決定了云桌面的交互體驗(yàn),不同協(xié)議有著自身的特色和適用空間[2]。
2應(yīng)用方案
2.1傳輸編碼設(shè)計(jì)
本方案的設(shè)計(jì)主要面向視頻云制作領(lǐng)域,在滿足延時(shí)性要求的前提下盡可能地提升傳輸畫(huà)面質(zhì)量,實(shí)現(xiàn)視頻非編的遠(yuǎn)程制作。傳輸協(xié)議構(gòu)建在WebSocket協(xié)議之上,使得客戶端和服務(wù)器之間的數(shù)據(jù)交換變得更加簡(jiǎn)單,允許服務(wù)端主動(dòng)向客戶端推送數(shù)據(jù)。在WebSocketAPI中,瀏覽器和服務(wù)器只需要完成一次握手,兩者之間就可以直接創(chuàng)建持久性的連接,并進(jìn)行雙向數(shù)據(jù)傳輸。云桌面?zhèn)鬏斄鞒倘鐖D1所示。云桌面?zhèn)鬏攨f(xié)議主要包含視頻數(shù)據(jù)、音頻數(shù)據(jù)、控制流數(shù)據(jù)(鍵鼠操作數(shù)據(jù))等。其中,音視頻的編解碼參考了主流編碼方式。音頻采用的Opus格式是一種開(kāi)放格式,使用上沒(méi)有任何專利或限制,是在流媒體中一種比較常用的格式;采樣率和碼率可以按需進(jìn)行配置,而云桌面非編場(chǎng)景對(duì)音頻質(zhì)量沒(méi)有更為嚴(yán)苛的需求;視頻編碼采用H.264標(biāo)準(zhǔn),結(jié)合協(xié)議的實(shí)際應(yīng)用場(chǎng)景,在視頻云制作的服務(wù)器上會(huì)配置GPU。因此,在傳輸協(xié)議中不采用集成libx264的軟件編碼方案,而選用集成市場(chǎng)主流的GPU廠家的硬件編碼SDK,以提升編碼效率。在客戶端集成FFmpeg,實(shí)現(xiàn)H.264的協(xié)議解碼。針對(duì)控制流數(shù)據(jù)進(jìn)行編碼設(shè)計(jì),定義接口實(shí)現(xiàn)方式。其中,鍵盤(pán)編碼參照了微軟設(shè)計(jì)的虛擬鍵盤(pán)值,并增加定義Alt/Shift/Ctrl狀態(tài)、小鍵盤(pán)以及大小寫(xiě)開(kāi)關(guān)等鍵盤(pán)參數(shù),滿足對(duì)主流非編軟件的遠(yuǎn)程操作使用。
2.2功能實(shí)現(xiàn)
2.2.1云桌面實(shí)現(xiàn)的主要流程??蛻舳讼蚍?wù)端發(fā)起建立連接的請(qǐng)求→服務(wù)端接收客戶端的連接請(qǐng)求,驗(yàn)證請(qǐng)求參數(shù)→服務(wù)端通過(guò)驗(yàn)證后,完成與客戶端的雙向網(wǎng)絡(luò)通道的建立→服務(wù)端不斷對(duì)遠(yuǎn)程機(jī)器進(jìn)行抓屏和音頻采集,將桌面畫(huà)面和音頻數(shù)據(jù)編碼壓縮后的流數(shù)據(jù)通過(guò)網(wǎng)絡(luò)通道發(fā)送給客戶端→客戶端將收到的音視頻流數(shù)據(jù)進(jìn)行解碼、渲染播放→客戶端通過(guò)網(wǎng)絡(luò)通道發(fā)送鍵盤(pán)鼠標(biāo)數(shù)據(jù),服務(wù)端接收鍵盤(pán)鼠標(biāo)數(shù)據(jù)進(jìn)行響應(yīng)→客戶端主動(dòng)斷開(kāi)連接退出程序,服務(wù)端斷開(kāi)連接等待下次請(qǐng)求。2.2.2具體實(shí)現(xiàn)步驟。(1)客戶端攜帶各項(xiàng)參數(shù)向服務(wù)端發(fā)起建立連接的請(qǐng)求。云桌面連接請(qǐng)求參數(shù)如表1所示。(2)服務(wù)端接收請(qǐng)求之后,驗(yàn)證密碼等參數(shù)。如果驗(yàn)證方式是用戶名密碼,服務(wù)端則會(huì)對(duì)客戶端提交的用戶名和密碼進(jìn)行驗(yàn)證;如果驗(yàn)證方式是隨機(jī)碼,服務(wù)端則會(huì)驗(yàn)證客戶端提交的隨機(jī)碼;如果驗(yàn)證方式是無(wú),服務(wù)端則不會(huì)進(jìn)行驗(yàn)證直接繼續(xù)后續(xù)流程??蛻舳说卿浗缑嫒鐖D2所示。至于客戶端提交的視頻和音頻參數(shù),服務(wù)端和客戶端可在步驟(4)(5)中利用表1中的參數(shù)來(lái)處理音視頻。(3)服務(wù)端與客戶端建立雙向網(wǎng)絡(luò)通道。此步驟基于WebSocket協(xié)議建立起雙向傳輸?shù)木W(wǎng)絡(luò)通道,用于傳輸客戶端和服務(wù)器的串流數(shù)據(jù)、鼠標(biāo)鍵盤(pán)控制指令數(shù)據(jù)??蛻舳说卿浺曨l編碼設(shè)置界面如圖3所示。(4)服務(wù)端音視頻處理。首先,遠(yuǎn)程機(jī)器進(jìn)行畫(huà)面采集(采集D3D的數(shù)據(jù))、音頻采集(采集出PCM格式的數(shù)據(jù))。其次,進(jìn)行編碼壓縮,視頻編碼通過(guò)GPU硬件編碼器將D3D的數(shù)據(jù)轉(zhuǎn)換成H.264的碼流;音頻編碼通過(guò)Opus編碼器將PCM的數(shù)據(jù)轉(zhuǎn)換成Opus的碼流。最后,通過(guò)WebSocket網(wǎng)絡(luò)通道傳輸數(shù)據(jù)到客戶端。(5)客戶端音視頻處理。首先,通過(guò)WebSocket網(wǎng)絡(luò)通道接收服務(wù)端傳過(guò)來(lái)的碼流數(shù)據(jù);其次,進(jìn)行視頻解碼(將H.264的碼流解碼成YUV)和音頻解碼(通過(guò)Opus編碼器將Opus的碼流解碼成PCM);最后,進(jìn)行視頻渲染播放(將解碼后的YUV進(jìn)行渲染展示)和音頻渲染播放(將解碼后的PCM進(jìn)行渲染展示)。(6)客戶端、服務(wù)端鍵盤(pán)鼠標(biāo)處理。首先,客戶端監(jiān)聽(tīng)用戶的本地鍵鼠操作事件;其次,將客戶端監(jiān)聽(tīng)到的用戶本地鍵鼠操作事件數(shù)據(jù)通過(guò)Web-Socket網(wǎng)絡(luò)通道傳輸給服務(wù)端;最后,服務(wù)端將接收到的事件傳給遠(yuǎn)程機(jī)器上的操作系統(tǒng)。(7)斷開(kāi)連接。客戶端發(fā)送斷開(kāi)的請(qǐng)求到服務(wù)端,退出程序;服務(wù)端停止采集、編碼、傳輸,等待下次連接請(qǐng)求。
2.3傳輸性能
為滿足視頻非編的制作需求,經(jīng)多方調(diào)研和反復(fù)測(cè)試,擬制定云桌面的視頻傳輸配置,具體如表2所示。按照上文中音視頻編解碼設(shè)定的參數(shù),在局域網(wǎng)中對(duì)傳輸協(xié)議進(jìn)行可用性的性能測(cè)試,結(jié)果如表3所示。事實(shí)上,鍵鼠操作編碼的上行數(shù)據(jù)量相較于下行的視頻數(shù)據(jù)要小得多,鍵鼠操作的解碼執(zhí)行響應(yīng)效率也相對(duì)較高。測(cè)試結(jié)果表明,在局域網(wǎng)環(huán)境下,低于100ms的操作體驗(yàn)可以滿足日常工作要求。非編對(duì)于視頻碼率有硬性要求,同時(shí)為保證延時(shí)可控,對(duì)帶寬要求較高。壓力主要在于云端服務(wù)器下行網(wǎng)絡(luò)帶寬,尤其是傳輸超高清視頻流時(shí),實(shí)時(shí)碼率會(huì)達(dá)到50~60Mb/s。為保證畫(huà)面流暢和可用性,如果多人使用同一臺(tái)云端非編服務(wù)器時(shí),在服務(wù)器端應(yīng)考慮配置萬(wàn)兆網(wǎng)卡,提高服務(wù)端出口的下行帶寬。該云桌面?zhèn)鬏敺桨钢饕獞?yīng)用場(chǎng)景是針對(duì)短視頻及高清視頻的輕量級(jí)非編設(shè)計(jì),或在校師生的教學(xué)場(chǎng)景,該方案可使從業(yè)人員以及學(xué)校降低硬件投入成本和實(shí)驗(yàn)室建設(shè)費(fèi)用。
3結(jié)語(yǔ)
目前,視頻云制作行業(yè)的常規(guī)實(shí)現(xiàn)方式是通過(guò)遠(yuǎn)程桌面技術(shù)來(lái)實(shí)時(shí)遠(yuǎn)程操控云桌面中運(yùn)行的設(shè)計(jì)制作應(yīng)用。本文論述的應(yīng)用方案的目的在于克服常見(jiàn)的VDI協(xié)議傳輸功能上的不足,尤其是在音視頻和3D模型等遠(yuǎn)程制作場(chǎng)景之中,本方案設(shè)計(jì)的傳輸方式更為靈活方便?;贖.264視頻壓縮算法和英偉達(dá)、AMD顯卡的編解碼技術(shù)實(shí)現(xiàn)了遠(yuǎn)程制作場(chǎng)景的適配,在滿足云桌面基本功能的情況下支持GPU硬件加速。同時(shí),還提供了靈活調(diào)整視頻回傳參數(shù)的界面,方便用戶根據(jù)需要對(duì)音視頻參數(shù)做個(gè)性化設(shè)置,在視頻云制作領(lǐng)域?yàn)槭褂谜咛峁┝艘环N可行的應(yīng)用方案。
參考文獻(xiàn):
[1]李康,陳清華.分析對(duì)比VDI常用的幾種遠(yuǎn)程桌面協(xié)議[J].信息系統(tǒng)工程,2020(1):111-113.
[2]李乘東.云桌面遠(yuǎn)程傳輸協(xié)議綜述[J].現(xiàn)代電信科技,2014,44(8):23-26+32.
作者:牛泰龍 常琳 脫羚 單位:國(guó)家廣播電視總局廣播電視科學(xué)研究院