一种虚拟化环境下视频重定向到服务器解码的方法和系统技术方案

技术编号:17489301 阅读:71 留言:0更新日期:2018-03-17 12:41
本发明专利技术为一种虚拟化环境下视频重定向到服务器解码的方法和系统,涉及虚拟化环境应用技术领域。本发明专利技术一种虚拟化环境下视频重定向到服务器解码系统,包括服务器端和虚拟机端,其特征在于:所述服务器端设有显卡解码模块;所述虚拟机端设有发送数据模块和接收数据模块;所述服务器端与虚拟机端之间设有共享内存管理模块,所述共享内存管理模块为虚拟机端与服务器端之间数据通信的处理模块,共享内存管理模块为服务器端和虚拟机端提供接口。本发明专利技术虚拟机进行视频播放时,虚拟机将未解码的视频数据流发送到服务器端,服务器端利用显卡进行硬解码,然后再将解码后的图像数据写回到相应虚拟机的显存位置,实现视频重定向功能。

A method and system for video redirection to server decoding in a virtualized environment

【技术实现步骤摘要】
一种虚拟化环境下视频重定向到服务器解码的方法和系统
本专利技术涉及虚拟化环境应用
,具体涉及一种虚拟化环境下视频重定向到服务器解码的方法和系统。
技术介绍
虚拟化环境(Virtualizationenvironment):文中所描述的虚拟化环境指的是使用一台服务器利用虚拟化的技术来创建多台虚拟机,每个虚拟机作为服务器的一个进程在运行,每个虚拟机运行自己的操作系统,服务器为虚拟机虚拟化出各种虚拟硬件资源(包括CPU、RAM、硬盘和网络控制器),从而使得在一台物理机上运行着多个相互独立的操作系统。终端(terminal):文中所描述的终端是指利用虚拟桌面显示协议接入到由虚拟化环境下创建的虚拟机的客户端,使得访问虚拟桌面和使用本地的PC达到体验一致的效果,终端可以为PC、云终端、零客户机或瘦客户机等。视频重定向(Videoredirection):把操作系统中播放器正在播放的视频数据截获并发送到其它地方进行解码,再将解码后的图像与操作系统桌面显示图像结合,使得系统不用对视频流进行解码,也能看到解码后的视频图像,从而使得系统的CPU占用低,从而达到系统在播放视频的时候,系统也能够流畅进行其它操作。在虚拟化环境下,可以使用一台服务器进行虚拟化创建出多台虚拟机,且通过终端接入虚拟机桌面后能达到与使用传统PC机相同的体验效果,极大的节省了IT硬件成本,且能够统一方便的管理虚拟机,大大减轻管理的工作量。在当前常见的虚拟化环境下,由于虚拟机无法使用硬件解码,多台虚拟机并发播放视频对服务器CPU要求极高,服务器需要使用CPU同时解码多个虚拟机播放的视频,导致服务器的CPU处于高负荷状态下,不仅视频播放体验效果差,做其它操作也很不流畅。目前业内常见的对虚拟机并发播放视频的解决方案是:将虚拟机的视频流数据发送到终端,利用终端的硬件资源来对视频流进行硬解码,然后将解码后的图像结合操作系统桌面图像显示到显示屏上。这样做确实大大降低了虚拟机CPU的占用率,且体验效果也不错,但是该方案也存在一些缺陷:1、解码后的视频图像是在远程终端上直接显示的,虚拟机里面截图工具等无法截取到图像数据;2、在终端显示时要处理视频窗口与其它窗口的层次遮挡问题,在播放中移动窗口、最大化最小化窗口等操作容易出现窗口与视频显示不匹配;3、由于需要终端做额外的窗口合并等操作,无法匹配标准的VDI显示协议,且在各个平台上尤其是移动端平台上移植复杂,可移植性及兼容性很差。
技术实现思路
为了解决现有技术中的问题,本专利技术提供一种CPU使用率低、可移植性和兼容性好的一种虚拟化环境下视频重定向到服务器解码的方法。实现本专利技术目的的技术方案为:一种虚拟化环境下视频重定向到服务器解码的方法,包括如下步骤:S1当虚拟机进行视频播放时,虚拟机将未解码的视频数据流发送到共享内存管理模块;S2共享内存管理模块提供共享内存空间,存放虚拟机端放置的未解码视频数据流;S3服务器内的显卡解码模块获取共享内存空间的未解码视频数据流后对其进行硬解码;S4服务器将解码后的视频数据流发送到共享内存空间存放;S5虚拟机端获取共享内存空间解码后的视频数据写回相应的虚拟机显存位置。本专利技术还提供一种虚拟化环境下视频重定向到服务器解码系统,包括服务器端和虚拟机端,其特征在于:所述服务器端设有显卡解码模块;所述虚拟机端设有发送数据模块和接收数据模块;所述服务器端与虚拟机端之间设有共享内存管理模块,所述共享内存管理模块为虚拟机端与服务器端之间数据通信的处理模块,共享内存管理模块为服务器端和虚拟机端提供接口。进一步的,所述显卡解码模块包括:取数据子模块:该模块通过共享内存管理模块提供的接口获取有效的视频流数据;硬解数据子模块:该模块通过硬件解码接口对视频流数据进行解码;和返回数据子模块:该模块通过共享内存管理模块提供的接口将解码后数据写回虚拟机。进一步的,所述发送数据模块包括获取视频流数据子模块和发送视频流数据子模块;所述获取视频流数据子模块主要负责捕获视频数据;发送视频流数据子模块将获取到的数据流放入共享内存管理模块中,所述数据流将会被插入到未解码数据队列中,以供显卡解码模块读取。进一步的,所述接收数据模块包括取数据子模块和写数据到显存子模块;所述取数据子模块通过共享内存管理模块接口获取到解码后的数据;所述写数据到显存子模块负责将解码后的数据写入到原有窗口中。进一步的,所述共享内存管理模块包括初始化内存子模块、回收内存子模块和共享内存数据管理子模块,其中,初始化内存子模块:当虚拟机启动播放器播放视频时,该模块会在虚拟机端和服务器端之间开辟一块共享内存空间;回收内存子模块:当视频播放结束后,回收内存子模块会调用内存释放函数回收该共享内存空间;共享内存数据管理子模块:提供接口给服务器端及客户端操作共享内存,提供共享内存空间的申请、释放、读取和写入操作。进一步的,所述共享内存空间主要供两个队列来使用,一个用来存放虚拟机端放置的未解码视频数据流,另外一个用来存放通过显卡硬解后的图像数据。本专利技术的有益效果为:1、本专利技术利用服务器的显卡进行视频硬解降低了在虚拟机播放视频时服务器CPU的使用率。2、通过数据写回窗口的方式避免了在终端做额外的窗口合并、遮挡等操作,提高的兼容性及可移植性。附图说明图1为本专利技术实施例中虚拟化环境下视频重定向到服务器解码的流程图;图2为本专利技术实施例中显卡解码模块的结构示意图;图3为本专利技术实施例中发送数据模块的结构示意图;图4为本专利技术实施例中接收数据模块的结构示意图;图5为本专利技术实施例中共享内存管理模块的结构示意图。具体实施方式图1-图5用以解释本专利技术,但本专利技术不限于图1-图5所示的范围内。为了解决现有技术中虚拟机视频播放体验效果差,其它操作也很不流畅的问题,本专利技术提供了在虚拟化环境下视频重定向解码的另外一种解决方案。在硬件方面上,服务器需要能支持硬解码的芯片(显卡或IntelE3系列带集显CPU等),当虚拟机进行视频播放时,虚拟机将未解码的视频数据流发送到服务器端,服务器端利用显卡进行硬解码,然后再将解码后的图像数据写回到相应虚拟机的显存位置,实现视频重定向功能。由于是使用服务器显卡进行硬解,因此同样不会有因为要服务器CPU软解视频数据流使得服务器CPU占用过高的问题,且由于数据是写回到原有窗口显示,因此对虚拟机来说完全透明,不存在无法截取图像数据的问题,且无需修改终端协议,使用标准的VDI显示协议(如spice等)即可,在移植性与兼容性上更胜一筹。如图1所示,一种虚拟化环境下视频重定向到服务器解码的方法,包括如下步骤:S1当虚拟机进行视频播放时,虚拟机将未解码的视频数据流发送到共享内存管理模块;S2共享内存管理模块提供共享内存空间,存放虚拟机端放置的未解码视频数据流;S3服务器内的显卡解码模块获取共享内存空间的未解码视频数据流后对其进行硬解码;S4服务器将解码后的视频数据流发送到共享内存空间存放;S5虚拟机端获取共享内存空间解码后的视频数据写回相应的虚拟机显存位置。一种虚拟化环境下视频重定向到服务器解码系统,包括服务器端和虚拟机端,其特征在于:所述服务器端设有显卡解码模块;所述虚拟机端设有发送数据模块和接收数据模块;所述服务器端与虚拟机端之间设有共享内存管理模块,所述共享内存管理模块为虚本文档来自技高网
...
一种虚拟化环境下视频重定向到服务器解码的方法和系统

