本發(fā)明公開一種視頻重定向?qū)崿F(xiàn)方法,涉及視頻傳輸領(lǐng)域,具體地說(shuō)是一種基于spice協(xié)議的視頻重定向?qū)崿F(xiàn)方法。
背景技術(shù):
當(dāng)前虛擬化技術(shù)受到越來(lái)越多的關(guān)注,kvm虛擬機(jī)大行其道。視頻播放作為桌面的一個(gè)重要內(nèi)容,在虛擬機(jī)中用戶體驗(yàn)并不好,受限于kvm本身設(shè)計(jì)。因?yàn)樘摂M機(jī)運(yùn)行在kvm服務(wù)器上,虛擬機(jī)中的所有操作如視頻播放都是在服務(wù)器上的虛擬空間中運(yùn)行,視頻在服務(wù)器上被解碼播放,然后將視頻內(nèi)容通過(guò)spice協(xié)議傳送到遠(yuǎn)程用戶端,雖然目前也采用了很多優(yōu)化的解壓縮方法來(lái)保證視頻的流暢播放,但視頻重定向傳輸效果并不好,因此優(yōu)化的解壓縮方法沒(méi)有從根本上解決問(wèn)題。
重定向(redirect)就是通過(guò)各種方法將各種網(wǎng)絡(luò)請(qǐng)求重新定個(gè)方向轉(zhuǎn)到其它位置。
本發(fā)明提供一種基于spice協(xié)議的視頻重定向?qū)崿F(xiàn)方法,將視頻播放重定向到用戶端,服務(wù)器端只負(fù)責(zé)提供視頻源,不僅簡(jiǎn)便易操作,而且適用于目前一般的虛擬機(jī),應(yīng)用廣泛。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對(duì)現(xiàn)有技術(shù)存在的不足和問(wèn)題,提供一種基于spice協(xié)議的視頻重定向?qū)崿F(xiàn)方法,簡(jiǎn)便易操作,應(yīng)用廣泛。
本發(fā)明提出的具體方案是:
一種基于spice協(xié)議的視頻重定向?qū)崿F(xiàn)方法,基于spice協(xié)議,在本地系統(tǒng)下,在視頻播放器初始化安裝時(shí)安裝自定義重定向插件,將視頻播放器適配工作重定向,連接到自定義的重定向插件中,與遠(yuǎn)程用戶端建立網(wǎng)絡(luò)連接,遠(yuǎn)程用戶端創(chuàng)建重定向客戶端,重定向客戶端解碼視頻,再進(jìn)行本地播放,將重定向客戶端顯示的內(nèi)容與spice遠(yuǎn)程用戶端窗口進(jìn)行疊加。
所述的方法,將自定義重定向插件文件存放在視頻播放器的安裝目錄下,在視頻播放器初始化安裝時(shí),視頻播放器在初始化安裝目錄下查詢視頻解碼器,將自定義重定向插件文件作為解碼器進(jìn)行適配。
所述的方法,將視頻播放器文件中輸出pin與遠(yuǎn)程用戶端的重定向客戶端的輸入pin建立連接,避免視頻播放器崩潰。
所述的方法,所述重定向客戶端為transformfiter,解碼視頻。
所述的方法,應(yīng)用在kvm下windows虛擬機(jī)中。
本發(fā)明的有益之處是:
本發(fā)明提供一種基于spice協(xié)議的視頻重定向?qū)崿F(xiàn)方法,基于spice協(xié)議,在本地系統(tǒng)下,在視頻播放器初始化安裝時(shí)安裝自定義重定向插件,將視頻播放器適配工作重定向,連接到自定義的重定向插件中,與遠(yuǎn)程用戶端建立網(wǎng)絡(luò)連接,遠(yuǎn)程用戶端創(chuàng)建重定向客戶端,重定向客戶端解碼視頻,再進(jìn)行本地播放,將重定向客戶端顯示的內(nèi)容與spice遠(yuǎn)程用戶端窗口進(jìn)行疊加;利用本發(fā)明方法將視頻播放重定向到用戶端,服務(wù)器端只負(fù)責(zé)提供視頻源,不僅簡(jiǎn)便易操作,而且適用于目前一般的虛擬機(jī),應(yīng)用廣泛。
附圖說(shuō)明
圖1本發(fā)明方法流程框圖。
具體實(shí)施方式
本發(fā)明提供一種基于spice協(xié)議的視頻重定向?qū)崿F(xiàn)方法,基于spice協(xié)議,在本地系統(tǒng)下,在視頻播放器初始化安裝時(shí)安裝自定義重定向插件,將視頻播放器適配工作重定向,連接到自定義的重定向插件中,與遠(yuǎn)程用戶端建立網(wǎng)絡(luò)連接,遠(yuǎn)程用戶端創(chuàng)建重定向客戶端,重定向客戶端解碼視頻,再進(jìn)行本地播放,將重定向客戶端顯示的內(nèi)容與spice遠(yuǎn)程用戶端窗口進(jìn)行疊加。
結(jié)合附圖及具體實(shí)施,對(duì)本發(fā)明做進(jìn)一步說(shuō)明。
利用本發(fā)明方法,應(yīng)用在kvm下的在windows虛擬機(jī)中,遠(yuǎn)程用戶端由于系統(tǒng)的多樣性,也以windows系統(tǒng)為例,用戶端基本上都會(huì)帶有g(shù)pu甚至獨(dú)立顯卡,也為視頻重定向的本地播放提供了硬件基礎(chǔ)。由于windows下的視頻播放器種類繁多,這里以qq播放器為例。
windows下的視頻解碼器大部分是根據(jù)directshow制作的。qq播放器中的解碼器是以ax或者dll為后綴的文件類型,重定向插件命名為videoredir.dll;
在qq播放器初始化安裝時(shí)安裝自定義重定向插件,qq播放器本地播放視頻的流程為:
打開播放器,初始化播放器各種控件;
打開視頻文件,初始化安裝目錄下的coreavc.axfilter;
coreavc.ax查詢目錄下的視頻解碼器,適配可以解碼視頻文件的解碼器,此時(shí)可以使用hook技術(shù)將qq播放器適配到重定向videoredir的插件中,插件的作用是欺騙播放器將適配工作重定向,與遠(yuǎn)程用戶端建立網(wǎng)絡(luò)連接,并將coreavc.ax中的輸出pin與遠(yuǎn)程用戶端的transformfilter的輸入pin建立連接,避免引起qq播放器的崩潰;
在遠(yuǎn)程用戶端創(chuàng)建重定向客戶端,版本參考virt-viewer,客戶端的實(shí)質(zhì)是一個(gè)transformfiter,這個(gè)fiter是真正解碼視頻的地方,可以創(chuàng)建一個(gè)無(wú)邊框的win32程序去解碼視頻;
進(jìn)行本地播放,將客戶端顯示的內(nèi)容與spice客戶端窗口進(jìn)行疊加。