[发明专利]一种虚拟化环境下视频重定向到服务器解码的方法和系统在审
申请号: | 201711153849.2 | 申请日: | 2017-11-20 |
公开(公告)号: | CN107809671A | 公开(公告)日: | 2018-03-16 |
发明(设计)人: | 何少伟;罗海先 | 申请(专利权)人: | 深圳市青葡萄科技有限公司 |
主分类号: | H04N21/4402 | 分类号: | H04N21/4402;H04N21/44;H04N21/443;G06F9/50;G06F9/455 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518000 广东省深圳市前海深港合作区前*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 虚拟 环境 视频 定向 服务器 解码 方法 系统 | ||
技术领域
本发明涉及虚拟化环境应用技术领域,具体涉及一种虚拟化环境下视频重定向到服务器解码的方法和系统。
背景技术
虚拟化环境(Virtualization environment):文中所描述的虚拟化环境指的是使用一台服务器利用虚拟化的技术来创建多台虚拟机,每个虚拟机作为服务器的一个进程在运行,每个虚拟机运行自己的操作系统,服务器为虚拟机虚拟化出各种虚拟硬件资源(包括 CPU、RAM、硬盘和网络控制器 ),从而使得在一台物理机上运行着多个相互独立的操作系统。
终端(terminal):文中所描述的终端是指利用虚拟桌面显示协议接入到由虚拟化环境下创建的虚拟机的客户端,使得访问虚拟桌面和使用本地的PC达到体验一致的效果,终端可以为PC、云终端、零客户机或瘦客户机等。
视频重定向(Video redirection):把操作系统中播放器正在播放的视频数据截获并发送到其它地方进行解码,再将解码后的图像与操作系统桌面显示图像结合,使得系统不用对视频流进行解码,也能看到解码后的视频图像,从而使得系统的CPU占用低,从而达到系统在播放视频的时候,系统也能够流畅进行其它操作。
在虚拟化环境下,可以使用一台服务器进行虚拟化创建出多台虚拟机,且通过终端接入虚拟机桌面后能达到与使用传统PC机相同的体验效果,极大的节省了IT硬件成本,且能够统一方便的管理虚拟机,大大减轻管理的工作量。
在当前常见的虚拟化环境下,由于虚拟机无法使用硬件解码,多台虚拟机并发播放视频对服务器CPU要求极高,服务器需要使用CPU同时解码多个虚拟机播放的视频,导致服务器的CPU处于高负荷状态下,不仅视频播放体验效果差,做其它操作也很不流畅。
目前业内常见的对虚拟机并发播放视频的解决方案是:将虚拟机的视频流数据发送到终端,利用终端的硬件资源来对视频流进行硬解码,然后将解码后的图像结合操作系统桌面图像显示到显示屏上。这样做确实大大降低了虚拟机CPU的占用率,且体验效果也不错,但是该方案也存在一些缺陷:1、解码后的视频图像是在远程终端上直接显示的,虚拟机里面截图工具等无法截取到图像数据;2、在终端显示时要处理视频窗口与其它窗口的层次遮挡问题,在播放中移动窗口、最大化最小化窗口等操作容易出现窗口与视频显示不匹配;3、由于需要终端做额外的窗口合并等操作,无法匹配标准的VDI显示协议,且在各个平台上尤其是移动端平台上移植复杂,可移植性及兼容性很差。
发明内容
为了解决现有技术中的问题,本发明提供一种CPU使用率低、可移植性和兼容性好的一种虚拟化环境下视频重定向到服务器解码的方法。
实现本发明目的的技术方案为:
一种虚拟化环境下视频重定向到服务器解码的方法,包括如下步骤:
S1当虚拟机进行视频播放时,虚拟机将未解码的视频数据流发送到共享内存管理模块;
S2共享内存管理模块提供共享内存空间,存放虚拟机端放置的未解码视频数据流;
S3服务器内的显卡解码模块获取共享内存空间的未解码视频数据流后对其进行硬解码;
S4服务器将解码后的视频数据流发送到共享内存空间存放;
S5虚拟机端获取共享内存空间解码后的视频数据写回相应的虚拟机显存位置。
本发明还提供一种虚拟化环境下视频重定向到服务器解码系统,包括服务器端和虚拟机端,其特征在于:所述服务器端设有显卡解码模块;所述虚拟机端设有发送数据模块和接收数据模块;所述服务器端与虚拟机端之间设有共享内存管理模块,所述共享内存管理模块为虚拟机端与服务器端之间数据通信的处理模块,共享内存管理模块为服务器端和虚拟机端提供接口。
进一步的,所述显卡解码模块包括:
取数据子模块:该模块通过共享内存管理模块提供的接口获取有效的视频流数据;
硬解数据子模块:该模块通过硬件解码接口对视频流数据进行解码;和
返回数据子模块:该模块通过共享内存管理模块提供的接口将解码后数据写回虚拟机。
进一步的,所述发送数据模块包括获取视频流数据子模块和发送视频流数据子模块;所述获取视频流数据子模块主要负责捕获视频数据;发送视频流数据子模块将获取到的数据流放入共享内存管理模块中,所述数据流将会被插入到未解码数据队列中,以供显卡解码模块读取。
进一步的,所述接收数据模块包括取数据子模块和写数据到显存子模块;所述取数据子模块通过共享内存管理模块接口获取到解码后的数据;所述写数据到显存子模块负责将解码后的数据写入到原有窗口中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市青葡萄科技有限公司,未经深圳市青葡萄科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711153849.2/2.html,转载请声明来源钻瓜专利网。