【技术保护点】
一种虚拟化环境下视频重定向到服务器解码的方法,其特征在于:包括如下步骤:S1当虚拟机进行视频播放时,虚拟机将未解码的视频数据流发送到共享内存管理模块;S2共享内存管理模块提供共享内存空间,存放虚拟机端放置的未解码视频数据流;S3服务器内的显卡解码模块获取共享内存空间的未解码视频数据流后对其进行硬解码;S4服务器将解码后的视频数据流发送到共享内存空间存放;S5虚拟机端获取共享内存空间解码后的视频数据写回相应的虚拟机显存位置。

【技术特征摘要】
1.一种虚拟化环境下视频重定向到服务器解码的方法,其特征在于:包括如下步骤:S1当虚拟机进行视频播放时,虚拟机将未解码的视频数据流发送到共享内存管理模块;S2共享内存管理模块提供共享内存空间,存放虚拟机端放置的未解码视频数据流;S3服务器内的显卡解码模块获取共享内存空间的未解码视频数据流后对其进行硬解码;S4服务器将解码后的视频数据流发送到共享内存空间存放;S5虚拟机端获取共享内存空间解码后的视频数据写回相应的虚拟机显存位置。2.权利要求1所述方法应用的一种虚拟化环境下视频重定向到服务器解码系统,包括服务器端和虚拟机端,其特征在于:所述服务器端设有显卡解码模块;所述虚拟机端设有发送数据模块和接收数据模块;所述服务器端与虚拟机端之间设有共享内存管理模块,所述共享内存管理模块为虚拟机端与服务器端之间数据通信的处理模块,共享内存管理模块为服务器端和虚拟机端提供接口。3.根据权利要求2所述的一种虚拟化环境下视频重定向到服务器解码系统,其特征在于:所述显卡解码模块包括:取数据子模块:该模块通过共享内存管理模块提供的接口获取有效的视频流数据;硬解数据子模块:该模块通过硬件解码接口对视频流数据进行解码;和返回数据子模块:该模块通过共享内存管理模块提供的接口将解码后数据写回虚拟机。4.根据权利要求2所述的一种虚拟化环境下视频重定向到服务器解码系统,其特征在...

【专利技术属性】
技术研发人员:何少伟罗海先
申请(专利权)人:深圳市青葡萄科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1