VDI环境下的网页flash视频重定向的方法转让专利

申请号 : CN201210187694.5

文献号 : CN102761603B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张辉

申请人 : 福建升腾资讯有限公司

摘要 :

一种VDI环境下的网页flash视频重定向的方法,包括:解析网页文本数据,获取当前网页上Flash视频播放器文件,以及播放视频时使用的参数;拦截网页HTTP请求,从中获取当前网页的视频请求;分析请求数据包,通过该组请求反向定位到发起请求的Flash控件;将网页上嵌入的Flash视频播放器发送到客户端,根据当前网页的结构在客户端动态构建与当前网页一样的Flash视频播放环境;客户端的Flash视频播放器在运行时产生网络请求;当VDI服务器收到来自客户端的视频请求后,将对应的视频流发送给客户端进行播放。本发明大大降低VDI服务器和客户端的负担,并且提高了所观看视频的质量。

权利要求 :

1.一种VDI环境下的网页flash视频重定向的方法,其特征在于:包括如下步骤:步骤1:解析网页文本数据,获取当前网页上Flash视频播放器文件,以及播放视频时使用的参数;

具体做法是:开发IE浏览器中浏览器辅助对象BHO插件,该浏览器辅助对象BHO插件用于在IE浏览器打开网页后分析网页上的Flash插件,从中分离出该网页需要加载的Flash控件,并记录保存Flash视频播放器的swf文件;

步骤2:通过拦截网页HTTP请求,从中获取当前网页的视频请求;

步骤3:分析请求数据包,记录请求内容及该请求的响应信息,并通过该组请求反向定位到发起请求的Flash控件;

步骤4:将网页上嵌入的Flash视频播放器发送到客户端,根据当前网页的结构在客户端动态构建与当前网页一样的Flash视频播放环境;

步骤5:客户端的Flash视频播放器在运行时产生网络请求,用于获取需要播放的视频数据;

步骤6:如果客户端设备能够通过网络直接访问到视频数据的原始网络地址,则客户端直接由Flash视频网站的视频服务器中获取视频数据,并在客户端直接播放;如果客户端由于网络限制无法访问Flash视频网站的视频服务器,则通过拦截HTTP请求,转发HTTP请求的方式向虚拟桌面基础架构VDI服务器获取视频数据;

步骤7:当虚拟桌面基础架构VDI服务器收到来自客户端的视频请求后,通过对比之前记录的Flash视频源地址与swf文件的对应关系将对应的视频流发送给客户端进行播放。

2.如权利要求1所述的一种VDI环境下的网页flash视频重定向的方法,其特征在于:所述步骤2具体包括:通过调用微软提供的HTML Control系列API,创建当前页面的HTTP请求监视器,监视当前页面上的所有HTTP请求;在HTTP请求监视器中,过滤由当前网页上发出的所有HTTP数据请求,从中分离出Flash视频播放器发出的视频数据请求。

3.如权利要求1所述的一种VDI环境下的网页flash视频重定向的方法,其特征在于:所述步骤4具体包括:将发送HTTP视频数据请求的Flash控件中的Flash播放器的swf文件以及相应的参数发送到虚拟桌面基础架构VDI客户端;虚拟桌面基础架构VDI客户端在接受到服务器发送来的swf文件及其参数后,在本地构建简单的Flash视频播放器并设置相应参数,构建与拦截网站相同的Flash播放环境。

说明书 :

VDI环境下的网页flash视频重定向的方法

【技术领域】

