实现无显示器截取或/和录制图像的方法、装置及系统与流程

文档序号:12015700阅读:284来源:国知局
实现无显示器截取或/和录制图像的方法、装置及系统与流程
本发明涉及对服务器测试的技术,特别涉及一种实现无显示器截取或/和录制图像的方法、装置及系统。

背景技术:
在网络中,常常需要对服务器进行测试,也就是获取服务器中的桌面图像数据,显示并截取后保存为图片或/和视频,进行测试。图1为现有技术提供的截取或/和录制图像的系统结构示意图,包括:网络侧的第一客户端及第二客户端,多个服务器,多个服务器可以采用级联方式连接,每一级都具有多个服务器,下一级的多个服务器连接在上一级的一个服务器上,最上一级的服务器连接到第一客户端上,第二客户端与要测试的服务器分别连接,其中,第一客户端,用于发送测试请求,该测试请求通过级联的客户端,到达要测试的服务器,该测试请求截取或/和录制图像;测试服务器,用于接收到第一客户端发送的测试请求后,根据测试请求,将内存运行数据传输给第二客户端;第二客户端,用于基于显示桌面从所接收的内存运行数据捕获桌面图像数据到并显示,将桌面图像数据截取或/和录制图像,将所截取图像或/和将录制图像以avi格式保存。在该结构中,第二客户端要分别与测试服务器连接,接收测试服务器中的内存运行数据,并采用真实的显示桌面显示并驳回桌面图像数据,保证所截取或/和录制图像正常后,保存。这样测试多个测试服务器有以下缺点:第一,第二客户端要分别与测试服务器一一连接,耗费人力和维护成本,安 装部署非常不方便;第二,在显示从测试服务器接收的桌面图像数据之前,需要从各个测试服务器获取内存运行数据,所有没有必要的测试服务器的内存运行数据在第二客户端上汇集,这会造成网络拥塞,且第二客户端需要设置真实的桌面显示捕获到的桌面图像数据并监控,则需要配置显示器,浪费了硬件成本及维护成本。

