虚拟桌面web视频重定向的方法与流程

文档序号:11156756阅读:1748来源:国知局
虚拟桌面web视频重定向的方法与制造工艺

技术领域

本发明涉及云计算虚拟化技术领域,具体是一种虚拟桌面上的web视频重定向的方法。



背景技术:

VDI,英文全称Virtual Desktop Infrastructure, 即虚拟桌面基础架构。它不是给每个用户都配置一台PC,而是通过在数据中心的服务器运行操作系统,将桌面进行虚拟化,用户可以通过客户端设备的客户计算协议与虚拟桌面进行连接,使其访问桌面就像是传统的本地安装桌面一样。

随着云技术的推广,VDI协议越来越多的得到使用。在VDI环境下视频播放一直是一个难以解决的问题。对于Web网络视频,通过在虚拟化平台的虚拟桌面系统中,构建服务,使得虚拟桌面系统中的视频播放只是起到转发到本地访问端进行解码,从而可以充分利用VDI客户端的CPU和显卡资源来进行处理,减轻Host端性能压力。

传统的虚拟机视频重定向方法主要有Flash播放器重定向、视频编码后到客户端重新解码、拦截视频区域以压缩的图像方式传输等方法,但都不能有效地解决视频与网页交互的问题,而且除Flash播放器重定向外的大多数方法都需要消耗大量的带宽,并且视频编码和压缩也导致了大量的内存消耗。



技术实现要素:

本发明的目的在于提供一种虚拟桌面web视频重定向的方法,是一种能够解决视频与网页交互的虚拟机视频重定向方法,同时保证了内存和网络性能。

实现本发明目的的技术解决方案为:一种虚拟桌面web视频重定向的方法,对于web视频,虚拟桌面系统采用交互式动态代理的方式交换VDI服务器和VDI客户端的web视频访问信息,利用VDI客户端的CPU或显卡资源对web视频数据进行解码。所述交互式动态代理方法采用SPICE协议和浏览器插件,设计并实现了VDI服务端交互式动态代理模块、VDI客户端交互式动态代理模块、VDI服务器代理和VDI客户端代理之间的通信协议,可自适应地将原本在VDI服务器端解码的web视频重定向至VDI客户端。

具体步骤如下:

(1)位于VDI服务端的交互式动态代理服务模块检测到包含视频的网址链接,触发VDI服务端交互式动态代理服务模块的代理转发功能,即打开对应视频的代理开关;

(2)VDI服务器端交互式动态代理服务模块构建代理通信协议传输给VDI客户端交互式动态代理服务模块,如发现代理服务存在未处理的视频请求,交由VDI客户端守护程序进行处理;

(3)VDI服务器端交互式动态代理利用屏幕同步技术获得浏览器位置,VDI客户端守护程序调用浏览器处理该请求,利用客户端CPU或GPU资源解码视频流,在浏览器中渲染出视频;

(4)如果VDI服务器端交互式动态代理服务模块检测到服务器端浏览器中用户点击的链接不包含视频访问,则直接在浏览器中打开;如果检测到服务器端浏览器中用户点击的链接包含视频访问,则该请求交由VDI服务器交互式动态代理服务模块处理,返回第(1)步开始重复上述过程。

本发明与现有技术相比,其显著优点:(1)在VDI环境下观看视频时,VDI服务器只负责将视频请求信息传输给客户端,在VDI服务器上不进行视频数据的解码和压缩,大大降低VDI服务器的负担。

(2)客户端在本地解码视频文件,视频文件不会因为中间的转发过程而受到损失,用户在VDI客户端可以体验良好的观看效果。

(3)客户端在解码数据时不需要随着本地分辨率的增大而消耗更多的CPU资源用于视频解码,降低VDI客户端的负担。

附图说明

图1是本发明交互式动态代理的系统部署示意图。

图2是本发明实施web视频重定向请求与回复流程示意图。

具体实施方式

本发明用于虚拟桌面(Virtual Desktop Infrastructure,VDI)的web视频重定向的方法,采用交互式动态代理的方案。在VDI服务器端和VDI客户端分别创建交互式动态视频重定向代理服务,VDI服务端模块将包含视频的用户请求提交给VDI服务器端交互式动态视频重定向代理服务模块,该模块与VDI客户端交互式动态视频重定向代理服务通信,模块解析视频来源,并利用专门的协议将视频直接传送给客户端,该协议可基于自动机理论对服务器代理、客户端代理之间的通信机制进行正确性分析。VDI客户端交互式动态代理模块可监听VDI服务端交互式动态代理模块的端口,调用本地化显卡资源对来自交互式动态视频重定向代理的视频流进行解码,由于交互式动态代理的开销远远小于视频解码,本方法可以大大减少服务端的计算压力,仅仅靠牺牲少量的I/O开销和传输带宽代价将web视频流的解码工作移到客户端进行。