[0001] 本发明涉及计算机音视频技术领域,尤其涉及一种VDI环境下的网页flash视频重定向的方法。【背景技术】
[0002] VDI,英文全称Virtual Desktop Infrastructure,即虚拟桌面基础架构。它不是给每个用户都配置一台运行Windows XP或Vista的桌面PC,而是通过在数据中心的服务器运行Windows XP,将你的桌面进行虚拟化;用户通过来自客户端设备(客户机或是家用PC)的客户计算协议与虚拟桌面进行连接,用户访问他们的桌面就像是访问传统的本地安装桌面一样。
[0003] 随着云计算技术的推广,VDI协议越来越多的得到使用。在VDI环境下视频播放一直是一个难以解决的问题。VDI环境下的视频播放,一方面受到VDI协议的限制,另一方面受到网络带宽的限制,导致VDI协议在使用过程中无法很好的满足视频观看的需要。特别是针对网页Flash视频的播放一直没有很好的处理方法。
[0004] 目前最好的处理方式为通过对Flash视频播放区域进行画图拦截并通过优化的连续图像压缩算法对该区域图像进行特殊的压缩处理,达到降低带宽加快图像传输的目的。
[0005] 使用上述方法虽然在一定程度上解决网页Flash视频播放不流畅的问题,但是它也产生很多的负面影响。
[0006] 1、服务器在完成原始视频数据解码后,需要对解码后的视频数据再编码,此时占用极大的服务器资源;
[0007] 2、当客户端进行全屏播放时,服务器要编码的数据随着当前显示分辨率的增加而增加,在客户端使用较大分辨率连接时,服务器的CPU资源将无法负担压缩图像的需求;
[0008] 3、当客户端进行全屏播放时,由于客户端需要解码的数据随着当前使用分辨率的增大而增大,导致客户端也要消耗极大的CPU资源,最终导致客户端无法负担解码需求;
[0009] 4、由于图像经过压缩算法的处理,使用上述方法在远程观看视频时,视频质量相对原始视频质量将有较大的降低。【发明内容】
[0010] 本发明所要解决的技术问题在于提供一种VDI环境下的网页flash视频重定向的方法,大大降低VDI服务器和客户端的负担,并且提高了所观看视频的质量。
[0011] 本发明采用以下技术方案解决上述技术问题:
[0012] 一种VDI环境下的网页flash视频重定向的方法,包括如下步骤:
[0013] 步骤1:解析网页文本数据,获取当前网页上Flash视频播放器文件,以及播放视频时使用的参数;
[0014] 具体做法是:开发IE浏览器BHO(WebBrowser Help Object)插件,该BHO插件用于在IE浏览器打开网页后分析网页上的Flash插件,从中分离出该网页需要加载的Flash控件,并记录保存Flash视频播放器的swf文件;
[0015] 步骤2:通过拦截网页HTTP请求,从中获取当前网页的视频请求;
[0016] 步骤3:分析请求数据包,记录请求内容及该请求的响应信息,并通过该组请求反向定位到发起请求的Flash控件;
[0017] 步骤4:将网页上嵌入的Flash视频播放器发送到客户端,根据当前网页的结构在客户端动态构建与当前网页一样的Flash视频播放环境;
[0018] 步骤5:客户端的Flash视频播放器在运行时产生网络请求,用于获取需要播放的视频数据;
[0019] 步骤6:如果客户端设备能够通过网络直接访问到视频数据的原始网络地址,则客户端直接由Flash视频网站的视频服务器中获取视频数据,并在客户端直接播放;如果客户端由于网络限制无法访问Flash视频网站的视频服务器,则通过拦截HTTP请求,转发HTTP请求的方式向VDI服务器获取视频数据;
[0020] 步骤7:当VDI服务器收到来自客户端的视频请求后,通过对比之前记录的Flash视频源地址与swf文件的对应关系将对应的视频流发送给客户端进行播放。
[0021] 进一步地,所述步骤2具体包括:通过调用微软提供的HTML Control系列API,创建当前页面的HTTP请求监视器,监视当前页面上的所有HTTP请求;在HTTP请求监视器中,过滤由当前网页上发出的所有HTTP数据请求,从中分离出Flash视频播放器发出的视频数据请求。
[0022] 进一步地,所述步骤4具体包括:将发送HTTP视频数据请求的Flash控件中的Flash播放器的swf文件以及相应的参数发送到VDI客户端;VDI客户端在接受到服务器发送来的swf文件及其参数后,在本地构建简单的Flash视频播放器并设置相应参数,构建与拦截网站相同的Flash播放环境。
[0023] 本发明的优点在于:1、在VDI环境下观看Flash视频时,VDI服务器只负责转发Flash视频播放器文件swf文件和视频原始数据流到客户端,在VDI服务器上不进行视频数据的解码和压缩,大大降低VDI服务器的负担。2、客户端在本地解码视频数据,视频数据不会因为中间的转发过程而受到损失,用户在VDI客户端可以很好的观看视频。3、客户端在解码数据时不需要随着本地分辨率的增大而消耗更多的CPU资源用于视频解码,降低VDI客户端的负担。【附图说明】
[0024] 下面参照附图结合实施例对本发明作进一步的描述。
[0025] 图1为本发明方法流程示意图。【具体实施方式】
[0026] 请参阅图1所示,本发明的VDI环境下的网页flash视频重定向的方法,包括如下步骤:
[0027] 步骤1:解析网页文本数据,获取当前网页上Flash视频播放器文件,以及播放视频时使用的参数;
[0028] 具体做法是:开发IE浏览器BHO(WebBrowser Help Object)插件,该BHO插件用于在IE浏览器打开网页后分析网页上的Flash插件,从中分离出该网页需要加载的Flash控件,并记录保存Flash视频播放器的swf文件。
[0029] 步骤2:通过拦截网页HTTP请求,从中获取当前网页的视频请求;
[0030] 具体包括:通过调用微软提供的HTML Control系列API,创建当前页面的HTTP请求监视器,监视当前页面上的所有HTTP请求;在HTTP请求监视器中,过滤由当前网页上发出的所有HTTP数据请求,从中分离出Flash视频播放器发出的视频数据请求。
[0031] 步骤3:分析请求数据包,记录请求内容及该请求的响应信息,并通过该组请求反向定位到发起请求的Flash控件。
[0032] 具体做法是:
[0033] Flash控件在IE浏览器中作为一个ActiceX控件被加载,ActiveX控件作为一个COM组件,会导出一系列的接口,其中设置Flash视频播放器swf文件的接口函数为put_Movie,通过COM HOOK技术重定向该接口函数到自己编写的Mine_put_Movie函数中,从中记录Flash视频播放器swf文件的位置;通过实现微软WEB浏览器的IHttpNegotiate接口,从中获取每个HTTP请求的数据包,从而从中找到Flash播放器所要播放的视频文件的实际网络信息。
[0034] 步骤4:将网页上嵌入的Flash视频播放器发送到客户端,根据当前网页的结构在客户端动态构建与当前网页一样的Flash视频播放环境;
[0035] 具体包括:将发送HTTP视频数据请求的Flash控件中的Flash播放器的swf文件以及相应的参数发送到VDI客户端;VDI客户端在接受到服务器发送来的swf文件及其参数后,在本地构建简单的Flash视频播放器并设置相应参数,构建与拦截网站相同的Flash播放环境。
[0036] 步骤5:客户端的Flash视频播放器在运行时产生网络请求,用于获取需要播放的视频数据。
[0037] 步骤6:如果客户端设备能够通过网络直接访问到视频数据的原始网络地址,则客户端直接由Flash视频网站的视频服务器中获取视频数据,并在客户端直接播放;如果客户端由于网络限制无法访问Flash视频网站的视频服务器,则通过拦截HTTP请求,转发HTTP请求的方式向VDI服务器获取视频数据。
[0038] 步骤7:当VDI服务器收到来自客户端的视频请求后,通过对比之前记录的Flash视频源地址与swf文件的对应关系将对应的视频流发送给客户端进行播放。
[0039] 本发明的有益效果在于:1、在VDI环境下观看Flash视频时,VDI服务器只负责转发Flash视频播放器文件swf文件和视频原始数据流到客户端,在VDI服务器上不进行视频数据的解码和压缩,大大降低VDI服务器的负担。2、客户端在本地解码视频数据,视频数据不会因为中间的转发过程而受到损失,用户在VDI客户端可以很好的观看视频。3、客户端在解码数据时不需要随着本地分辨率的增大而消耗更多的CPU资源用于视频解码,降低VDI客户端的负担。
[0040] 以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。