技术实现要素:
有鉴于此,本发明实施例提供一种实现无显示器截取或/和录制图像的方法,该方法在实现时不会造成网络拥塞,且安装部署简单,节约人力和成本。本发明实施例还提供一种实现无显示器截取或/和录制图像的系统,该系统在实现时不会造成网络拥塞,且安装部署简单,节约人力和成本。本发明实施例还提供一种实现无显示器截取或/和录制图像的装置,该装置在实现时不会造成网络拥塞,且安装部署简单,节约人力和成本。为达到上述目的,本发明实施的具体是这样实现的:一种实现无显示器截取或/和录制图像的方法,在测试服务器上设置虚拟网络计算机VNC服务和用于连接VNC服务的基于远程帧缓冲RFB协议的VNC客户端,该方法还包括:测试服务器接收到客户端发送的测试请求,该请求要求截取或/和录制图像;测试服务器设置的VNC服务在测试服务器内存中虚拟桌面,捕获桌面图像数据;测试服务器上设置的基于RFB协议的VNC客户端接收并解码测试服务器设置的VNC服务捕获的桌面图像数据,保存为图片或/和FLV格式的视频文件。所述设置的基于RFB协议的VNC客户端接收并解码测试桌面图像数据的过程为:接收桌面图像数据后,进行RGB三色信息的反解码,构造bufferImage区域存储,然后采用Swing2D图形库的方式将bufferImage区域中的RGB三色信息恢复为图片或转换为FLV格式的视频文件保存。所述设置的基于RFB协议的VNC客户端接收并解码桌面图像数据的过程为:接收桌面图像数据后,采用C语言进行桌面图像数据的截图并保存,或者采用python语言和C语言进行桌面图像数据的FLV格式的视频文件录制。一种实现无显示器截取或/和录制图像的系统,该系统包括:测试服务器与客户端,所述测试服务器设置有虚拟网络计算机VNC服务和用于连接VNC服务的基于RFB协议的VNC客户端,其中,客户端,用于发送测试请求给测试服务器,该请求要求截取或/和录制图像;测试服务器,用于接收到客户端发送的测试请求,设置的VNC服务在测试服务器内存中虚拟桌面,捕获桌面图像数据;设置的基于RFB协议的VNC客户端接收并解码测试服务器设置的VNC服务捕获的桌面图像数据,保存为图片或/和FLV格式的视频文件。测试服务器,还用于设置的基于RFB协议的VNC客户端接收桌面图像数据后,进行RGB三色信息的反解码,构造bufferImage区域存储,然后采用Swing2D图形库的方式将bufferImage区域中的RGB三色信息恢复为图片或转换为FLV格式的视频文件保存。测试服务器,还用于设置的基于RFB协议的VNC客户端接收桌面图像数据后,采用C语言进行桌面图像数据的截图并保存,或者采用python语言和C语言进行桌面图像数据的FLV格式的视频文件录制。一种实现无显示器截取或/和录制图像的装置,包括:设置单元,收发单元、解码单元及保存单元,其中,设置单元,用于设置有虚拟网络计算机VNC服务和用于连接VNC服务的基于RFB协议的VNC客户端;收发单元,用于接收客户端发送的测试请求,该请求要求截取或/和录制图像,设置的VNC服务在测试服务器内存中虚拟桌面,捕获桌面图像数据,将桌面图像数据发送给解码单元;解码单元,用于设置的基于RFB协议的VNC客户端解码桌面图像数据;保存单元,用于设置的基于RFB协议的VNC客户端将所解码的桌面图像数据保存为图片或/和FLV格式的视频文件。解码单元,还用于接收桌面图像数据后,进行RGB三色信息的反解码,构造bufferImage区域存储,然后采用Swing2D图形库的方式将bufferImage区域中的RGB三色信息恢复为图片或/和转换为FLV格式的视频文件;保存单元,还用于将恢复的图片或/和转换为FLV格式的视频文件保存。解码单元,还用于接收桌面图像数据后,采用C语言进行桌面图像数据的截图,或者采用python语言和C语言进行桌面图像数据的FLV格式的视频文件录制;保存单元,还用于将截图进行保存,将录制的FLV格式的视频文件保存。由上述方案可以看出,本发明在测试服务器上设置虚拟网络计算机(VNC)服务和用于连接VNC服务的基于远程帧缓冲(RFB)协议的VNC客户端,测试服务器根据接收的测试请求,由所设置的VNC服务在测试服务器内存中虚拟桌面,捕获桌面图像数据,由所设置的基于RFB协议的VNC客户端从设置的VNC服务中接收并解码桌面图像数据,保存为图片或/和FLV格式的视频文件。由于测试服务器可以获取测试服务器的桌面图像数据,并进行解码及保存操作,无需第二客户端接收测试服务器发送的内存运行数据,设置真实桌面从内存运行数据确定桌面图形数据显示,并截取或/和录制图像后保存,从而解决了网络拥塞问题,且不需要再安装部署第二客户端,只需要在测试服务器设置VNC服务和用于连接VNC服务的基于RFB协议的VNC客户端即可,安装部署简单,且节约人力和成本。更进一步地,由于视频文件采用FLV格式在测试服务器内部传输,所以相比于现有技术 的avi格式的录制的测试数据的传输,其具有文件小及加载速度快的特点,节约了传输时间及传输资源。附图说明图1为现有技术提供的截取或/和录制图像的系统结构示意图;图2为本发明实施例实现无显示器截取或/和录制图像的方法流程图;图3为本发明实施例实现无显示器截取或/和录制图像的系统结构示意图;图4为本发明实施例实现无显示器截取或/和录制图像的装置结构示意图;图5为本发明实施例提供的实现无显示器截取或/和录制图像的方法具体实施例流程图。具体实施方式为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。从背景技术可以看出,在对测试服务器测试时获取或/和录制图像的过程中造成网络拥塞,安装部署复杂,且浪费人力物力成本的主要原因就是需要部署第二客户端分别与各个测试服务器之间的连接,且设置真实桌面从测试服务器接收的内存运行数据筛选出桌面图像数据并显示。因此,为了克服上述问题,避免部署第二客户端,在测试服务器上设置VNC服务和用于连接VNC服务的基于RFB协议的VNC客户端,测试服务器根据接收的测试请求,由所设置的VNC服务在测试服务器内存中虚拟桌面,捕获桌面图像数据,由所设置的基于RFB协议的VNC客户端从设置的VNC服务中接收并解码桌面图像数据,保存为图片或/和FLV格式的视频文件。由于测试服务器可以获取测试服务器的桌面图像数据,并进行解码及保存操作,无需第二客户端接收测试服务器发送的内存运行数据,设置真实桌 面从内存运行数据确定桌面图形数据显示,并截取或/和录制图像后保存,从而解决了网络拥塞问题,且不需要再安装部署第二客户端,只需要在测试服务器设置VNC服务和用于连接VNC服务的基于RFB协议的VNC客户端即可,安装部署简单,且节约人力和成本。更进一步地,由于视频文件采用FLV格式在测试服务器内部传输,所以相比于现有技术的avi格式的录制的测试数据的传输,其具有文件小及加载速度快的特点,节约了传输时间及传输资源。在本发明中,VNC服务是一款开源免费的远程虚拟桌面服务端软件,在Linux操作系统上采用yum安装或yum移除就可以在线安装VNC服务,VNC服务可以启动虚拟桌面,从测试服务器的内存运行数据中捕获桌面图像数据,且不需要显示器。在测试服务中上有程序启动了桌面操作,这些桌面操作就会被VNC服务捕获到,然后通过基于RFB协议的VNC客户端传输,得到捕获到的桌面图像数据。测试服务器设置的连接VNC服务的基于RFB协议的VNC客户端采用C语言的安装版或嵌入网页applet安装版进行安装,嵌入网页applet安装版可以适应视窗操作系统或Linux操作系统的VNC服务,跨平台性很好,可以接收VNC捕获到的桌面图像数据后,保存成图片或视频到测试服务器本机上,且所连接的是测试服务器本机上的VNC服务,不会占用外部网络带宽。在本发明中采用了RFB协议,RFB协议是VNC客户端与VNC服务之间进行数据传输的协议,底层使用传输控制协议套接(TCPsocket)连接。在本发明中,所述保存图片采用Swing2D图形库方式得到,就是解码解码桌面图像数据后,在内存中动态更新和填充缓冲图像(BufferImage)区域,最后保存成图片,实现对当前图形用户界面的截取。在本发明中,FLV格式的视频文件是采用解码桌面图像数据得到RGB图像数据,然后转换为FLV格式的视频文件,实现录制视频功能。图2为本发明实施例实现无显示器截取或/和录制图像的方法流程图, 在测试服务器上设置VNC服务和用于连接VNC服务的基于RFB协议的VNC客户端,其具体步骤为:步骤201、测试服务器接收到客户端发送的测试请求,该请求要求截取或/和录制图像;步骤202、测试服务器设置的VNC服务在测试服务器内存中虚拟桌面,捕获桌面图像数据;步骤203、测试服务器上设置的基于RFB协议的VNC客户端接收并解码测试服务器设置的VNC服务捕获的桌面图像数据,保存为图片或/和FLV格式的视频文件,用于自动化记录该测试服务器上发生的一系列桌面图像化操作。在本步骤中,设置的基于RFB协议的VNC客户端接收并解码桌面图像数据的过程为:接收桌面图像数据后,进行RGB三色信息的反解码,构造bufferImage区域存储,然后采用Swing2D图形库的方式将bufferImage区域中的RGB三色信息恢复为图片或转换为FLV格式的视频文件保存。在本步骤中,设置的基于RFB协议的VNC客户端接收并解码桌面图像数据的过程为:接收桌面图像数据后,采用C语言进行桌面图像数据的截图并保存,或者采用python语言和C语言进行桌面图像数据的FLV格式的视频文件录制,这种方式在速度上具有优势,但是在部署时存在很多依赖,跨平台性不好,不容易兼容测试服务器上设置的基于RFB协议的VNC客户端。图3为本发明实施例实现无显示器截取或/和录制图像的系统结构示意图,包括:测试服务器与客户端,所述测试服务器设置有虚拟网络计算机VNC服务和用于连接VNC服务的基于RFB协议的VNC客户端,其中,客户端,用于发送测试请求给测试服务器,该请求要求截取或/和录制图像;测试服务器,用于接收到客户端发送的测试请求,设置的VNC服务在测试服务器内存中虚拟桌面,捕获桌面图像数据;设置的基于RFB协议的VNC客户端接收并解码测试服务器设置的VNC服务捕获的桌面图像数据, 保存为图片或/和FLV格式的视频文件。在该系统中,测试服务器,还用于设置的基于RFB协议的VNC客户端接收桌面图像数据后,进行RGB三色信息的反解码,构造bufferImage区域存储,然后采用Swing2D图形库的方式将bufferImage区域中的RGB三色信息恢复为图片或转换为FLV格式的视频文件保存。在该系统中,测试服务器,还用于设置的基于RFB协议的VNC客户端接收桌面图像数据后,采用C语言进行桌面图像数据的截图并保存,或者采用python语言和C语言进行桌面图像数据的FLV格式的视频文件录制。图4为本发明实施例实现无显示器截取或/和录制图像的装置结构示意图,包括:设置单元,收发单元、解码单元及保存单元,其中,设置单元,用于设置有虚拟网络计算机VNC服务和用于连接VNC服务的基于RFB协议的VNC客户端;收发单元,用于接收客户端发送的测试请求,该请求要求截取或/和录制图像,设置的VNC服务在测试服务器内存中虚拟桌面,捕获桌面图像数据,将桌面图像数据发送给解码单元;解码单元,用于设置的基于RFB协议的VNC客户端解码桌面图像数据;保存单元,用于设置的基于RFB协议的VNC客户端将所解码的桌面图像数据保存为图片或/和FLV格式的视频文件。在该结构中,解码单元,还用于接收桌面图像数据后,进行RGB三色信息的反解码,构造bufferImage区域存储,然后采用Swing2D图形库的方式将bufferImage区域中的RGB三色信息恢复为图片或/和转换为FLV格式的视频文件;保存单元,还用于将恢复的图片或/和转换为FLV格式的视频文件保存。在该结构中,解码单元,还用于接收桌面图像数据后,采用C语言进行桌面图像数据的截图,或者采用python语言和C语言进行桌面图像数据的FLV格式的视频文件录制;保存单元,还用于将截图进行保存,将录制的FLV格式的视频文件保 存。图5为本发明实施例提供的实现无显示器截取或/和录制图像的方法具体实施例流程图,在测试服务器上设置VNC服务和用于连接VNC服务的基于RFB协议的VNC客户端,其具体步骤为:步骤501、测试服务器启动,进行设置的VNC服务和用于连接VNC服务的基于RFB协议的VNC客户端的版本确认;步骤502、测试服务器设置的VNC服务和用于连接VNC服务的基于RFB协议的VNC客户端协商之间的安全认证类型;步骤503、测试服务器设置的VNC服务和用于连接VNC服务的基于RFB协议的VNC客户端采用所协商的安全认证类型进行安全认证;步骤504、测试服务器设置的VNC服务得到认证结果;步骤505、测试服务器设置的VNC服务根据所得到的认证结果确定认证成功;步骤506、基于RFB协议的VNC客户端向测试服务器设置的VNC服务发送初始化信息;步骤507、测试服务器设置的VNC服务向基于RFB协议的VNC客户端发送初始化信息;步骤508、基于RFB协议的VNC客户端根据所接收的初始化信息确定接收消息的类型;步骤509、基于RFB协议的VNC客户端确定接收消息的类型与自身一致;步骤510、基于RFB协议的VNC客户端发送帧更新请求;步骤511、基于RFB协议的VNC客户端接收测试服务器设置的VNC服务发送的桌面图像数据;步骤512、基于RFB协议的VNC客户端反解码该桌面图像数据的RGB三色信息后,构造BufferImage区域;步骤513、基于RFB协议的VNC客户端采用Swing2D图形库方式将 桌面图形数据更新所构造的BufferImage;步骤514、基于RFB协议的VNC客户端确定是否要录制视频文件,如果是,则执行步骤516;如果否,则执行步骤515;步骤515、基于RFB协议的VNC客户端将更新的BufferImage保存为图片,结束;步骤516、基于RFB协议的VNC客户端将更新的BufferImage进行FLV格式转换,输出FLV视频流,基于RFB协议的VNC客户端确定是否录制完毕,如果是,则结束,如果否,则返回步骤508继续执行。在该实施例中,步骤512中的桌面图像数据中的RGB使用二十四位色,一个整形值表示,通过16位、8位或0位的各个像素点的移位操作,然后与OXff按像素点与,也就是反解码后,就可以得到RGB三色信息。在这里,因为桌面图像数据多数情况下是增量发送的,所以需要使用Swing2D图形库刷新和填充其中的BufferImage区域中不完整的部分,BufferImage区域填充完成,就可以将其保存为图片或将BufferImage区域进行格式转换后输出到FLV视频流中,录制为FLV视频,达到在无显示器的情况下也可以截取或/和录制桌面图像数据。从本发明可以看出,截图或/和录制桌面图像数据基于设置VNC服务和用于连接VNC服务的基于RFB协议的VNC客户端,两者之间的桌面图像数据传输纯java代码实现,替换了现有技术中的第二客户端的角色。在同一逻辑测试服务器上实现了VNC服务与截图或/和录制桌面图像数据的完美结合,测试服务器的桌面图像数据只会向本机设置的基于RFB协议的VNC客户端发送,从而带来了以下技术效果。首先,避免大量的桌面图像数据向第二客户端汇集,减少了网络的拥塞;其次,完全不需要显示器,节约了硬件成本和维护成本,节约了电费,长期效应相当可观;再次,运维不再需要使用第二客户端连接到每台测试服务器上,便于安装部署;最后,在视频文件录制时直接将桌面图像数据转换为FLV格式的视频文件,而非avi格式,节约了时间和资源。以上举较佳实施例,对本发明的目的、技术方案和优点进行了进一步详细说明,所应理解的是,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1