传统的虚拟机视频重定向方法主要有Flash播放器重定向、视频编码后到客户端重新解码、拦截视频区域以压缩的图像方式传输等,但都不能有效地解决视频与web交互的问题,而且除Flash播放器重定向外的大多数方法都需要消耗大量的带宽,并且视频编码和压缩也导致了大量的内存消耗。而本方法提供一种能够解决视频与网页交互的虚拟机视频重定向方法,同时保证了低内存消耗和高网络性能。

本发明提出的虚拟桌面的web视频重定向方法可集成在具有自主知识产权的VDI产品中,提升传统开源KVM虚拟桌面视频播放性能的不足,可广泛应用于大型企业、军队、公安、教育等领域。

本发明虚拟桌面web视频重定向的方法,包括如下步骤:

VDI服务端(虚拟机)浏览器产生的请求通过服务器端交互式动态代理时,服务器交互式动态代理使用客户端请求的请求头去向目标服务器发送代理请求,获得目标服务器返回的数据后,分析每一个请求所携带的信息,检测请求中是否包含视频,如果没有视频时直接行使代理转发功能,将数据回复给VDI服务端浏览器;若存在视频请求,则开始与客户端交互式动态代理进行交互。

服务器端浏览器视频插件动态获取的网页窗口大小、位置等参数信息;VDI服务器端守护程序动态监测窗口大小、浏览器位置和浏览器是否打开的信息。

服务器端交互式动态代理从视频插件和服务器端(虚拟机)守护程序所获取的窗口大小、位置等参数信息,发送消息给客户端守护程序。在客户端,客户端守护程序构建消息队列,每次从消息队列头部取出待处理的消息,处理每一条消息时,客户端守护程序启动浏览器,并根据相应的大小位置等信息设置浏览器的大小和位置,然后根据收到的请求信息,使浏览器加载对应的网页内容,完成请求。

服务器端交互式动态代理同时将请求和请求头信息发送给客户端交互式动态代理,客户端交互式动态代理收到请求头后,标记请求为当前待进行的任务,同时对相应请求的请求头进行替换,也就是用服务器端(虚拟机)请求的请求头替换客户端请求的请求头。另外,服务器交互式动态代理将修改回复对应请求的内容,将请求头中的信息写回本地。

客户端视频请求经过客户端交互式动态代理时,客户端交互式动态代理与服务器端交互式动态代理进行交互,确认是否是正在待进行的任务。如果是则完成一次视频重定向过程,否则在服务器端调用浏览器继续请求。

下面结合附图对本发明作进一步详细描述。

如图2所示,本发明VDI环境下的web视频重定向方法,包括如下步骤:

步骤1:在服务器和客户端部署交互式动态代理

具体做法是:参阅图1所示分别将服务器(虚拟机)端交互式动态代理和客户端交互式动态代理部署到服务器(虚拟机)和客户端,也可以将两者都部署于服务器(虚拟机)上,然后在客户端将代理设置成部署在服务器(虚拟机)上的客户端代理。

步骤2:服务器端交互式动态代理处理服务器(虚拟机)产生的请求。

具体做法是:服务器(虚拟机)生请求通过服务器交互式动态代理时,服务器交互式动态代理使用服务器(虚拟机)请求的请求头去向目标服务器发送代理请求,获得目标服务器返回的数据后,分析每一个请求所携带的信息,检测请求中是否包含视频,没有视频时直接行使代理转发功能,将数据回复给服务器(虚拟机),若存在视频请求,则开始与于客户端交互式动态代理进行交互。

步骤3:服务器端守护程序收集信息

具体做法是:服务器端守护程序遍历当前系统的窗口,定位到当前浏览器的句柄,然后获取浏览器窗口的位置和大小信息。

步骤4:浏览器插件收集信息

具体做法是:服务器端浏览器插件获取浏览器窗口的显示区域的位置和大小信息。

步骤5:客户端与服务器端进行信息共享

具体做法是:服务器交互式动态代理同时将请求和请求头信息发送给客户端交互式动态代理。客户端交互式动态代理收到请求头后,标记请求为当前待进行的任务,同时对相应请求的请求头进行替换,也就是用服务器(虚拟机)请求的请求头替换客户端请求的请求头。另外,服务器交互式动态代理将修改回复对应请求的内容,将请求头中的信息写回本地。

步骤6:客户端交互式动态代理完成视频重定向

具体做法是:客户端视频请求经过客户端交互式动态代理时,客户端交互式动态代理与服务器端交互式动态代理进行交互,确认是否是正在待进行的任务。如果是则完成一次视频重定向过程,否则在服务器端调用浏览器继续请求。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1