虛擬桌面場景下視頻重定向的方法、桌面服務(wù)器和系統(tǒng)的制作方法
【專利摘要】本發(fā)明實施例公開了一種虛擬桌面場景下視頻重定向的方法,桌面服務(wù)器不對網(wǎng)頁文件中的視頻文件作渲染處理,利用客戶端的處理能力,直接將網(wǎng)頁文件中的視頻文件重定向至桌面客戶解碼和播放,避免了桌面服務(wù)器對視頻文件進行渲染而占用極大的系統(tǒng)資源,同時客戶端直接播放原始視頻文件的碼流,與經(jīng)過桌面服務(wù)器渲染后發(fā)送至客戶端展示相比,畫面質(zhì)量更好,用戶體驗佳。
【專利說明】虛擬桌面場景下視頻重定向的方法、桌面服務(wù)器和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機領(lǐng)域,尤其涉及一種虛擬桌面場景下視頻播放的方法、桌面服務(wù)器和系統(tǒng)。
【背景技術(shù)】
[0002]遠程桌面是目前企業(yè)辦公環(huán)境的一種流行技術(shù),常用來將一臺計算機屏幕顯示的內(nèi)容傳送到另外一處的顯示屏顯示,通常我們使用的Windows遠程登錄程序是最常見的遠程桌面程序,通過它可以方便的登錄另外的遠程計算機。目前大多數(shù)的遠程桌面系統(tǒng)都是基于IP網(wǎng)絡(luò)來傳送遠程桌面的。遠程桌面并不僅指遠程的屏幕顯示,還可以包含遠程聲音傳送、可插拔硬件映射等技術(shù)。遠程桌面又可以稱為虛擬桌面。
[0003]由于HTML5標(biāo)準(zhǔn)化的進程逐步加速,大部分視頻網(wǎng)站也選擇HTML5最為構(gòu)建網(wǎng)站的基礎(chǔ)。桌面服務(wù)器將HTML5網(wǎng)頁中視頻播放區(qū)域進行視頻攔截,并通過連續(xù)圖像壓縮算法將該區(qū)域圖片壓縮成一幅一幅的圖片,服務(wù)端將圖片發(fā)送給客戶端展示,這樣導(dǎo)致服務(wù)端在進行壓縮處理時,占用了極大的系統(tǒng)資源,經(jīng)過壓縮算法的處理,視頻質(zhì)量相對于原始視頻質(zhì)量有較大的較低,用戶體驗不佳。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例所要解決的技術(shù)問題在于,提供一種虛擬桌面場景下視頻重定向的方法、桌面服務(wù)器和系統(tǒng)。 可使桌面服務(wù)器在處理含視頻的網(wǎng)頁文件時,減小系統(tǒng)的消耗,同時提高視頻在客戶端的畫面質(zhì)量。
[0005]為了解決上述技術(shù)問題,本發(fā)明第一方面提供了一種虛擬桌面場景下視頻重定向的方法,包括:
[0006]根據(jù)客戶端的指令向網(wǎng)頁服務(wù)器發(fā)送網(wǎng)頁請求;
[0007]接收所述網(wǎng)頁服務(wù)器返回的網(wǎng)頁文件;
[0008]獲取所述網(wǎng)頁文件的標(biāo)簽;
[0009]若所述網(wǎng)頁文件的標(biāo)簽包括視頻標(biāo)簽,將所述視頻標(biāo)簽的視頻地址信息修改為字符串標(biāo)記,所述字符串標(biāo)記用于指示瀏覽器不處理所述視頻地址信息指向的視頻文件;
[0010]獲取所述視頻地址信息指向的視頻文件的視頻流;
[0011]向所述客戶端發(fā)送所述視頻流,以使所述客戶端播放所述視頻流。
[0012]在第一種可能的實現(xiàn)方式中,所述獲取所述網(wǎng)頁文件的標(biāo)簽,具體包括:
[0013]通過瀏覽器構(gòu)建所述網(wǎng)頁文件的DOM對象樹,從所述DOM對象樹的節(jié)點中獲取所述標(biāo)簽。
[0014]結(jié)合第一方面第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,還包括:
[0015]還包括:
[0016]從所述DOM對象樹中獲取所述視頻文件的窗口參數(shù);其中,所述窗口參數(shù)包括窗口位置、窗口大小和遮擋信息;[0017]將所述窗口參數(shù)發(fā)送至所述客戶端,以使所述客戶端根據(jù)所述窗口參數(shù)構(gòu)建所述視頻文件的視頻窗口。
[0018]結(jié)合第一方面第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述獲取所述窗口參數(shù)中窗口位置的方法,具體包括:
[0019]獲取所述視頻標(biāo)簽相對于所述DOM對象樹中父標(biāo)簽的位置,逐級遞歸計算出所述視頻標(biāo)簽相對于瀏覽器窗口的位置;
[0020]根據(jù)所述瀏覽器窗口的位置計算出所述視頻標(biāo)簽在客戶端桌面的位置。[0021]結(jié)合第一方面至第一方面的第三種可能的實現(xiàn)方式中的任一種,在第四種可能的實現(xiàn)方式中,所述獲取所述窗口參數(shù)中遮擋信息的方法,具體包括:
[0022]根據(jù)視頻窗口相對于所述瀏覽器窗口的位置確定所述視頻窗口是否被遮擋,若為是,則獲取所述視頻窗口的遮擋信息;
[0023]并將所述遮擋信息發(fā)送至所述客戶端,以使所述客戶端根據(jù)所述遮擋信息將視頻窗口被遮擋的部分顯示為透明狀態(tài)。
[0024]本發(fā)明第二方面提供了一種桌面服務(wù)器,包括:
[0025]網(wǎng)頁請求模塊,用于根據(jù)客戶端的指令向網(wǎng)頁服務(wù)器發(fā)送網(wǎng)頁請求;
[0026]網(wǎng)頁接收模塊,用于接收所述網(wǎng)頁服務(wù)器返回的網(wǎng)頁文件;
[0027]標(biāo)簽獲取模塊,用于獲取所述網(wǎng)頁文件的標(biāo)簽;
[0028]視頻標(biāo)簽處理模塊,用于若所述網(wǎng)頁文件的標(biāo)簽包括視頻標(biāo)簽,將所述視頻標(biāo)簽的視頻地址信息修改為字符串標(biāo)記,所述字符串標(biāo)記用于指示瀏覽器不處理所述視頻地址信息指向的視頻文件;
[0029]視頻流獲取模塊,用于獲取所述視頻地址信息指向的視頻文件的視頻流;
[0030]視頻流發(fā)送模塊,用于向所述客戶端發(fā)送所述視頻流,以使所述客戶端播放所述視頻流。
[0031]在第一種可能的實現(xiàn)方式中,所述標(biāo)簽獲取模塊包括:
[0032]標(biāo)簽獲取單元,用于通過瀏覽器構(gòu)建所述網(wǎng)頁文件的DOM對象樹,從所述DOM對象樹的節(jié)點中獲取所述標(biāo)簽。
[0033]結(jié)合第二方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,還包括:
[0034]窗口參數(shù)獲取模塊,用于從所述DOM對象樹中獲取所述視頻文件的窗口參數(shù);其中,所述窗口參數(shù)包括窗口位置、窗口大小和遮擋信息;將所述窗口參數(shù)發(fā)送至所述客戶端,以使所述客戶端根據(jù)所述窗口參數(shù)構(gòu)建所述視頻文件的視頻窗口。
[0035]結(jié)合第二方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述窗口參數(shù)獲取模塊包括:
[0036]窗口位置獲取單元,用于獲取所述視頻標(biāo)簽相對于所述DOM對象樹中父標(biāo)簽的位置,逐級遞歸計算出所述視頻標(biāo)簽相對于瀏覽器窗口的位置;根據(jù)所述瀏覽器窗口的位置計算出所述視頻標(biāo)簽在虛擬機桌面的位置。
[0037]結(jié)合第二方面至第二方面的第三種可能的實現(xiàn)方式中的任一種,在第四種可能的實現(xiàn)方式中,所述窗口參數(shù)獲取模塊包括:
[0038]遮擋信息獲取單元,用于根據(jù)視頻窗口相對于所述瀏覽器窗口的位置確定所述視頻窗口是否被遮擋,若為是,則獲取所述視頻窗口的遮擋信息;并將所述遮擋信息發(fā)送至所述客戶端,以使所述客戶端根據(jù)所述遮擋信息將視頻窗口被遮擋的部分顯示為透明狀態(tài)。
[0039]實施本發(fā)明,具有如下有益效果:
[0040]桌面服務(wù)器不對網(wǎng)頁文件中的視頻文件作渲染處理,利用客戶端的處理能力,直接將網(wǎng)頁文件中的視頻文件重定向至桌面客戶解碼和播放,避免了桌面服務(wù)器對視頻文件進行渲染而占用極大的系統(tǒng)資源,同時客戶端直接播放原始視頻文件的碼流,與經(jīng)過桌面服務(wù)器渲染后發(fā)送至客戶端展示相比,畫面質(zhì)量更好,用戶體驗佳。
【專利附圖】
【附圖說明】
[0041]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0042]圖1是本發(fā)明的一種虛擬桌面場景下視頻重定向的方法的流程示意圖;
[0043]圖2是本發(fā)明的一種虛擬桌面場景下視頻重定向的方法的另一流程示意圖;
[0044]圖3是本發(fā)明的一種視頻播放系統(tǒng)的結(jié)構(gòu)示意圖;
[0045]圖4是本發(fā)明的一種桌面服務(wù)器的結(jié)構(gòu)示意圖;
[0046]圖5是本發(fā)明的一種桌面服務(wù)器的另一結(jié)構(gòu)示意圖;
[0047]圖6時圖5中標(biāo)簽獲取模塊的結(jié)構(gòu)示意圖;
[0048]圖7是圖5中窗口參數(shù)獲取模塊的結(jié)構(gòu)示意圖;
[0049]圖8是本發(fā)明的一種桌面服務(wù)器的又一結(jié)構(gòu)示意圖。
【具體實施方式】
[0050]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0051]參見圖1,為本發(fā)明的一種虛擬桌面場景下視頻重定向的方法,包括:
[0052]步驟101、根據(jù)客戶端的指令向網(wǎng)頁服務(wù)器發(fā)送網(wǎng)頁請求。
[0053]具體的,用戶通過客戶端訪問網(wǎng)頁時,所述客戶端發(fā)送一個鼠標(biāo)點擊事件至桌面服務(wù)器,所述桌面服務(wù)器接收到該鼠標(biāo)點擊事件后轉(zhuǎn)換成相應(yīng)的HTTP (HypertextTransport Protocol,超文本傳輸協(xié)議,簡稱HTTP)請求發(fā)送至網(wǎng)頁服務(wù)器,所述網(wǎng)頁服務(wù)器響應(yīng)所述HTTP請求返回網(wǎng)頁文件至所述桌面服務(wù)器,所述網(wǎng)頁文件包括HTML5網(wǎng)頁文件。
[0054]步驟102、接收所述網(wǎng)頁服務(wù)器返回的網(wǎng)頁文件。
[0055]步驟103、獲取所述網(wǎng)頁文件中的標(biāo)簽。
[0056]具體的,桌面服務(wù)器通過瀏覽器的插件獲取網(wǎng)頁文件中的標(biāo)簽,桌面服務(wù)器也可以采用DLL (Dynamic Link Library,動態(tài)鏈接庫,簡稱DLL)注入技術(shù)獲取網(wǎng)頁文件中的標(biāo)簽,獲取的方法本發(fā)明不做限制。
[0057] 步驟104、若所述網(wǎng)頁文件中的標(biāo)簽包括視頻標(biāo)簽,將所述視頻標(biāo)簽的視頻地址信息修改為字符串標(biāo)記,所述字符串標(biāo)記用于指示瀏覽器不處理所述視頻地址信息指向的視頻文件。
[0058]具體的,HTML5網(wǎng)頁文件中通常包括多種類型的標(biāo)簽,桌面服務(wù)器判斷獲取的標(biāo)簽中是否包括視頻標(biāo)簽,若存在視頻標(biāo)簽,將視頻標(biāo)簽中的視頻地址信息修改為字符串標(biāo)記。以HTML5網(wǎng)頁文件的視頻標(biāo)簽為例,其視頻標(biāo)簽含有src、poster、preload、autoplay、loop、controls、width和height等幾個屬性,其中src用來指示視頻地址信息,如〈Videosrc = “http:media.w3.0rg/2010/05/sintel/trailer, mp4” >,桌面服務(wù)器將視頻地址信息 “http:media.w3.0rg/2010/05/sintel/trailer.mp4” 修改為字符串標(biāo)記,所述字符串標(biāo)記用于指示桌面服務(wù)器不處理視頻地址信息指向的視頻文件,即桌面服務(wù)器不處理trailer, mp4視頻文件,所述字符串標(biāo)記可以為桌面服務(wù)器本地臨時地址或空地址,本發(fā)明不作限制;同時,本發(fā)明實施例中將視頻地址信息標(biāo)記為字符串,其中的字符串不限于本發(fā)明實施例所列情況,也可以為空,即將視頻地址信息清空。
[0059]步驟105、獲取所述視頻地址信息指向的視頻文件的視頻流。
[0060]具體的,如步驟104的例子,獲取視頻地址信息“http:media.w3.0rg/2010/05/sintel/trailer.mp4”指向的trailer, mp4視頻文件的視頻流。在步驟104中將視頻地址信息修改為字符串標(biāo)記的同時,還需要保存未修改的視頻地址信息;在步驟105中,根據(jù)保存的視頻地址信息獲取所述視頻地址信息指向的視頻文件的視頻流。
[0061]步驟106、向所述客戶端發(fā)送所述視頻流,以使所述客戶端播發(fā)所述視頻流。
[0062]具體的,接收到所述客戶端對所述視頻標(biāo)簽的視頻地址信息指向的視頻的播放請求時,向客戶端發(fā)送所述視頻文件的視頻流,以使所述客戶端播發(fā)所述視頻流。
[0063]桌面服務(wù)器根據(jù)客戶端的播放請求生成相應(yīng)的HTTP請求發(fā)送至網(wǎng)頁服務(wù)器,網(wǎng)頁服務(wù)器響應(yīng)該HTTP請求將視頻地址信息指向的視頻文件的視頻流發(fā)送至桌面服務(wù)器,桌面服務(wù)器不對該視頻流作渲染處理,而是向客戶端發(fā)送所述視頻流,以使客戶端直接對該視頻流進行解碼和播放。當(dāng)客戶端可以直接訪問網(wǎng)頁服務(wù)器時,此時所述客戶端可以直接發(fā)送的點播請求至所述網(wǎng)頁服務(wù)器,所述點播請求為HTTP請求,所述網(wǎng)頁服務(wù)器響應(yīng)該HTTP請求后直接將視頻地址信息指向的視頻文件的視頻流發(fā)送至客戶端,以使客戶端直接對該視頻流進行解碼和播放。
[0064]實施本發(fā)明的實施例,桌面服務(wù)器不對網(wǎng)頁文件中的視頻文件作渲染處理,利用客戶端的處理能力,直接將網(wǎng)頁文件中的視頻文件重定向至桌面客戶解碼和播放,避免了桌面服務(wù)器對視頻文件進行渲染而占用極大的系統(tǒng)資源,同時客戶端直接播放原始視頻文件的碼流,與經(jīng)過桌面服務(wù)器渲染后發(fā)送至客戶端展示相比,畫面質(zhì)量更好,用戶體驗佳。
[0065]參見圖2,為本發(fā)明的一種虛擬桌面場景下視頻重定向的方法的另一流程示意圖,包括:
[0066]步驟201、根據(jù)客戶端的指令向網(wǎng)頁服務(wù)器發(fā)送網(wǎng)頁請求。
[0067]具體的,用戶通過客戶端訪問網(wǎng)頁時,所述客戶端發(fā)送一個鼠標(biāo)點擊事件至桌面服務(wù)器,所述桌面服務(wù)器接收到該鼠標(biāo)點擊事件后轉(zhuǎn)換成相應(yīng)的HTTP請求發(fā)送至網(wǎng)頁服務(wù)器,所述網(wǎng)頁服務(wù)器響應(yīng)所述HTTP請求返回網(wǎng)頁文件至所述桌面服務(wù)器,所述網(wǎng)頁文件包括HTML5網(wǎng)頁文件。
[0068]步驟202、接收 所述網(wǎng)頁服務(wù)器返回的網(wǎng)頁文件。[0069]步驟203、通過瀏覽器構(gòu)建所述網(wǎng)頁文件的DOM對象樹,從所述DOM對象樹的節(jié)點中獲取所述標(biāo)簽。
[0070]具體的,通過瀏覽器的BHO (Browser Helper Ob ject,瀏覽器輔助對象,簡稱BHO)插件構(gòu)建所述網(wǎng)頁文件的DOM對象樹,將網(wǎng)頁文件轉(zhuǎn)換為DOM對象樹,從所述DOM對象樹的節(jié)點中獲取所述標(biāo)簽。DOM對象樹提供對網(wǎng)頁文件中的標(biāo)簽的操作入口,易于計算機處理。
[0071]步驟204、若所述網(wǎng)頁文件中的標(biāo)簽包括視頻標(biāo)簽,將所述視頻標(biāo)簽的視頻地址信息修改為字符串標(biāo)記,所述字符串標(biāo)記用于指示瀏覽器不處理所述視頻地址信息指向的視頻文件。
[0072]具體的,DOM對象樹的每個節(jié)點對應(yīng)網(wǎng)頁文件的標(biāo)簽,采用遍歷算法查詢到DOM對象樹中的是否存在視頻標(biāo)簽,若存在,將視頻標(biāo)簽的視頻地址信息修改為字符串標(biāo)記,所述字符串標(biāo)記用于指示桌面服務(wù)器不處理視頻地址信息指向的視頻文件,所述標(biāo)記字符串可以為桌面服務(wù)器本地臨時地址或空地址,本發(fā)明不作限制。
[0073]步驟205、獲取所述視頻地址信息指向的視頻文件的視頻流。
[0074]在步驟204中將視頻地址信息修改為字符串標(biāo)記的同時,還需要保存未修改的視頻地址信息;在步驟205中,根據(jù)保存的視頻地址信息獲取所述視頻地址信息指向的視頻文件的視頻流。
[0075]步驟206、從所述DOM對象樹中獲取所述視頻文件的窗口參數(shù);其中,所述窗口參數(shù)包括窗口位置、窗口大小和遮擋信息;將所述窗口參數(shù)發(fā)送至所述客戶端,以使所述客戶端根據(jù)所述窗口參數(shù)構(gòu)建所述視頻文件的視頻窗口。
[0076]具體的,桌面服務(wù)器從DOM對象樹中獲取視頻窗口的窗口參數(shù),并將該窗口參數(shù)傳遞至客戶端,以使視頻窗口在客戶端指定位置顯示,用戶在客戶端體驗到在桌面服務(wù)器本地訪問的效果。其中,窗口參數(shù)包括窗口位置、窗口大小和遮擋信息,窗口位置的獲取方法為獲取所述視頻標(biāo)簽相對于DOM對象樹中父標(biāo)簽的位置,逐級遞歸計算出所述視頻標(biāo)簽相對于瀏覽器窗口的位置;根據(jù)所述瀏覽器窗口的位置計算出所述視頻標(biāo)簽在虛擬機桌面的位置。窗口大小的獲取方法為在DOM對象樹中查詢視頻標(biāo)簽的width寬度屬性和height高度屬性來確定視頻窗口的窗口大小。遮擋信息獲取的方法為根據(jù)視頻窗口相對于所述瀏覽器窗口的位置確定所述視頻窗口是否被遮擋,若為是,則獲取所述視頻窗口的遮擋信息,所述遮擋信息包括視頻窗口被遮擋部分的端點坐標(biāo),一般情況下窗口為矩形,視頻窗口的被遮擋的部分為矩形或三角形,則遮擋信息包括矩形的四個端點坐標(biāo)或三角形的三個端點坐標(biāo),將所述遮擋信息發(fā)送至客戶端,以使客戶端根據(jù)所述遮擋信息將視頻窗口被遮擋的部分顯示為透明狀態(tài)。
[0077]207、向所述客戶端發(fā)送所述視頻流,以使所述客戶端播發(fā)所述視頻流。
[0078]具體的,接收到所述客戶端對所述視頻標(biāo)簽的視頻地址信息指向的視頻的播放請求時,向客戶端發(fā)送所述視頻文件的視頻流,以使所述客戶端利用自身的硬件資源播放所述視頻流。
[0079]實施本發(fā)明的實施例,桌面服務(wù)器不對網(wǎng)頁文件中的視頻文件作渲染處理,利用客戶端的處理能力,直接將網(wǎng)頁文件中的視頻文件重定向至桌面客戶解碼和播放,避免了桌面服務(wù)器對視頻文件進行渲染而占用極大的系統(tǒng)資源,同時客戶端直接播放原始視頻文件的碼流,與經(jīng)過桌面服務(wù)器渲染后發(fā)送至客戶端展示相比,畫面質(zhì)量更好,用戶體驗佳。[0080]參見圖3,為本發(fā)明的一種視頻播放系統(tǒng)的結(jié)構(gòu)示意圖,包括桌面服務(wù)器2和客戶端1,工作過程為:
[0081]用戶通過客戶端I發(fā)送一個鼠標(biāo)點擊事件或鍵盤事件至桌面服務(wù)器2,桌面服務(wù)器2根據(jù)該事件模擬為瀏覽器的網(wǎng)頁請求,桌面服務(wù)器2向網(wǎng)頁服務(wù)器發(fā)送HTTP請求,網(wǎng)頁服務(wù)器響應(yīng)該HTTP請求并將網(wǎng)頁文件發(fā)送至桌面服務(wù)器2,桌面服務(wù)器2獲取接收到的網(wǎng)頁文件中的標(biāo)簽,獲取的方法包括利用瀏覽器構(gòu)建標(biāo)簽信息的DOM對象樹,遍歷DOM對象樹中節(jié)點來獲取標(biāo)簽,判斷標(biāo)簽中是否包括視頻標(biāo)簽,若存在視頻標(biāo)簽,則將視頻標(biāo)簽中的視頻地址信息修改為字符串標(biāo)記,所述字符串標(biāo)記用于指示桌面服務(wù)器2的瀏覽器不處理所述視頻地址信息指向的視頻文件。桌面服務(wù)器2從網(wǎng)頁服務(wù)器處獲取視頻地址信息指向的視頻文件的視頻流,并將該視頻流發(fā)送至客戶端1,客戶端I接收到視頻流后利用自身的硬件資源對視頻流進行解碼和播放。
[0082]進一步的,桌面服務(wù)器2從所述DOM對象樹中獲取所述視頻標(biāo)簽所對應(yīng)的視頻文件的包括窗口位置、窗口大小和遮擋信息的窗口參數(shù),將所述窗口參數(shù)發(fā)送至客戶端1,以使視頻流在客戶端I指定位置顯示,用戶在客戶端體驗到與桌面服務(wù)器本地訪問的效果。
[0083]本發(fā)明實施例視頻播放系統(tǒng)可以參照本發(fā)明方法實施例的描述。
[0084]實施本發(fā)明的實施例,桌面服務(wù)器不對網(wǎng)頁文件中的視頻文件作渲染處理,利用客戶端的處理能力,直接將網(wǎng)頁文件中的視頻文件重定向至桌面客戶解碼和播放,避免了桌面服務(wù)器對視頻文件進行渲染而占用極大的系統(tǒng)資源,同時客戶端直接播放原始視頻文件的碼流,與經(jīng)過桌面服務(wù)器渲染后發(fā)送至客戶端展示相比,畫面質(zhì)量更好,用戶體驗佳。
[0085]參見圖4,為本發(fā)明的一種桌面服務(wù)器的結(jié)構(gòu)示意圖,包括:
[0086]網(wǎng)頁請求模塊21,用于根據(jù)客戶端的指令向網(wǎng)頁服務(wù)器發(fā)送網(wǎng)頁請求。
[0087]具體的,用戶通過客戶端訪問網(wǎng)頁時,所述客戶端發(fā)送一個鼠標(biāo)點擊事件至桌面服務(wù)器,網(wǎng)頁請求模塊21接收到該鼠標(biāo)點擊事件后轉(zhuǎn)換成相應(yīng)的HTTP請求發(fā)送至網(wǎng)頁服務(wù)器,所述網(wǎng)頁服務(wù)器響應(yīng)所述HTTP請求返回網(wǎng)頁文件至所述桌面服務(wù)器,所述網(wǎng)頁文件包括HTML5網(wǎng)頁文件。
[0088]網(wǎng)頁接收模塊22,用于接收所述網(wǎng)頁服務(wù)器返回的網(wǎng)頁文件。
[0089]標(biāo)簽獲取模塊23,用于獲取所述網(wǎng)頁文件的標(biāo)簽。
[0090]具體的,標(biāo)簽獲取模塊23通過瀏覽器的插件獲取網(wǎng)頁文件中的標(biāo)簽,桌面服務(wù)器也可以采用DLL (Dynamic Link Library,動態(tài)鏈接庫,簡稱DLL)注入技術(shù)獲取網(wǎng)頁文件中的標(biāo)簽,獲取的方法本發(fā)明不做限制。
[0091]視頻標(biāo)簽處理模塊24,用于若所述網(wǎng)頁文件的標(biāo)簽包括視頻標(biāo)簽,將所述視頻標(biāo)簽的視頻地址信息修改為字符串標(biāo)記,所述字符串標(biāo)記用于指示瀏覽器不處理所述視頻地址信息指向的視頻文件。
[0092]具體的,網(wǎng)頁文 件中通常包括多種類型的標(biāo)簽,視頻標(biāo)簽處理模塊24判斷獲取的標(biāo)簽中是否包括視頻標(biāo)簽,若存在視頻標(biāo)簽,將視頻標(biāo)簽中的視頻地址信息修改為字符串標(biāo)記。以HTML5網(wǎng)頁文件的視頻標(biāo)簽為例,其視頻標(biāo)簽含有src、poster、preload、autoplay、loop、controls、width和height等幾個屬性,其中src用來指示視頻地址信息,如〈Video src =“http:media.w3.0rg/2010/05/sintel/trailer.mp4,,〉,視頻標(biāo)簽處理模塊 24 將視頻地址信息“http:media.w3.0rg/2010/05/sintel/trailer, mp4”修改為字符串標(biāo)記,所述字符串標(biāo)記用于指示桌面服務(wù)器不處理視頻地址信息指向的視頻文件,即桌面服務(wù)器不處理trailer, mp4視頻文件,所述字符串標(biāo)記可以為桌面服務(wù)器本地臨時地址或空地址,本發(fā)明不作限制。
[0093]視頻流獲取模塊25,用于獲取所述視頻地址信息指向的視頻文件的視頻流。
[0094]視頻流發(fā)送模塊26,用于向所述客戶端發(fā)送所述視頻流,以使所述客戶端播放所述視頻流。
[0095]實施本發(fā)明的實施例,桌面服務(wù)器不對網(wǎng)頁文件中的視頻文件作渲染處理,利用客戶端的處理能力,直接將網(wǎng)頁文件中的視頻文件重定向至桌面客戶解碼和播放,避免了桌面服務(wù)器對視頻文件進行渲染而占用極大的系統(tǒng)資源,同時客戶端直接播放原始視頻文件的碼流,與經(jīng)過桌面服務(wù)器渲染后發(fā)送至客戶端展示相比,畫面質(zhì)量更好,用戶體驗佳。
[0096]進一步的,參見圖5-圖7,為本發(fā)明的一種桌面服務(wù)器的另一結(jié)構(gòu)示意圖,除了網(wǎng)頁請求模塊21、網(wǎng)頁接收模塊22、標(biāo)簽獲取模塊23、視頻標(biāo)簽處理模塊24、視頻流獲取模塊25和視頻流發(fā)送模塊26外,還包括:
[0097]窗口參數(shù)獲取模塊27,用于從所述DOM對象樹中獲取所述視頻文件的窗口參數(shù);其中,所述窗口參數(shù)包括窗口位置、窗口大小和遮擋信息;將所述窗口參數(shù)發(fā)送至所述客戶端,以使所述客戶端根據(jù)所述窗口參數(shù)構(gòu)建所述視頻文件的視頻窗口。
[0098]具體的,窗口參數(shù)模塊24包括:
[0099]窗口位置獲取單元271,用于獲取所述視頻標(biāo)簽相對于所述DOM對象樹中父標(biāo)簽的位置,逐級遞歸計算出所述視頻標(biāo)簽相對于瀏覽器窗口的位置;根據(jù)所述瀏覽器窗口的位置計算出所述視頻標(biāo)簽在虛擬機桌面的位置。
[0100]遮擋信息獲取單元272,用于根據(jù)視頻窗口相對于所述瀏覽器窗口的位置確定所述視頻窗口是否被遮擋,若為是,則獲取所述視頻窗口的遮擋信息;并將所述遮擋信息發(fā)送至所述客戶端,以使所述客戶端根據(jù)所述遮擋信息將視頻窗口被遮擋的部分顯示為透明狀態(tài)。
[0101]具體的,遮擋信息獲取單元272根據(jù)視頻窗口相對于所述瀏覽器窗口的位置確定所述視頻窗口是否被遮擋,若為是,則獲取所述視頻窗口的遮擋信息,所述遮擋信息包括視頻窗口被遮擋部分的端點坐標(biāo),一般情況下窗口為矩形,視頻窗口的被遮擋的部分為矩形或三角形,則遮擋信息包括矩形的四個端點坐標(biāo)或三角形的三個端點坐標(biāo),遮擋信息獲取單元242將所述遮擋信息發(fā)送至客戶端,以使客戶端根據(jù)所述遮擋信息將視頻窗口被遮擋的部分顯示為透明狀態(tài)。
[0102]進一步的,標(biāo)簽犾取|旲塊23包括:
[0103]標(biāo)簽獲取單元231,用于通過瀏覽器構(gòu)建所述網(wǎng)頁文件的DOM對象樹,從所述DOM對象樹的節(jié)點中獲取所述標(biāo)簽。
[0104]具體的,標(biāo)簽獲取單元231通過瀏覽器插件將網(wǎng)頁文件中的DOM對象樹,所述DOM對象樹的各節(jié)點由網(wǎng)頁文件中的標(biāo)簽轉(zhuǎn)換而來,采用遍歷算法獲取DOM對象樹中的標(biāo)簽。通過網(wǎng)頁文件中的標(biāo)簽變成結(jié)構(gòu)化的模型,便于計算機對標(biāo)簽進行查詢和操作。
[0105]實施本發(fā)明的實施例,桌面服務(wù)器不對網(wǎng)頁文件中的視頻文件作渲染處理,利用客戶端的處理能力,直接將 網(wǎng)頁文件中的視頻文件重定向至桌面客戶解碼和播放,避免了桌面服務(wù)器對視頻文件進行渲染而占用極大的系統(tǒng)資源,同時客戶端直接播放原始視頻文件的碼流,與經(jīng)過桌面服務(wù)器渲染后發(fā)送至客戶端展示相比,畫面質(zhì)量更好,用戶體驗佳。
[0106]參見圖8, 為本發(fā)明的一種桌面服務(wù)器的又一結(jié)構(gòu)示意圖,包括處理器61、存儲器62、輸入裝置63和輸出裝置64,桌面服務(wù)器中的處理器61的數(shù)量可以是一個或多個,圖8以一個處理器為例。本發(fā)明的一些實施例中,處理器61、存儲器62、輸入裝置63和輸出裝置64可通過總線或其他方式連接,圖8中以總線連接為例。
[0107]其中,存儲器62中存儲一組程序代碼,且處理器61用于調(diào)用存儲器62中存儲的程序代碼,用于執(zhí)行以下操作:
[0108]根據(jù)客戶端的指令向網(wǎng)頁服務(wù)器發(fā)送網(wǎng)頁請求;
[0109]接收所述網(wǎng)頁服務(wù)器返回的網(wǎng)頁文件;
[0110]獲取所述網(wǎng)頁文件的標(biāo)簽;
[0111]若所述網(wǎng)頁文件的標(biāo)簽包括視頻標(biāo)簽,將所述視頻標(biāo)簽的視頻地址信息修改為字符串標(biāo)記,所述字符串標(biāo)記用于指示瀏覽器不處理所述視頻地址信息指向的視頻文件;
[0112]獲取所述視頻地址信息指向的視頻文件的視頻流;
[0113]向所述客戶端發(fā)送所述視頻流,以使所述客戶端播放所述視頻流。
[0114]在本發(fā)明的一些實施例中,處理器61具體用于執(zhí)行:
[0115]通過瀏覽器構(gòu)建所述網(wǎng)頁文件的DOM對象樹,從所述DOM對象樹的節(jié)點中獲取所述標(biāo)簽。
[0116]在本發(fā)明的一些實施例中,處理器61還用于執(zhí)行:
[0117]從所述DOM對象樹中獲取所述視頻文件的窗口參數(shù);其中,所述窗口參數(shù)包括窗口位置、窗口大小和遮擋信息;
[0118]將所述窗口參數(shù)發(fā)送至所述客戶端,以使所述客戶端根據(jù)所述窗口參數(shù)構(gòu)建所述視頻文件的視頻窗口。
[0119]進一步,處理器61具體用于執(zhí)行:
[0120]獲取所述視頻標(biāo)簽相對于所述DOM對象樹中父標(biāo)簽的位置,逐級遞歸計算出所述視頻標(biāo)簽相對于瀏覽器窗口的位置;
[0121]根據(jù)所述瀏覽器窗口的位置計算出所述視頻標(biāo)簽在虛擬機桌面的位置。
[0122]進一步,處理器61具體用于執(zhí)行:
[0123]根據(jù)視頻窗口相對于所述瀏覽器窗口的位置確定所述視頻窗口是否被遮擋,若為是,則獲取所述視頻窗口的遮擋信息;
[0124]并將所述遮擋信息發(fā)送至所述客戶端,以使所述客戶端根據(jù)所述遮擋信息將視頻窗口被遮擋的部分顯示為透明狀態(tài)。
[0125]實施本發(fā)明的實施例,桌面服務(wù)器不對網(wǎng)頁文件中的視頻文件作渲染處理,利用客戶端的處理能力,直接將網(wǎng)頁文件中的視頻文件重定向至桌面客戶解碼和播放,避免了桌面服務(wù)器對視頻文件進行渲染而占用極大的系統(tǒng)資源,同時客戶端直接播放原始視頻文件的碼流,與經(jīng)過桌面服務(wù)器渲染后發(fā)送至客戶端展示相比,畫面質(zhì)量更好,用戶體驗佳。
[0126]上述本發(fā)明實施例提供桌面服務(wù)器可以參照本發(fā)明方法實施例的描述。
[0127]本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(Random AccessMemory, RAM)等。
[0128]以上所揭露的僅為本發(fā)明一種較佳實施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分流程,并依本發(fā)明權(quán)利要求所作的等同變化,仍屬于發(fā)明所涵蓋的范圍。
【權(quán)利要求】
1.一種虛擬桌面場景下視頻重定向的方法,其特征在于,包括: 根據(jù)客戶端的指令向網(wǎng)頁服務(wù)器發(fā)送網(wǎng)頁請求; 接收所述網(wǎng)頁服務(wù)器返回的網(wǎng)頁文件; 獲取所述網(wǎng)頁文件的標(biāo)簽; 若所述網(wǎng)頁文件的標(biāo)簽包括視頻標(biāo)簽,將所述視頻標(biāo)簽的視頻地址信息修改為字符串標(biāo)記,所述字符串標(biāo)記用于指示瀏覽器不處理所述視頻地址信息指向的視頻文件; 獲取所述視頻地址信息指向的視頻文件的視頻流; 向所述客戶端發(fā)送所述視頻流,以使所述客戶端播放所述視頻流。
2.如權(quán)利要求1所述的方法,其特征在于,所述獲取所述網(wǎng)頁文件的標(biāo)簽,具體包括: 通過所述瀏覽器構(gòu)建所述網(wǎng)頁文件的DOM對象樹,從所述DOM對象樹的節(jié)點中獲取所述標(biāo)簽。
3.如權(quán)利要求2所述的方法,其特征在于,還包括: 從所述DOM對象樹中獲取所述視頻文件的窗口參數(shù);其中,所述窗口參數(shù)包括窗口位置、窗口大小和遮擋信息; 將所述窗口參數(shù)發(fā)送至所述客戶端,以使所述客戶端根據(jù)所述窗口參數(shù)構(gòu)建所述視頻文件的視頻窗口。
4.如權(quán)利要求3所述的方法,其特征在于,所述獲取所述窗口參數(shù)中窗口位置的方法,具體包括: 獲取所述視頻標(biāo)簽相對于所述DOM對象樹中父標(biāo)簽的位置,逐級遞歸計算出所述視頻標(biāo)簽相對于瀏覽器窗口的位置; 根據(jù)所述瀏覽器窗口的位置計算出所述視頻標(biāo)簽在虛擬機桌面的位置。
5.如權(quán)利要求1-4任一項所述的方法,其特征在于,所述獲取所述窗口參數(shù)中遮擋信息的方法,具體包括: 根據(jù)視頻窗口相對于所述瀏覽器窗口的位置確定所述視頻窗口是否被遮擋,若為是,則獲取所述視頻窗口的遮擋信息;并將所述遮擋信息發(fā)送至所述客戶端,以使所述客戶端根據(jù)所述遮擋信息將視頻窗口被遮擋的部分顯示為透明狀態(tài)。
6.一種桌面服務(wù)器,其特征在于,包括: 網(wǎng)頁請求模塊,用于根據(jù)客戶端的指令向網(wǎng)頁服務(wù)器發(fā)送網(wǎng)頁請求; 網(wǎng)頁接收模塊,用于接收所述網(wǎng)頁服務(wù)器返回的網(wǎng)頁文件; 標(biāo)簽獲取模塊,用于獲取所述網(wǎng)頁文件的標(biāo)簽; 視頻標(biāo)簽處理模塊,用于若所述網(wǎng)頁文件的標(biāo)簽包括視頻標(biāo)簽,將所述視頻標(biāo)簽的視頻地址信息修改為字符串標(biāo)記,所述字符串標(biāo)記用于指示瀏覽器不處理所述視頻地址信息指向的視頻文件; 視頻流獲取模塊,用于獲取所述視頻地址信息指向的視頻文件的視頻流; 視頻流發(fā)送模塊,用于向所述客戶端發(fā)送所述視頻流,以使所述客戶端播放所述視頻流。
7.如權(quán)利要求6所述的桌面服務(wù)器,其特征在于,所述標(biāo)簽獲取模塊包括: 標(biāo)簽獲取單元,用于通過所述瀏覽器構(gòu)建所述網(wǎng)頁文件的DOM對象樹,從所述DOM對象樹的節(jié)點中獲取所述標(biāo) 簽。
8.如權(quán)利要求7所述的桌面服務(wù)器,其特征在于,還包括: 窗口參數(shù)獲取模塊,用于從所述DOM對象樹中獲取所述視頻文件的窗口參數(shù);其中,所述窗口參數(shù)包括窗口位置、窗口大小和遮擋信息;將所述窗口參數(shù)發(fā)送至所述客戶端,以使所述客戶端根據(jù)所述窗口參數(shù)構(gòu)建所述視頻文件的視頻窗口。
9.如權(quán)利要求8所述的桌面服務(wù)器,其特征在于,所述窗口參數(shù)獲取模塊包括: 窗口位置獲取單元,用于獲取所述視頻標(biāo)簽相對于所述DOM對象樹中父標(biāo)簽的位置,逐級遞歸計算出所述視頻標(biāo)簽相對于瀏覽器窗口的位置;根據(jù)所述瀏覽器窗口的位置計算出所述視頻標(biāo)簽在虛擬機桌面的位置。
10.如權(quán)利要求6-9任一項所述的桌面服務(wù)器,其特征在于,所述窗口參數(shù)獲取模塊包括: 遮擋信息獲取單元,用于根據(jù)視頻窗口相對于所述瀏覽器窗口的位置確定所述視頻窗口是否被遮擋,若為是,則獲取所述視頻窗口的遮擋信息;并將所述遮擋信息發(fā)送至所述客戶端,以使所述客戶端根據(jù)所述遮擋信息將視頻窗口被遮擋的部分顯示為透明狀態(tài)。
11.一種視頻播放系統(tǒng),其特征在于,包括客戶端和如權(quán)利要求6-10任一項所述的桌面服務(wù)器。
【文檔編號】H04N21/239GK103905927SQ201210574647
【公開日】2014年7月2日 申請日期:2012年12月26日 優(yōu)先權(quán)日:2012年12月26日
【發(fā)明者】梁治平 申請人:華為技術(shù)有限公司