CN109040792B - 一种视频重定向的处理方法、云终端和云桌面服务器 - Google Patents
一种视频重定向的处理方法、云终端和云桌面服务器 Download PDFInfo
- Publication number
- CN109040792B CN109040792B CN201810916701.8A CN201810916701A CN109040792B CN 109040792 B CN109040792 B CN 109040792B CN 201810916701 A CN201810916701 A CN 201810916701A CN 109040792 B CN109040792 B CN 109040792B
- Authority
- CN
- China
- Prior art keywords
- image
- cloud
- video
- cloud desktop
- video image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 26
- 238000000034 method Methods 0.000 claims abstract description 116
- 238000012544 monitoring process Methods 0.000 claims description 33
- 230000002093 peripheral effect Effects 0.000 claims description 23
- 230000006835 compression Effects 0.000 claims description 21
- 238000007906 compression Methods 0.000 claims description 21
- 238000004806 packaging method and process Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012986 modification Methods 0.000 claims description 8
- 230000004048 modification Effects 0.000 claims description 8
- 239000003550 marker Substances 0.000 claims description 5
- 238000009877 rendering Methods 0.000 claims description 3
- 230000004807 localization Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 53
- 238000004891 communication Methods 0.000 description 34
- 239000003086 colorant Substances 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 6
- 238000005538 encapsulation Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000004088 simulation Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2387—Stream processing in response to a playback request from an end-user, e.g. for trick-play
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种视频重定向的处理方法、云终端和云桌面服务器,包括:云桌面服务器确定按照图像特征定位的云桌面视频图像屏幕的位置信息,将所述位置信息发送至云终端。云终端获取按照图像特征定位的云桌面视频图像屏幕的位置信息,按照所述位置信息播放本地的视频图像。本申请可以提高视频播放流畅度。
Description
技术领域
本申请涉及但不限于云计算领域,尤指一种视频重定向的处理方法、云终端和云桌面服务器。
背景技术
云计算被中国列为重点扶持的战略新兴产业,云桌面作为云计算产业中落地最早的项目之一,市场规模巨大。近年来,云桌面在国内蓬勃发展,包括众多学校、政府、企业等均陆续采用云桌面技术替代传统个人电脑。云桌面是企业IT(Information Technology,信息科技)架构的一次革命,带来移动计算体验的同时,满足了很多特定行业的需要。
云桌面视频重定技术中,需要进行终端视频资源获取、从终端传输到云桌面、云桌面视频播放、视频画面从云桌面传输到终端等流程,或许还要加上终端传输到云桌面前的视频编码、终端传输到云桌面后的视频解码、云桌面传输到终端前的视频编码、云桌面传输到终端后的视频解码等流程。当不进行运动图像有损压缩算法视频编解码时,高清视频数据每一帧数据都堪称巨大,通过网络传输延时相当严重,如果进行运动图像有损压缩算法视频编解码,通过网络传输的数据包可以变得非常小,网络传输延时也达到可以大致忽略的程度,但是对高清视频数据的运动图像有损压缩算法视频编解码耗时就变成了一个不可忽略的数字,这其中还要包含对云桌面图像进行运动图像有损压缩算法视频编解码的耗时。造成的结果就是虚拟机环境内播放画面与用户操作脱节,并且影响虚机其他应用程序的使用。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本发明实施例提供了一种视频重定向的处理方法、云终端和云桌面服务器,以提高视频播放流畅度。
本发明实施例提供了一种视频重定向的处理方法,包括:
云终端获取按照图像特征定位的云桌面视频图像屏幕的位置信息;
所述云终端获取本地的视频图像,按照所述位置信息播放所述视频图像。
本发明实施例还提供了一种云终端,包括:重定向客户端和云桌面客户端,其中,
所述重定向客户端用于获取视频图像保存在云终端本地;
所述云桌面客户端用于获取按照图像特征定位的云桌面视频图像屏幕的位置信息,按照所述位置信息播放所述云终端本地的视频图像。
本发明实施例还提供了一种云终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如任一本发明实施例所述的云终端执行的视频重定向处理方法。
本发明实施例还提供了一种视频重定向的处理方法,包括:
云桌面服务器确定按照图像特征定位的云桌面视频图像屏幕的位置信息;
所述云桌面服务器将所述位置信息发送至云终端,以使所述云终端按照所述位置信息播放云终端本地的视频图像。
本发明实施例还提供了一种视频重定向的处理方法,包括:
云桌面服务器接收云终端发送的经过压缩编码和封装的视频图像,将接收到的视频图像进行解析,还原为视频流数据,对所述视频流数据进行解码;
按照图像重新定位标志,在解码后得到的视频图像上设置图像特征定位标记,以使所述云终端根据所述图像特征定位标记确定云桌面视频图像屏幕的位置信息,从而按照所述位置信息播放云终端本地的视频图像。
本发明实施例还提供了一种云桌面服务器,包括重定向服务,所述重定向服务包括图像定位模块和通知模块,其中:
所述图像定位模块用于确定按照图像特征定位的云桌面视频图像屏幕的位置信息;
所述通知模块用于将所述位置信息发送至云终端,以使所述云终端按照所述位置信息播放云终端本地的视频图像。
本发明实施例还提供了一种云桌面服务器,包括重定向服务,所述重定向服务包括解包模块、解码模块和修改图像特征模块,其中:
所述解包模块用于接收云终端发送的经过压缩编码和封装的视频图像,将接收到的视频图像进行解析,还原为视频流数据;
所述解码模块用于对所述视频流数据进行解码;
所述修改图像特征模块用于按照图像重新定位标志,在所述解码模块解码后得到的视频图像上设置图像特征定位标记,以使所述云终端根据所述图像特征定位标记确定云桌面视频图像屏幕的位置信息,从而按照所述位置信息播放云终端本地的视频图像。
本发明实施例还提供了一种云桌面服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现任一本发明实施例所述的云桌面服务器执行的视频重定向处理方法。
本发明实施例还提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行本发明任一实施例的视频重定向的处理方法。
本发明实施例通过获取云桌面视频图像屏幕的位置信息,播放视频直接来源于云终端,可以极大缓解云桌面内CPU(Central Processing Unit,中央处理器)资源和网络资源,并降低播放延迟,提高视频播放流畅度。
在阅读并理解了附图和详细描述后,可以明白其他方面。
附图说明
图1为已有的视频设备重定向播放架构图;
图2为本发明实施例的重定向处理方法的流程图(应用于云终端);
图3为本发明实施例的步骤301的流程图;
图4(a)为本发明实施例的预设图案为L形的示意图;
图4(b)为本发明实施例的预设图案为三角形的示意图;
图4(c)为本发明实施例的预设图案为半闭框的示意图;
图4(d)为本发明实施例的预设图案为长方形的示意图;
图5为本发明实施例的步骤302的流程图;
图6为图5另一实施例的流程图;
图7为图5另一实施例的流程图;
图8为本发明实施例的云终端确定所述云桌面视频图像屏幕的位置发生移动的流程图;
图9为本发明另一实施例的流程图;
图10为本发明另一实施例的流程图;
图11为本发明实施例的重定向处理方法的流程图(应用于云桌面服务器);
图12为本发明实施例的步骤1101的流程图;
图13为本发明实施例的云桌面服务器确定所述云桌面视频图像屏幕的位置发生移动的流程图;
图14为本发明另一实施例的流程图;
图15为本发明实施例的云终端的组成示意图;
图16为本发明实施例的云桌面服务器的组成示意图;
图17为本发明应用实例一的流程图;
图18为本发明应用实例二的流程图;
图19为本发明应用实例三的流程图;
图20为本发明应用实例四的流程图;
图21为本发明应用实例五的流程图;
图22为本发明应用实例六的流程图;
图23为本发明实施例的云终端组成示意图;
图24为本发明实施例的云桌面服务器组成示意图。
具体实施方式
下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
如图1所示,为已有的视频设备重定向播放架构图,其中,包括云终端110和云桌面服务器210。
云终端110包括重定向客户端130和云桌面客户端120。
其中,重定向客户端130包括采集模块140、编码模块150和封包模块160。
其中,采集模块140,从视频设备中采集视频数据,也可以获取远程视频文件或视频流。
编码模块150,视频图像进行压缩编码得到视频流数据,例如,对运动图像通过有损压缩算法进行视频编码。
封包模块160,将编码模块150输出的视频流数据进行封装发送给云桌面服务器210,其中,对编码后的视频流数据封装成云桌面视频设备重定向服务协议的格式。
云桌面客户端120也称为云桌面接入客户端,是连接云桌面的客户端程序,可工作于各个操作系统平台,包括接收模块170和播放模块180。
其中,接收模块170用来接收云桌面进程中重定向过来的桌面视频流(也即客户操作系统桌面图像);
播放模块180用来播放云桌面进程中重定向过来的桌面视频流,也即:在云桌面客户端界面上显示客户操作系统桌面图像。
云桌面服务器210也即云桌面虚拟化平台服务器,包括运行在云桌面服务器中的云桌面进程210例如qemu等模拟进程、云桌面本身Guest OS(Guest Operating System,客户操作系统)230例如windows操作系统、视频设备应用程序240,重定向服务250等。
其中,视频设备应用程序240通过运行在云桌面中的视频设备播放进程实现。重定向服务250接收云终端的重定向客户端130发送的数据,解析还原后进行运动图像有损压缩算法视频解码,提交给云桌面驱动设备。
当视频设备应用程序240播放设备视频时,云桌面驱动设备(图中未示出)会收到来自操作系统230的请求,再将请求转发给重定向服务250,重定向服务250会向重定向客户端130发送请求数据,重定向客户端130接收后解析请求数据,经过采集、编码、封包后发送给重定向服务250,然后重定向服务250进行解析、还原、解码后将提交给云桌面驱动设备,云桌面驱动设备响应操作系统230的请求,视频设备应用程序240(云桌面中视频设备播放进程)即可通过操作系统API(Application Programming Interface,应用程序编程接口)取得设备视频进行播放,整个桌面画面通过显卡驱动传递到云桌面服务器中的qemu进程,qemu将画面进行编码流化后(画质已经进行压缩)经由网络传递到云桌面客户端120,展示给用户。
从上面描述可以看出,由于需要进行终端视频资源获取、从终端传输到云桌面、云桌面视频播放、视频画面从云桌面传输到终端等流程,导致通过网络传输时出现延时。
视频设备高分辨率重定向主要用于对证件、人像、打印资料进行拍照等场景,这意味着大部分视频图像只用于向使用者显示画面确认图像是否达到要求,存在保留价值的图像只有用户操作指定的一帧或几帧。
云桌面厂家针对部分对视频设备比较高的用户,展开与业务软件厂家的深度合作,由业务软件提供专用外部接口,在播放视频设备画面的同时云桌面厂家可从业务软件专用外部接口获取视频设备画面大小与位置等窗口信息,云桌面将此窗口信息发送到云终端云桌面客户端,再由云桌面客户端将本地获取的视频设备画面在指定的大小位置进行覆盖播放,拍照事件也从业务软件专用外部接口取得,再从终端取得当前视频设备画面调用业务软件专用外部接口提交业务软件。但是用户的业务软件提供商各不相同,外部接口需要特别开发,开发出来的接口也有差异。所以部分云桌面厂家要求业务软件厂家打开播放视频设备遵循TWAIN(Toolkit Without An Interesting Name,无注名工具包)协议,采用TWAIN协议的统一接口。但是业务软件各有沿革,重新开发耗时耗力,很难采用统一的协议接口。
基于上述分析,本发明实施例提出了一种云桌面环境下重定向处理方法,该方法立足于服务器虚拟化框架,通过研究视频设备解析视频过程,提出了通用的定位播放和降低带宽占用的实现方法,通过定位云桌面视频图像屏幕的位置信息,直接播放云终端本地的视频图像,从而降低视频画面的延迟。
如图2所示,本发明实施例的重定向处理方法,应用于云终端,包括:
步骤301,云终端获取按照图像特征定位的云桌面视频图像屏幕的位置信息。
其中,在一实施例中,如图3所示,步骤301可以包括:
步骤401,所述云终端获取所述云桌面服务器的客户操作系统桌面图像;
步骤402,根据所述客户操作系统桌面图像中图像特征定位标记确定所述位置信息。
在一实施例中,所述图像特征定位标记设置于所述视频图像的指定位置,所述图像特征定位标记包括具有特征颜色的预设图案。
其中,所述视频图像的指定位置包括如下位置至少之一:所述视频图像的四个角、所述视频图像的四条边。
所述特征颜色和预设图案中的至少之一与视频设备相对应,或者,所述特征颜色和预设图案中的至少之一与视频图像地址相对应。
也即,可以是所述特征颜色与视频设备相对应、或预设图案与视频设备相对应、或特征颜色和预设图案的组合与视频设备相对应。也可以是所述特征颜色与视频图像地址相对应、或预设图案与视频图像地址相对应、或特征颜色和预设图案的组合与视频图像地址相对应。
例如,当有多个视频设备时,为了区分不同的视频设备,可以采用不同的颜色与视频设备相对应,也可以采用不同的预设图案与视频设备相对应。视频设备可以是摄像头、摄像机等视频捕捉设备。所述视频图像地址可以是指远程视频的地址。
如图4(a)~(d)所示,所述预设图案可以包括但不限于:L形、半闭框、三角形、直角梯形、长方形等。
所述预设图案是便于识别的图案即可,例如,预设图案也可以采用二维码的形式,该二维码可以包含视频设备标号或者视频图像地址和所在角点标号等。
其中,所述位置信息可以包括云桌面视频图像屏幕的四个角点的位置坐标。
本发明实施例采用修改图像特征辅助快速定位视频设备图像在桌面坐标的方法,云终端内部云桌面客户端直接从重定向客户端中取得视频设备图像按定位坐标进行播放,以完成整个视频设备播放流程,从而降低视频画面的延迟。
在另一实施例中,步骤301可以包括:所述云终端接收所述云桌面服务器发送的所述位置信息。
本实施例中,所述云终端可以通过云桌面服务器直接获得所述位置信息。
步骤302,所述云终端获取本地的视频图像,按照所述位置信息播放所述视频图像。
其中,所述本地的视频图像,可以是从本地视频设备获得视频设备图像,也可以是从远程视频文件或远程视频流得到的远程视频图像。
本发明实施例通过获取云桌面视频图像屏幕的位置信息,播放视频直接来源于云终端,可以极大缓解云桌面内CPU资源和网络资源,并降低播放延迟,提高视频播放流畅度。
在一实施例中,如图5所示,步骤302可以包括:
步骤501,所述云终端按照所述位置信息确定云桌面视频图像屏幕的尺寸,按照所述云桌面视频图像屏幕的尺寸对所述本地的视频图像进行缩放;
步骤502,按照所述位置信息,在云桌面客户端界面上对应位置的置顶覆盖绘画层上绘制缩放后的视频图像。
其中,如果置顶覆盖绘画层不存在,如图6所示,在步骤502之前,还包括:
步骤601,按照所述位置信息,在所述云桌面客户端界面上创建一层置顶覆盖绘画层。
在一实施例中,如图7所示,所述方法还包括:
步骤701,所述云终端确定所述云桌面视频图像屏幕的位置发生移动,则按照变化后的位置信息,将所述置顶覆盖绘画层移动到变化后的位置。
其中,如图8所述,在一实施例中,所述云终端确定所述云桌面视频图像屏幕的位置发生移动,可以包括:
步骤801,所述云终端获取所述云桌面服务器的客户操作系统桌面图像。
步骤802,所述云终端按照所述云桌面视频图像屏幕的位置信息获取所述位置信息对应的像素点的颜色值,与本地的视频图像对应位置的像素点的颜色值进行比较,以及,将所述云桌面视频图像屏幕的位置信息对应的像素点的颜色值与所述云桌面视频图像屏幕的位置信息对应的外围像素点的颜色值进行比较。
其中,所述位置信息对应的像素点可以包括云桌面视频图像屏幕的四个角点(包括左上、右上、左下、右下四个点),所述位置信息对应的外围像素点可以包括所述四个角点的外围像素点(左上的左、上像素点,右上的右、上像素点,左下的左、下像素点,右下的右、下像素点)(共8个)。
其中,在一实施例中,分别比较云桌面视频图像屏幕的四个角点的颜色值与本地的视频图像四个角点的颜色值之差的绝对值,得到第一偏差(Cv1)、第二偏差(Cv2)、第三偏差(Cv3)、第四偏差(Cv4)、第一最大分量偏差(Mv1)、第二最大分量偏差(Mv2)、第三最大分量偏差(Mv3)和第四最大分量偏差(Mv4);以及,分别比较云桌面视频图像屏幕的四个角点的颜色值与云桌面视频图像屏幕的四个角点的外围像素点的颜色值之差的绝对值,得到第五偏差(Cv5)、第六偏差(Cv6)、第七偏差(Cv7)、第八偏差(Cv8)、第九偏差(Cv9)、第十偏差(Cv10)、第十一偏差(Cv11)、第十二偏差(Cv12)、第五最大分量偏差(Mv5)、第六最大分量偏差(Mv6)、第七最大分量偏差(Mv7)、第八最大分量偏差(Mv8)、第九最大分量偏差(Mv9)、第十最大分量偏差(Mv10)、第十一最大分量偏差(Mv11)和第十二最大分量偏差(Mv12)。
其中,上述颜色值可表示为RGB(红绿蓝)各分量值,也可表示为YUV各分量或者YCbCr各分量。如表示为RGB分量值,则像素点1与像素点2之间的偏差可以表示为如下式:
Cv=|R1-R2|+|G1-G2|+|B1-B2|
另外,最大分量偏差可表示为下式:
Mv=MAX(|R1-R2|,|G1-G2|,|B1-B2|)
在其他实施例中,所述位置信息对应的像素点可以包括云桌面视频图像屏幕的四条边的1/2点(或1/4点、1/8点等等),则相应地,位置信息对应的外围像素点分别为相应的上、下、左、右共四个外围像素点。
步骤803,根据比较结果确定所述云桌面视频图像屏幕的位置发生移动。
其中,在一实施例中,在符合Cv1>=Cv5并且Mv1>=Mv5、Cv1>=Cv6并且Mv1>=Mv6、Cv2>=Cv7并且Mv2>=Mv7、Cv2>=Cv8并且Mv2>=Mv8、Cv3>=Cv9并且Mv3>=Mv9、Cv3>=Cv10并且Mv3>=Mv10、Cv4>=Cv11并且Mv4>=Mv11、Cv4>=Cv12并且Mv4>=Mv12中的至少之一时,确定所述云桌面视频图像屏幕的位置发生移动。
在另一实施例中,所述云终端确定所述云桌面视频图像屏幕的位置发生移动,可以包括:
所述云终端接收所述云桌面服务器发送的重新定位的通知。
也就是说,所述云终端通过该重新定位的通知,获知云桌面视频图像屏幕的位置发生移动。
在一实施例中,可以使用图像重新定位标志,以指示是否需要定位云桌面视频图像屏幕的位置。在需要定位的情况下,设置图像重新定位标志,也可以称为图像重新定位标志存在,或其状态为设置状态、存在状态或置位状态,该图像重新定位标志可以定义在共享内存中,或者定义为全局变量,通过其他进程间通讯手段在云终端中重定向模块与云终端中云桌面客户端之间同步。在不需要定位的情况下,取消图像重新定位标志,也可以称为图像重新定位标志不存在,或其状态为取消状态。例如,可以将图像重新定位标志设置为1对应表示该标志存在,设置为0表示该标志不存在。在初始情况下,该标志存在。在云桌面视频图像屏幕的位置发生移动时,设置所述图像重新定位标志,也即该标志存在。在根据所述客户操作系统桌面图像中图像特征定位标记确定所述位置信息之后,云终端或云桌面服务器取消图像重新定位标志。
在一实施例中,如图9所示,所述方法还包括:
步骤901,所述云终端按照图像重新定位标志,在所述本地的视频图像上设置图像特征定位标记;
步骤902,所述云终端将设置有所述图像特征定位标记的视频图像压缩编码和封装,发送至云桌面服务器。
也就是说,在图像重新定位标志存在的情况下,对本地的视频图像进行修改,发给云桌面服务器,用于定位。
在另一实施例中,所述方法还包括:所述云终端按照图像重新定位标志,将本地的视频图像压缩编码和封装,发送至云桌面服务器。
在该实施例中,可以由云桌面服务器在接收到的视频图像上设置图像特征定位标记。
在一实施例中,如图10所示,所述方法还包括:
步骤1001,所述云终端监控键鼠事件;其中,所述键鼠事件包括键盘事件和鼠标事件中的至少之一。
其中,所述键盘事件可以包括Ctrl(控制)键、Alt(替换)键、Enter(输入)键和空格键中的至少之一。
所述鼠标事件可以包括鼠标左键按键事件、鼠标中键按键事件和鼠标右键按键事件中的至少之一。
步骤1002,所述云终端确定发生键鼠事件时,将所述本地的视频图像中存在键鼠事件的视频图像压缩编码和封装,发送至云桌面服务器。
本实施例中,考虑到拍照(截屏)事件,在可能发生拍照事件的情况下,云终端将本地的视频图像发送给云桌面服务器。
其中,在没有监测到键鼠事件且图像重新定位标志不存在的情况下,可以采用丢弃视频图像的方式,不发送视频流数据给云桌面服务器。
本发明实施例可以实现云终端到云桌面服务器发送的视频数据降频,减少从云终端发送给云桌面的视频数据,占用带宽因此能够大幅降低。
本发明实施例中,云终端内部云桌面客户端界面直接播放本地的视频图像,充分利用云终端硬件资源,降低云桌面资源消耗,提高视频播放体验,使之接近于传统PC,同时可以节省云桌面服务器计算资源。
在本发明实施例中,也可以由云桌面服务器确定云桌面视频图像屏幕的位置信息,和/或在视频图像上设置图像特征定位标记。
如图11所示,本发明实施例的重定向处理方法,应用于云桌面服务器,包括:
步骤1101,云桌面服务器确定按照图像特征定位的云桌面视频图像屏幕的位置信息。
如图12所示,在一实施例中,步骤1101包括:
步骤1201,所述云桌面服务器获取客户操作系统桌面图像。
步骤1202,所述云桌面服务器根据所述客户操作系统桌面图像中图像特征定位标记确定所述位置信息。
在一实施例中,所述图像特征定位标记设置于所述视频图像的指定位置,所述图像特征定位标记包括具有特征颜色的预设图案。
其中,所述视频图像的指定位置包括如下位置至少之一:所述视频图像的四个角、所述视频图像的四条边。
所述特征颜色和预设图案中的至少之一与视频设备相对应,或者,所述特征颜色和预设图案中的至少之一与视频图像地址相对应。
例如,当有多个视频设备时,为了区分不同的视频设备,可以采用不同的颜色与视频设备相对应,也可以采用不同的预设图案与视频设备相对应。视频设备可以是摄像头、摄像机等视频捕捉设备。所述视频图像地址可以是指远程视频的地址。
如图4(a)~(d)所示,所述预设图案可以包括但不限于:L形、半闭框、三角形、直角梯形、长方形等。
所述预设图案是便于识别的图案即可,例如,预设图案也可以采用二维码的形式,该二维码可以包含视频设备标号或者视频图像地址和所在角点标号等。
其中,所述位置信息可以包括云桌面视频图像屏幕的四个角点的位置坐标。
步骤1102,所述云桌面服务器将所述位置信息发送至云终端,以使所述云终端按照所述位置信息播放云终端本地的视频图像。
本发明实施例通过获取云桌面视频图像屏幕的位置信息,播放视频直接来源于云终端,可以极大缓解云桌面内CPU资源和网络资源,并降低播放延迟,提高视频播放流畅度。
图像重新定位标志也可以由云桌面服务器设置或取消,在一实施例中,所述云桌面服务器获取客户操作系统桌面图像,根据所述客户操作系统桌面图像中图像特征定位标记确定所述位置信息之后,还包括:所述云桌面服务器取消图像重新定位标志。
在一实施例中,所述云桌面服务器确定所述云桌面视频图像屏幕的位置发生移动,设置图像重新定位标志。
如图13所示,所述云桌面服务器确定所述云桌面视频图像屏幕的位置发生移动,包括:
步骤1301,所述云桌面服务器获取来自云终端的视频图像存入云桌面缓存,以及获取客户操作系统桌面图像。
步骤1302,所述云桌面服务器按照所述云桌面视频图像屏幕的位置信息获取所述位置信息对应的像素点的颜色值,与所述云桌面缓存的视频图像对应位置的像素点的颜色值进行比较,以及,将所述云桌面视频图像屏幕的位置信息对应的像素点的颜色值与所述云桌面视频图像屏幕的位置信息对应的外围像素点的颜色值进行比较。
步骤1303,所述云桌面服务器根据比较结果确定所述云桌面视频图像屏幕的位置发生移动。
其中,步骤1302~1303中比较的方法与步骤802~803类似,此处不再赘述。
如图14所示,在一实施例中,所述方法还包括:
步骤1401,云桌面服务器接收云终端发送的经过压缩编码和封装的视频图像,将接收到的视频图像进行解析,还原为视频流数据,对所述视频流数据进行解码。
步骤1402,所述云桌面服务器按照图像重新定位标志,在解码后得到的视频图像上设置图像特征定位标记。
在本实施例中,所述云桌面服务器负责设置图像特征定位标记。
在另一实施例中,所述方法还包括:所述云桌面服务器在预设的视频图像上设置图像特征定位标记。
在该实施例中,所述云桌面服务器无需获取云终端本地的视频,直接采用在预设的视频图像上设置图像特征定位标记,适用于无需拍照(截图)的情况。
所述云桌面服务器也可以仅在视频图像上设置图像特征定位标记,由云终端确定云桌面视频图像屏幕的位置信息,该实施例可参见图14,其中,步骤1402中,云桌面服务器在解码后得到的视频图像上设置图像特征定位标记,以使所述云终端根据所述图像特征定位标记确定云桌面视频图像屏幕的位置信息,从而按照所述位置信息播放云终端本地的视频图像。
从上述描述可以看出,本发明实施例的重定向处理方法具有如下特点:
1、获取云桌面视频图像屏幕位置不依赖云桌面使用何种应用程序打开视频设备播放面面,不需要应用程序进行二次开发,是通过桌面图像内部定位获取到位置信息,与应用程序无耦合,维护升本低;
2、重定向处理方法适合于所有重定向视频设备,适合所有云桌面平台,通用性比较好;
3、播放视频直接来源于云终端,可以大大缓解云桌面内CPU和网络资源,并大大提高视频流畅度。
如图15所示,本发明实施例的云终端1500包括:重定向客户端1510和云桌面客户端1520,其中,
所述重定向客户端1510用于获取视频图像保存在云终端本地;
所述云桌面客户端1520用于获取按照图像特征定位的云桌面视频图像屏幕的位置信息,按照所述位置信息播放所述云终端本地的视频图像。
本发明实施例通过获取云桌面视频图像屏幕的位置信息,播放视频直接来源于云终端,可以极大缓解云桌面内CPU资源和网络资源,并降低播放延迟,提高视频播放流畅度。
在一实施例中,所述重定向客户端1510包括:采集模块1511、编码模块1512、封包模块1513和修改图像特征模块1514,其中
所述采集模块1511用于获取视频图像保存在云终端本地。
所述修改图像特征模块1514用于按照图像重新定位标志,在所述云终端本地的视频图像上设置图像特征定位标记。
其中,修改图像特征模块1514可以检查该图像重新定位标志,如标志存在,则在进行运动图像有损压缩算法视频编码前对图像进行修改,添加特征颜色标记的预设图案到图像的上下左右四个角,用于图像定位模块快速定位该画面在客户操作系统桌面图像(即云桌面桌面图像)中的位置,不同的特征颜色和预设图案可以用于标记不同的视频设备。
其中,图像重新定位标志定义在共享内存中,或者定义为全局变量,通过其他进程间通讯手段在云终端的重定向客户端与云终端的云桌面客户端进行同步。标志存在,即表示视频设备图像需要重新定位,如视频设备打开或者播放视频设备的应用程序窗口位置大小发生变化时;标志不存在,即表示视频设备图像不需要重新定位,播放视频设备的应用程序窗口位置大小未发生变化。不同的视频设备可以分别定义有不同的图像重新定位标志。
所述编码模块1512用于将设置有所述图像特征定位标记的视频图像进行压缩编码得到视频流数据。
所述封包模块1513用于将所述编码模块输出的视频流数据进行封装,发送至云桌面服务器。
本发明实施例从视频图像入手,修改图像特征以用于终端快速定位图像位置,与云桌面应用程序解耦,不需要二次开发,通用性很强,不受云桌面应用程序的切换而影响功能,维护成本低,灵活性强。
在一实施例中,所述重定向客户端还包括:键鼠事件监控模块1515,
所述键鼠事件监控模块1515用于监控键鼠事件。
所述编码模块1512还用于在所述键鼠事件监控模块监测到键鼠事件时,将所述云终端本地的视频图像中存在键鼠事件的视频图像进行压缩编码得到视频流数据。
在一实施例中,键鼠事件监控模块1515统计视频设备一帧图像处理期间的Ctrl键、Alt键、Enter键、空格键、鼠标左键、鼠标中键和鼠标右键按键事件,如无此类事件,则在共享内存中保存一份原始图像(即从视频设备取得的未经修改的图像)后,检查该图像重新定位标志,如果标志也不存在,则该帧图像丢弃不再发送到云桌面服务器(原始图像不丢弃,供本地播放使用),如果标志存在,则进行修改图像特征后进入运动图像有损压缩算法视频编码重新封装数据包后发送到云桌面服务器;如果有此类事件,则表示云桌面可能会进行拍照操作,检查该图像重新定位标志,如果标志也存在,则进行修改图像特征后进入运动图像有损压缩算法视频编码重新封装数据包后发送到云桌面服务器,如果标志不存在,则直接进入运动图像有损压缩算法视频编码重新封装数据包后发送到云桌面服务器。
本发明实施例可以根据键鼠事件动态调整视频画面的传输频率,降低带宽。
在一实施例中,所述重定向客户端1510包括:采集模块1511、编码模块1512、封包模块1513和所述键鼠事件监控模块1515,其中
所述采集模块1511用于获取云终端本地的视频图像;
所述键鼠事件监控模块1515用于监控键鼠事件;
所述编码模块1512用于在所述键鼠事件监控模块1515监测到键鼠事件,和/或存在图像重新定位标志时,将所述云终端本地的视频图像中存在键鼠事件和/或存在图像重新定位标志的视频图像进行压缩编码;
所述封包模块1513用于将经过压缩编码的云终端本地的视频图像进行封装,发送至云桌面服务器。
在该实施例中,重定向客户端1510不包括修改图像特征模块1504,由云桌面服务器负责修改图像特征。
在一实施例中,所述云桌面客户端1520包括:接收模块1521、播放模块1522和置顶播放模块1523,其中,
所述接收模块1521用于获取所述云桌面服务器的客户操作系统桌面图像,以及,接收所述云桌面服务器发送的所述位置信息;
所述播放模块1522用于在云桌面客户端界面上显示所述客户操作系统桌面图像;
所述置顶播放模块1523用于按照所述位置信息确定云桌面视频图像屏幕的尺寸,按照所述云桌面视频图像屏幕的尺寸对所述本地的视频图像进行缩放;按照所述位置信息,在云桌面客户端界面上对应位置的置顶覆盖绘画层上绘制缩放后的视频图像。
其中,置顶播放模块1523可以从共享内存中获取云终端本地的视频图像(原始图像)。
在一实施例中,所述云桌面客户端包括:接收模块1521、图像定位模块1524、播放模块1522和置顶播放模块1523,其中,
所述接收模块1521用于获取所述云桌面服务器的客户操作系统桌面图像。
所述图像定位模块1524用于根据所述客户操作系统桌面图像中图像特征定位标记确定所述位置信息。
其中,在一实施例中,图像定位模块1524在图像重新定位标志存在时,将客户操作系统桌面图像提交给云终端屏幕前,遍历客户操作系统桌面图像,遇到特征颜色(允许RGB各分量在误差范围内进入下面的判断),判断该特征颜色代表视频设备是否存在,如果设备存在则继续判断该特征颜色像素点连起来的图案是否符合预设图案,如果图案符合则该视频设备画面位置已定位,记录该位置,取消该图像重新定位标志。
所述播放模块1522用于在云桌面客户端界面上显示所述客户操作系统桌面图像。
所述置顶播放模块1523用于按照所述位置信息确定云桌面视频图像屏幕的尺寸,按照所述云桌面视频图像屏幕的尺寸对所述本地的视频图像进行缩放;按照所述位置信息,在云桌面客户端界面上对应位置的置顶覆盖绘画层上绘制缩放后的视频图像。
在一实施例中,所述图像定位模块1524还用于确定所述云桌面视频图像屏幕的位置发生移动,设置所述图像重新定位标志。
在一实施例中,所述图像定位模块1524用于按照所述云桌面视频图像屏幕的位置信息获取所述位置信息对应的像素点的颜色值,与本地的视频图像对应位置的像素点的颜色值进行比较,以及,将所述云桌面视频图像屏幕的位置信息对应的像素点的颜色值与所述云桌面视频图像屏幕的位置信息对应的外围像素点的颜色值进行比较,根据比较结果确定所述云桌面视频图像屏幕的位置发生移动。
在一实施例中,所述置顶播放模块1523还用于在所述位置信息变化时,按照变化后的位置信息,将所述置顶覆盖绘画层移动到变化后的位置。
在本实施例中,重定向视频图像传递方向为:采集模块1511->键鼠事件监控模块1515->修改图像特征模块1514->编码模块1512->封包模块1513
本地播放视频图像传递方向为:采集模块1511->键鼠事件监控模块1515->图像定位模块1524->置顶播放模块1523
本发明实施例涉及云终端的重定向客户端组件,包括修改图像特征模块、键鼠事件监控模块;云桌面客户端组件,包括图像定位模块和置顶播放模块,部署成功可以迅速提升用户体验,经济效益好。
如图16所示,本发明实施例的云桌面服务器1600,包括:重定向服务1610,所述重定向服务1610包括图像定位模块1611和通知模块1612,其中
所述图像定位模块1611用于确定按照图像特征定位的云桌面视频图像屏幕的位置信息;
所述通知模块1612用于将所述位置信息发送至云终端,以使所述云终端按照所述位置信息播放云终端本地的视频图像。
在一实施例中,所述重定向服务还包括屏幕图像获取模块1613,
所述屏幕图像获取模块1613用于获取客户操作系统桌面图像;
所述图像定位模块1611用于根据所述客户操作系统桌面图像中图像特征定位标记确定所述位置信息。
在一实施例中,所述图像定位模块1611还用于根据所述客户操作系统桌面图像中图像特征定位标记确定所述位置信息之后,取消图像重新定位标志;以及确定所述云桌面视频图像屏幕的位置发生移动,设置图像重新定位标志。
在一实施例中,所述图像定位模块1611用于按照所述云桌面视频图像屏幕的位置信息获取所述位置信息对应的像素点的颜色值,与所述云终端本地的视频图像对应位置的像素点的颜色值进行比较,以及,将所述云桌面视频图像屏幕的位置信息对应的像素点的颜色值与所述云桌面视频图像屏幕的位置信息对应的外围像素点的颜色值进行比较,根据比较结果确定所述云桌面视频图像屏幕的位置发生移动。
在一实施例中,所述重定向服务1610还包括解包模块1614、解码模块1615和修改图像特征模块1616,其中
所述解包模块1614用于接收所述云终端发送的经过压缩编码和封装的视频图像,将接收到的视频图像进行解析,还原为视频流数据;
所述解码模块1615用于对所述视频流数据进行解码;
所述修改图像特征模块1616用于按照图像重新定位标志,在所述解码模块解码后得到的视频图像上设置图像特征定位标记。
在一实施例中,所述云桌面服务器,包括:重定向服务1610,其中,所述重定向服务1610包括解包模块1614、解码模块1615和修改图像特征模块1616,其中
所述解包模块1614用于接收云终端发送的经过压缩编码和封装的视频图像,将接收到的视频图像进行解析,还原为视频流数据;
所述解码模块1615用于对所述视频流数据进行解码;
所述修改图像特征模块1616用于按照图像重新定位标志,在所述解码模块解码后得到的视频图像上设置图像特征定位标记,以使所述云终端根据所述图像特征定位标记确定云桌面视频图像屏幕的位置信息,从而按照所述位置信息播放云终端本地的视频图像。
从上述描述可以看出,修改图像特征模块和图像定位模块可以位于云终端中,也可以位于云桌面服务器中;置顶播放模块和键鼠事件监控模块位于云终端,其中,键鼠事件监控模块为可选模块,在需要拍照的情况下存在。在图像定位模块位于云桌面服务器中时,云桌面服务器还包括屏幕图像获取模块和通知模块。
本发明实施例通过修改传输给云桌面的视频图像,再通过在桌面图像中对视频设备图像特征进行定位,使用来源于终端本地视频设备的图像直接置顶播放,延迟低且通用。而且,本发明实施例除了能直接播放来源于终端本地视频设备的图像的同时,还可以通过监控键鼠事件判断用户拍照操作,与云桌面进行视频设备图像画面降频传输进而降低带宽,而采用直接获取云桌面桌面图像播放的方式是不能对视频画面降频传输的,否则图像跳跃感和残影会比较严重,而且影响拍照动作。
下面以几个应用实例进行说明。
应用实例一
如图17所示,本应用实例中云终端网络与云桌面服务器网络互通,说明如下:
步骤1701,重定向客户端向视频设备请求视频数据;
步骤1702,视频设备响应请求,重定向客户端收到视频数据;
步骤1703,键鼠事件监控模块统计该视频设备一帧图像处理期间的Ctrl键、Alt键、Enter键、空格键、鼠标左键、鼠标中键和鼠标右键按键事件,在共享内存中保存一份原始图像(或者通过其他进程间通讯手段发送给云终端内部云桌面客户端进程供图像定位模块和置顶播放模块使用,如管道、网络通讯等方式)后,记录事件数;
步骤1704,修改图像特征模块根据键鼠事件和该图像重新定位标志进行下一步的处理,如果键鼠事件数为零并且该图像重新定位标志也不存在,则该帧图像丢弃返回步骤1701继续处理;如果键鼠事件数为零但是该图像重新定位标志存在,则进行修改图像特征后进入步骤1705;如果键鼠事件数不为零并且该图像重新定位标志也存在,则进行修改图像特征后进入步骤1705;如果键鼠事件数不为零但是标志不存在,则直接进入步骤1705。修改图像特征模块修改图像特征时,添加特征颜色标记的预设图案到图像的上下左右四个角,用于图像定位模块快速定位该画面在云桌面桌面图像中的位置,特征颜色用于标记不同的视频设备,预设图案如L形、半闭框、三角形、直角梯形、长方形等等有助于快速识别的图案;
步骤1705,编码模块对视频图像数据按顺序进行运动图像有损压缩算法视频编码;
步骤1706,封包模块对编码后的视频数据封装成云桌面视频设备重定向服务协议的格式;
步骤1707,封装完成后视频设备重定向客户端将数据包发送给云桌面服务器的视频设备重定向服务;
步骤1708,重定向服务接收数据包进行解析、还原、解码后将提交给云桌面驱动设备;
步骤1709,云桌面驱动设备通过响应操作系统的请求的方式将视频数据提交给操作系统;
步骤1710,视频设备应用程序(云桌面中视频设备播放进程)即可通过操作系统API取得设备视频进行播放;
步骤1701-1710是一个循环的过程,直到视频设备拨除或用户退出云桌面或用户关闭云桌面中视频设备播放进程为止。
与此同时,
步骤1711,云桌面客户端(也可称为云桌面接入客户端程序)从运行在云桌面服务器中的云桌面进程例如qemu等模拟进程取得云桌面Guest OS桌面图像;
步骤1712,图像定位模块遍历云桌面Guest OS桌面图像,在图像重新定位标志存在的情况下,遇到特征颜色(允许RGB各分量在误差范围内进入下面的判断),判断该特征颜色代表视频设备是否存在,如果设备存在则继续判断该特征颜色像素点连起来的图案是否符合预设图案(预设图案如L形、半闭框、三角形、直角梯形、长方形等等有助于快速识别的图案),如果图案符合则该视频设备画面(即云桌面视频图像屏幕)位置已定位,记录该位置,取消该图像重新定位标志;在图像重新定位标志不存在的情况下,已定位视频设备记录位置(包括左上、右上、左下、右下四个点),记录该点及外围像素点(左上的左、上像素点,右上的右、上像素点,左下的左、下像素点,右下的右、下像素点)的颜色值,与共享内存中原始图像(或者通过其他进程间通讯手段从云终端的重定向客户端进程键鼠事件监控模块发送过来的视频设备原始图像数据,如管道、网络通讯等方式)的四个角点颜色值进行比较,当判断云桌面视频图像屏幕的四个角点与共享内存原始图像(或者通过其他进程间通讯手段从云终端重定向客户端进程键鼠事件监控模块发送过来的视频设备原始图像数据,如管道、网络通讯等方式)中四个角点的颜色偏差值比云桌面视频图像屏幕的四个角点与外围像素点的偏差值大时(参见步骤802~803描述,符合Cv1>=Cv5并且Mv1>=Mv5、Cv1>=Cv6并且Mv1>=Mv6、Cv2>=Cv7并且Mv2>=Mv7、Cv2>=Cv8并且Mv2>=Mv8、Cv3>=Cv9并且Mv3>=Mv9、Cv3>=Cv10并且Mv3>=Mv10、Cv4>=Cv11并且Mv4>=Mv11、Cv4>=Cv12并且Mv4>=Mv12中的至少之一时),即视频设备播放图像的位置在屏幕上已经发生变化,需要重新进行定位,标记该图像重新定位标志,等视频设备下一帧画面在云桌面中绘制获取发送到终端后进行显示时进行重新定位;
步骤1713,播放模块将云桌面Guest OS桌面图像在云桌面客户端界面上进行绘制;
步骤1714,当该图像重新定位标志存在时,置顶播放模块不进行续制,否则置顶播放模块将共享内存中取得的原始图像(或者通过其他进程间通讯手段从云终端重定向客户端进程键鼠事件监控模块发送过来的视频设备原始图像数据,如管道、网络通讯等方式)按已定位视频设备记录位置大小进行缩放,然后在云桌面客户端界面该位置置顶覆盖绘画层上(如果还没有置顶覆盖绘画层,则创建一层置顶覆盖绘画层)绘制缩放后的画面,如视频设备图像重新定位后位置发生变化,则将该置顶覆盖绘画层移动到变化后的位置后再绘制缩放后的画面;
步骤1711-1714也是一个循环的过程,直到用户退出云桌面为止。
应用实例二
如图18所示,与应用实例一相比,主要区别在修改图像特征模块位置不同,应用实例一中修改图像特征模块位于重定向客户端,应用实例二修改图像特征模块位于重定向服务,此应用实例中云终端网络与云桌面的网络互通,说明如下:
步骤1801,重定向客户端向视频设备请求视频数据;
步骤1802,视频设备响应请求,重定向客户端收到视频数据;
步骤1803,键鼠事件监控模块统计该视频设备一帧图像处理期间的Ctrl键、Alt键、Enter键、空格键、鼠标左键、鼠标中键和鼠标右键按键事件,在共享内存中保存一份原始图像(或者通过其他进程间通讯手段发送给云终端内部云桌面客户端进程供图像定位模块和置顶播放模块使用,如管道、网络通讯等方式)后,记录事件数。然后根据键鼠事件和该图像重新定位标志进行下一步的处理,如果键鼠事件数为零并且该图像重新定位标志也不存在,则该帧图像丢弃返回步骤1801继续处理;否则进入步骤1804。
步骤1804,编码模块对视频图像数据按顺序进行运动图像有损压缩算法视频编码;
步骤1805,封包模块对编码后的视频数据封装成云桌面视频设备重定向服务协议的格式;
步骤1806,封装完成后视频设备重定向客户端将数据包发送给云桌面服务器的重定向服务;
步骤1807,云桌面服务器的重定向服务接收数据包进行解析、还原;
步骤1808,将解析、还原后的视频流数据进行解码,在缓存中保存一份解码后的原始图像(当重定向服务与图像定位模块所在进程不属于同一个进程时,可以通过进程间通讯手段发送给图像定位模块所在进程使用,如共享内存、管道、网络通讯等方式);
步骤1809,修改图像特征模块该图像重新定位标志进行下一步的处理,如果该图像重新定位标志不存在,则该帧图像直接进入步骤1810;否则进行修改图像特征后进入步骤1810。修改图像特征模块修改图像特征时,添加特征颜色标记的预设图案到图像的上下左右四个角,用于图像定位模块快速定位该画面在云桌面图像中的位置,特征颜色用于标记不同的视频设备,预设图案如L形、半闭框、三角形、直角梯形、长方形等等有助于快速识别的图案;
步骤1810,重定向服务将该帧视频设备图像提交给云桌面驱动设备;
步骤1811,云桌面驱动设备通过响应操作系统的请求的方式将视频数据提交给操作系统;
步骤1812,视频设备应用程序(云桌面中视频设备播放进程)即可通过操作系统API取得设备视频进行播放;
步骤1801-1812是一个循环的过程,直到视频设备拨除或用户退出云桌面或用户关闭云桌面中视频设备播放进程为止。
与此同时,
步骤1813-1816同1711-1714。
步骤1813-1816也是一个循环的过程,直到用户退出云桌面为止。
应用实例三
如图19所示,应用实例三与应用实例一相比,主要区别在图像定位模块位置不同,应用实例一中图像定位模块位于云桌面客户端,应用实例三图像定位模块位于重定向服务,新增屏幕图像捕获模块和通知模块,此应用实例中云桌面中的重定向服务与云终端内部云桌面客户端之间建立网络连接,通知视频图像屏幕位置与视频设备图像是否需要重新定位,由云终端内部云桌面客户端更新该图像重新定位标志以及置顶播放视频,说明如下:
1901-1910同1701-1710。
步骤1901-1910是一个循环的过程,直到视频设备拨除、用户退出云桌面或用户关闭云桌面中视频设备播放进程为止。
与此同时,
步骤1911,云桌面的重定向服务对云桌面Guest OS图像进行截图;
步骤1912,图像定位模块遍历云桌面Guest OS桌面图像,在图像重新定位标志存在的情况下,遇到特征颜色(允许RGB各分量在误差范围内进入下面的判断),判断该特征颜色代表视频设备是否存在,如果设备存在则继续判断该特征颜色像素点连起来的图案是否符合预设图案(预设图案如L形、半闭框、三角形、直角梯形、长方形等等有助于快速识别的图案),如果图案符合则该视频设备画面位置已定位,记录该位置,取消该图像重新定位标志;在图像重新定位标志不存在的情况下,已定位视频设备记录位置(包括左上、右上、左下、右下四个点),记录该点及外围像素点(左上的左、上像素点,右上的右、上像素点,左下的左、下像素点,右下的右、下像素点)的颜色值,与云桌面视频设备重定向服务缓存中该设备原始图像(当图像定位模块所在进程与云桌面视频设备重定向服务不属于同一个进程时,可以通过进程间通讯手段从云桌面视频设备重定向服务取得视频设备原始图像数据,如共享内存、管道、网络通讯等方式)的四个角点颜色值进行比较,当判断云桌面视频图像屏幕的四个角点与共享内存原始图像(或者通过其他进程间通讯手段从云终端重定向客户端进程键鼠事件监控模块发送过来的视频设备原始图像数据,如管道、网络通讯等方式)中四个角点的颜色偏差值比云桌面视频图像屏幕的四个角点与外围像素点的偏差值大时(参见步骤802~803描述,符合Cv1>=Cv5并且Mv1>=Mv5、Cv1>=Cv6并且Mv1>=Mv6、Cv2>=Cv7并且Mv2>=Mv7、Cv2>=Cv8并且Mv2>=Mv8、Cv3>=Cv9并且Mv3>=Mv9、Cv3>=Cv10并且Mv3>=Mv10、Cv4>=Cv11并且Mv4>=Mv11、Cv4>=Cv12并且Mv4>=Mv12中的至少之一时),即视频设备播放图像的位置在屏幕上已经发生变化,需要重新进行定位,标记该图像重新定位标志,等视频设备下一帧画面在云桌面中绘制获取发送到云终端后进行显示时进行重新定位;
步骤1913,当该图像重新定位标志存在时,发送该视频设备图像需要重新定位的通知到云终端内部云桌面客户端,否则发送已定位视频设备记录位置对比之前位置是否有移动,如有移动,则发送视频图像屏幕位置到云终端内部云桌面客户端,否则不发送消息。完成处理后,重定向服务回到步骤1911继续下一轮循环;
步骤1914,云终端内部云桌面客户端接收消息,如果是该视频设备图像需要重新定位的通知则更新该图像重新定位标志,不再继续下面的处理,如果是视频图像屏幕位置,则记录更新视频设备图像屏幕位置;
步骤1915,当该图像重新定位标志存在时,置顶播放模块不进行续制,否则置顶播放模块将共享内存中取得的原始图像(或者通过其他进程间通讯手段从云终端视频设备重定向客户端进程键鼠事件监控模块发送过来的视频设备原始图像数据,如管道、网络通讯等方式)按已定位视频设备记录位置大小进行缩放,然后在云桌面客户端界面该位置置顶覆盖绘画层上(如果还没有置顶覆盖绘画层,则创建一层置顶覆盖绘画层)绘制缩放后的画面,如视频设备图像重新定位后位置发生变化,则将该置顶覆盖绘画层移动到变化后的位置后再绘制缩放后的画面;
步骤1911-1915也是一个循环的过程,直到用户退出云桌面为止。
应用实例四
如图20所示,应用实例四与应用实例一相比,所有新增模块位置皆不同,应用实例一中所有新增模块位于终端,应用实例四部分新增模块位于重定向服务,说明如下:
2001-2012同1801-1812。
步骤2001-2012是一个循环的过程,直到视频设备拨除、用户退出云桌面或用户关闭云桌面中视频设备播放进程为止。
与此同时,
2013-2017同1911-1915。
步骤2013-2017也是一个循环的过程,直到用户退出云桌面为止。
应用实例五
如图21所示,应用实例五可用于截图场景,适用于视频重定向领域,说明如下:
步骤2101,云桌面视频程序请求播放远程视频文件或者远程视频流;
步骤2102,访问过滤程序(HOOK或者插件)截获云桌面视频程序请求访问地址,并将其发给云终端的采集模块;
步骤2103,云终端的采集模块请求远程视频文件或者远程视频流;
步骤2104,远程视频文件下载到云终端或者云终端取得远程视频流;
步骤2105,云终端的解码模块对下载到本地的视频文件或视频流进行解码;
步骤2106,键鼠事件监控模块统计该视频一帧图像处理期间的Ctrl键、Alt键、Enter键、空格键、鼠标左键、鼠标中键和鼠标右键按键事件,在共享内存中保存一份原始图像(或者通过其他进程间通讯手段发送给云终端内部云桌面客户端进程供图像定位模块和置顶播放模块使用,如管道、网络通讯等方式)后,记录事件数,进入修改图像特征模块;
步骤2107,修改图像特征模块根据键鼠事件和该视频图像重新定位标志进行下一步的处理,如果键鼠事件数为零并且该视频图像重新定位标志也不存在,则该帧图像丢弃返回步骤2103继续请求远程视频文件或者远程视频流;如果键鼠事件数为零但是该视频图像重新定位标志存在,则进行修改图像特征后进入步骤2108;如果键鼠事件数不为零并且该视频图像重新定位标志也存在,则进行修改图像特征后进入步骤2108;如果键鼠事件数不为零但是标志不存在,则直接进入步骤2108。修改图像特征模块修改图像特征时,添加特征颜色标记的预设图案到图像的上下左右四个角,用于图像定位模块快速定位该画面在云桌面图像中的位置,特征颜色用于标记不同的视频,预设图案如L形、半闭框、三角形、直角梯形、长方形等等有助于快速识别的图案;
步骤2108,编码模块对视频图像按原视频格式重新进行编码;
步骤2109,封包模块对编码后的视频数据封装成云桌面访问过滤程序接收的格式;
步骤2110,封装完成后重定向客户端将数据包发送给云桌面访问过滤程序;
步骤2111,云桌面访问过滤程序将视频数据解析后返回云桌面视频程序以使云桌面视频程序播放修改后的画面;
步骤2103-2111是一个循环的过程,直到远程视频播放结束、用户退出云桌面或用户关闭云桌面中视频程序为止。
与此同时,
步骤2112,云桌面客户端程序从运行在云桌面服务器中的云桌面进程例如qemu等模拟进程取得云桌面Guest OS桌面图像;
步骤2113,图像定位模块遍历云桌面Guest OS桌面图像,在图像重新定位标志存在的情况下,遇到特征颜色(允许RGB各分量在误差范围内进入下面的判断),判断该特征颜色代表视频是否存在,如果视频存在则继续判断该特征颜色像素点连起来的图案是否符合预设图案(预设图案如L形、半闭框、三角形、直角梯形、长方形等等有助于快速识别的图案),如果图案符合则该视频画面位置已定位,记录该位置,取消该视频图像重新定位标志;在图像重新定位标志不存在的情况下,已定位视频记录位置(包括左上、右上、左下、右下四个点),记录该点及外围像素点(左上的左、上像素点,右上的右、上像素点,左下的左、下像素点,右下的右、下像素点)的颜色值,与共享内存中原始图像(或者通过其他进程间通讯手段从云终端视频重定向客户端进程键鼠事件监控模块发送过来的视频原始图像数据,如管道、网络通讯等方式)的四个角点颜色值进行比较,当判断云桌面视频图像屏幕的四个角点与共享内存原始图像(或者通过其他进程间通讯手段从云终端重定向客户端进程键鼠事件监控模块发送过来的视频设备原始图像数据,如管道、网络通讯等方式)中四个角点的颜色偏差值比云桌面视频图像屏幕的四个角点与外围像素点的偏差值大时(参见步骤802~803描述,符合Cv1>=Cv5并且Mv1>=Mv5、Cv1>=Cv6并且Mv1>=Mv6、Cv2>=Cv7并且Mv2>=Mv7、Cv2>=Cv8并且Mv2>=Mv8、Cv3>=Cv9并且Mv3>=Mv9、Cv3>=Cv10并且Mv3>=Mv10、Cv4>=Cv11并且Mv4>=Mv11、Cv4>=Cv12并且Mv4>=Mv12中的至少之一时),即视频播放图像的位置在屏幕上已经发生变化,需要重新进行定位,标记该视频图像重新定位标志,等视频下一帧画面在云桌面中绘制获取发送到云终端后进行显示时进行重新定位,当前视频画面仍按原定位视频记录位置处理;
步骤2114,播放模块将云桌面Guest OS桌面图像在云桌面客户端界面上进行绘制;
步骤2115,当该视频图像重新定位标志存在时,置顶播放模块不进行续制,否则置顶播放模块将共享内存中取得的原始图像(或者通过其他进程间通讯手段从云终端视频重定向客户端进程键鼠事件监控模块发送过来的视频原始图像数据,如管道、网络通讯等方式)按已定位视频记录位置大小进行缩放,然后在云桌面客户端界面该位置置顶覆盖绘画层上(如果还没有置顶覆盖绘画层,则创建一层置顶覆盖绘画层)绘制缩放后的画面,如视频图像重新定位后位置发生变化,则将该置顶覆盖绘画层移动到变化后的位置后再绘制缩放后的画面;
步骤2112-2115也是一个循环的过程,直到用户退出云桌面为止。
应用实例六
如图22所示,应用实例六是应用实例五的一种改进型,适用于视频重定向领域。该应用实例不能进行截图,没有使用图像重新定位标志。说明如下:
步骤2201,云桌面视频程序请求播放远程视频文件或者远程视频流;
步骤2202访问过滤程序(HOOK或者插件)截获云桌面视频程序请求访问地址,并将其发给云终端的采集模块;
步骤2202’,访问过滤程序(HOOK或者插件)返回云桌面视频程序一份包含修改图像特征的图像视频,云桌面视频程序播放修改后的画面。该图像视频为预设的视频图像。修改图像特征后的图像,添加特征颜色标记的预设图案到图像的上下左右四个角,用于图像定位模块快速定位该画面在云桌面图像中的位置,特征颜色用于标记不同的视频,预设图案如L形、半闭框、三角形、直角梯形、长方形等等有助于快速识别的图案;
步骤2203,云终端的采集模块请求远程视频文件或者远程视频流;
步骤2204,远程视频文件下载到云终端或者云终端取得远程视频流;
步骤2205,云终端的解码模块对下载到本地的视频文件或视频流进行解码,在共享内存中保存一份原始图像(或者通过其他进程间通讯手段发送给云终端内部云桌面客户端进程供图像定位模块和置顶播放模块使用,如管道、网络通讯等方式);
步骤2204-2205是一个循环的过程,直到远程视频播放结束、用户退出云桌面或用户关闭云桌面中视频程序为止。
与此同时,
步骤2206,云桌面客户端程序从运行在云桌面服务器中的云桌面进程例如qemu等模拟进程取得云桌面Guest OS桌面图像;
步骤2207,图像定位模块遍历云桌面Guest OS桌面图像,遇到特征颜色(允许RGB各分量在误差范围内进入下面的判断),判断该特征颜色代表视频是否存在,如果视频存在则继续判断该特征颜色像素点连起来的图案是否符合预设图案(预设图案如L形、半闭框、三角形、直角梯形、长方形等等有助于快速识别的图案),如果图案符合则该视频画面位置已定位,记录该位置,在已定位视频记录位置的情况下,更新已定位视频记录位置(包括左上、右上、左下、右下四个点);
步骤2208,播放模块将云桌面Guest OS桌面图像在云桌面客户端界面上进行绘制;
步骤2209,置顶播放模块将共享内存中取得的原始图像(或者通过其他进程间通讯手段从云终端重定向客户端进程的解码模块发送过来的视频原始图像数据,如管道、网络通讯等方式)按已定位视频记录位置大小进行缩放,然后在云桌面客户端界面该位置置顶覆盖绘画层上(如果还没有置顶覆盖绘画层,则创建一层置顶覆盖绘画层)绘制缩放后的画面,如视频图像重新定位后位置发生变化,则将该置顶覆盖绘画层移动到变化后的位置后再绘制缩放后的画面。
步骤2206-2209也是一个循环的过程,直到用户退出云桌面为止。
综上所述,本发明实施例可以高效地满足视频设备重定向领域对云桌面的使用要求,节省用户资源,满足用户等要求,同时不耦合使用视频设备应用程序,维护成本低,是一项极具特色的亮点功能。对云桌面领域的推广,起到很好的示范作用。
如图23所示,本发明实施例还提供一种云终端,包括存储器231、处理器232及存储在存储器231上并可在处理器232上运行的计算机程序,所述处理器执行所述程序时实现上述的视频重定向的处理方法。
如图24所示,本发明实施例还提供一种云桌面服务器,包括存储器241、处理器242及存储在存储器241上并可在处理器242上运行的计算机程序,所述处理器执行所述程序时实现上述的视频重定向的处理方法。
本发明实施例还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述的视频重定向的处理方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (33)
1.一种视频重定向的处理方法,包括:
云终端获取按照图像特征定位的云桌面视频图像屏幕的位置信息;
所述云终端获取本地的视频图像,按照所述位置信息播放所述视频图像;
所述云终端按照图像重新定位标志,在所述本地的视频图像上设置图像特征定位标记,将设置有所述图像特征定位标记的视频图像压缩编码和封装,发送至云桌面服务器;所述云终端确定所述云桌面视频图像屏幕的位置发生移动,设置所述图像重新定位标志;或者,
所述云终端按照图像重新定位标志,将本地的视频图像压缩编码和封装,发送至云桌面服务器,云桌面服务器在接收到的视频图像上设置图像特征定位标记;
所述云终端获取按照图像特征定位的云桌面视频图像屏幕的位置信息,包括:所述云终端获取所述云桌面服务器的客户操作系统桌面图像,根据所述客户操作系统桌面图像中图像特征定位标记确定所述位置信息。
2.如权利要求1所述的方法,其特征在于,所述图像特征定位标记设置于所述视频图像的指定位置,所述图像特征定位标记包括具有特征颜色的预设图案。
3.如权利要求2所述的方法,其特征在于,
所述视频图像的指定位置包括如下位置至少之一:所述视频图像的四个角、所述视频图像的四条边;
所述特征颜色和预设图案中的至少之一与视频设备相对应,或者,所述特征颜色和预设图案中的至少之一与视频图像地址相对应;
所述预设图案包括如下之一:L形、半闭框、三角形、直角梯形、长方形、二维码。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述云终端监控键鼠事件,确定发生键鼠事件时,将所述本地的视频图像中存在键鼠事件的视频图像压缩编码和封装,发送至云桌面服务器;其中,所述键鼠事件包括键盘事件和鼠标事件中的至少之一。
5.如权利要求4所述的方法,其特征在于,
所述键盘事件包括控制Ctrl键、替换Alt键、输入Enter键和空格键中的至少之一;
所述鼠标事件包括鼠标左键按键事件、鼠标中键按键事件和鼠标右键按键事件中的至少之一。
6.如权利要求1所述的方法,其特征在于,所述云终端获取按照图像特征定位的云桌面视频图像屏幕的位置信息,包括:
所述云终端接收所述云桌面服务器发送的所述位置信息。
7.如权利要求6所述的方法,其特征在于,所述根据所述客户操作系统桌面图像中图像特征定位标记确定所述位置信息之后,所述方法还包括:
所述云终端取消图像重新定位标志。
8.如权利要求1所述的方法,其特征在于,所述按照所述位置信息播放所述视频图像之前,所述方法还包括:
所述云终端确定图像重新定位标志为取消的状态。
9.如权利要求1所述的方法,其特征在于,所述按照所述位置信息播放所述视频图像,包括:
所述云终端按照所述位置信息确定云桌面视频图像屏幕的尺寸,按照所述云桌面视频图像屏幕的尺寸对所述本地的视频图像进行缩放;按照所述位置信息,在云桌面客户端界面上对应位置的置顶覆盖绘画层上绘制缩放后的视频图像。
10.如权利要求9所述的方法,其特征在于,所述在云桌面客户端界面上对应的位置置顶覆盖绘画层上绘制缩放后的视频图像之前,所述方法还包括:
按照所述位置信息,在所述云桌面客户端界面上创建一层置顶覆盖绘画层。
11.如权利要求9所述的方法,其特征在于,所述方法还包括:所述云终端确定所述云桌面视频图像屏幕的位置发生移动,则按照变化后的位置信息,将所述置顶覆盖绘画层移动到变化后的位置。
12.如权利要求11所述的方法,其特征在于,所述云终端确定所述云桌面视频图像屏幕的位置发生移动,包括:
所述云终端获取所述云桌面服务器的客户操作系统桌面图像,按照所述云桌面视频图像屏幕的位置信息获取所述位置信息对应的像素点的颜色值,与本地的视频图像对应位置的像素点的颜色值进行比较,以及,将所述云桌面视频图像屏幕的位置信息对应的像素点的颜色值与所述云桌面视频图像屏幕的位置信息对应的外围像素点的颜色值进行比较,根据比较结果确定所述云桌面视频图像屏幕的位置发生移动;或者
所述云终端接收所述云桌面服务器发送的重新定位的通知。
13.如权利要求1所述的方法,其特征在于,
所述位置信息包括云桌面视频图像屏幕的四个角点的位置坐标。
14.一种视频重定向的处理方法,包括:
云桌面服务器确定按照图像特征定位的云桌面视频图像屏幕的位置信息;
所述云桌面服务器将所述位置信息发送至云终端,以使所述云终端按照所述位置信息播放云终端本地的视频图像;
所述云桌面服务器确定所述云桌面视频图像屏幕的位置发生移动,设置图像重新定位标志;
所述云桌面服务器接收所述云终端发送的经过压缩编码和封装的视频图像,将接收到的视频图像进行解析,还原为视频流数据,对所述视频流数据进行解码;按照图像重新定位标志,在解码后得到的视频图像上设置图像特征定位标记;
所述云桌面服务器确定按照图像特征定位的云桌面视频图像屏幕的位置信息,包括:
所述云桌面服务器获取客户操作系统桌面图像,根据所述客户操作系统桌面图像中图像特征定位标记确定所述位置信息。
15.如权利要求14所述的方法,其特征在于,所述云桌面服务器获取客户操作系统桌面图像,根据所述客户操作系统桌面图像中图像特征定位标记确定所述位置信息之后,还包括:
所述云桌面服务器取消图像重新定位标志。
16.如权利要求15所述的方法,其特征在于,所述云桌面服务器确定所述云桌面视频图像屏幕的位置发生移动,包括:
所述云桌面服务器获取来自云终端的视频图像存入云桌面缓存,以及,获取客户操作系统桌面图像,按照所述云桌面视频图像屏幕的位置信息获取所述位置信息对应的像素点的颜色值,与所述云桌面缓存的视频图像对应位置的像素点的颜色值进行比较,以及,将所述云桌面视频图像屏幕的位置信息对应的像素点的颜色值与所述云桌面视频图像屏幕的位置信息对应的外围像素点的颜色值进行比较,根据比较结果确定所述云桌面视频图像屏幕的位置发生移动。
17.一种视频重定向的处理方法,包括:
云桌面服务器接收云终端发送的经过压缩编码和封装的视频图像,将接收到的视频图像进行解析,还原为视频流数据,对所述视频流数据进行解码;
在所述云桌面视频图像屏幕的位置发生移动,设置所述图像重新定位标志;
按照图像重新定位标志,在解码后得到的视频图像上设置图像特征定位标记,以使所述云终端根据所述图像特征定位标记确定云桌面视频图像屏幕的位置信息,从而按照所述位置信息播放云终端本地的视频图像;
所述云终端获取按照图像特征定位的云桌面视频图像屏幕的位置信息,包括:所述云终端获取所述云桌面服务器的客户操作系统桌面图像,根据所述客户操作系统桌面图像中图像特征定位标记确定所述位置信息。
18.如权利要求17所述的方法,其特征在于,
所述图像特征定位标记设置于视频图像的指定位置,所述图像特征定位标记包括具有特征颜色的预设图案。
19.一种云终端,其特征在于,包括:重定向客户端和云桌面客户端,其中,
所述重定向客户端用于获取视频图像保存在云终端本地;
所述云桌面客户端用于获取按照图像特征定位的云桌面视频图像屏幕的位置信息,按照所述位置信息播放所述云终端本地的视频图像;
所述重定向客户端包括:采集模块、编码模块、封包模块和修改图像特征模块,其中
所述采集模块用于获取视频图像保存在云终端本地;
所述修改图像特征模块用于按照图像重新定位标志,在所述云终端本地的视频图像上设置图像特征定位标记;
所述编码模块用于将设置有所述图像特征定位标记的视频图像进行压缩编码得到视频流数据;
所述封包模块用于将所述编码模块输出的视频流数据进行封装,发送至云桌面服务器;
在所述云桌面视频图像屏幕的位置发生移动,设置所述图像重新定位标志;
所述云桌面客户端包括:接收模块、图像定位模块,其中,
所述接收模块用于获取所述云桌面服务器的客户操作系统桌面图像;
所述图像定位模块用于根据所述客户操作系统桌面图像中图像特征定位标记确定所述位置信息。
20.如权利要求19所述的云终端,其特征在于,所述重定向客户端还包括:键鼠事件监控模块,
所述键鼠事件监控模块用于监控键鼠事件;
所述编码模块还用于在所述键鼠事件监控模块监测到键鼠事件时,将所述云终端本地的视频图像中存在键鼠事件的视频图像进行压缩编码得到视频流数据。
21.如权利要求19所述的云终端,其特征在于,所述重定向客户端包括:采集模块、编码模块、封包模块和键鼠事件监控模块,其中
所述采集模块用于获取云终端本地的视频图像;
所述键鼠事件监控模块用于监控键鼠事件;
所述编码模块用于在所述键鼠事件监控模块监测到键鼠事件,和/或存在图像重新定位标志时,将所述云终端本地的视频图像中存在键鼠事件和/或存在图像重新定位标志的视频图像进行压缩编码;
所述封包模块用于将经过压缩编码的云终端本地的视频图像进行封装,发送至云桌面服务器。
22.如权利要求19所述的云终端,其特征在于,所述云桌面客户端包括:接收模块、播放模块和置顶播放模块,其中,
所述接收模块用于获取所述云桌面服务器的客户操作系统桌面图像,以及,接收所述云桌面服务器发送的所述位置信息;
所述播放模块用于在云桌面客户端界面上显示所述客户操作系统桌面图像;
所述置顶播放模块用于按照所述位置信息确定云桌面视频图像屏幕的尺寸,按照所述云桌面视频图像屏幕的尺寸对所述本地的视频图像进行缩放;按照所述位置信息,在云桌面客户端界面上对应位置的置顶覆盖绘画层上绘制缩放后的视频图像。
23.如权利要求19所述的云终端,其特征在于,所述云桌面客户端包括:播放模块和置顶播放模块,其中,
所述播放模块用于在云桌面客户端界面上显示所述客户操作系统桌面图像;
所述置顶播放模块用于按照所述位置信息确定云桌面视频图像屏幕的尺寸,按照所述云桌面视频图像屏幕的尺寸对所述本地的视频图像进行缩放;按照所述位置信息,在云桌面客户端界面上对应位置的置顶覆盖绘画层上绘制缩放后的视频图像。
24.如权利要求23所述的云终端,其特征在于,所述图像定位模块还用于确定所述云桌面视频图像屏幕的位置发生移动,设置所述图像重新定位标志。
25.如权利要求24所述的云终端,其特征在于,
所述图像定位模块用于按照所述云桌面视频图像屏幕的位置信息获取所述位置信息对应的像素点的颜色值,与本地的视频图像对应位置的像素点的颜色值进行比较,以及,将所述云桌面视频图像屏幕的位置信息对应的像素点的颜色值与所述云桌面视频图像屏幕的位置信息对应的外围像素点的颜色值进行比较,根据比较结果确定所述云桌面视频图像屏幕的位置发生移动。
26.如权利要求22或23所述的云终端,其特征在于,所述置顶播放模块还用于在所述位置信息变化时,按照变化后的位置信息,将所述置顶覆盖绘画层移动到变化后的位置。
27.一种云桌面服务器,包括:重定向服务,其特征在于,所述重定向服务包括图像定位模块和通知模块,其中
所述图像定位模块用于确定按照图像特征定位的云桌面视频图像屏幕的位置信息;
所述通知模块用于将所述位置信息发送至云终端,以使所述云终端按照所述位置信息播放云终端本地的视频图像;
所述重定向服务还包括解包模块、解码模块和修改图像特征模块,其中
所述解包模块用于接收所述云终端发送的经过压缩编码和封装的视频图像,将接收到的视频图像进行解析,还原为视频流数据;
所述解码模块用于对所述视频流数据进行解码;
所述修改图像特征模块用于按照图像重新定位标志,在所述解码模块解码后得到的视频图像上设置图像特征定位标记
在所述云桌面视频图像屏幕的位置发生移动,设置所述图像重新定位标志;
所述重定向服务还包括屏幕图像获取模块,
所述屏幕图像获取模块用于获取客户操作系统桌面图像;
所述图像定位模块用于根据所述客户操作系统桌面图像中图像特征定位标记确定所述位置信息。
28.如权利要求27所述的云桌面服务器,其特征在于,
所述图像定位模块还用于根据所述客户操作系统桌面图像中图像特征定位标记确定所述位置信息之后,取消图像重新定位标志;以及确定所述云桌面视频图像屏幕的位置发生移动,设置图像重新定位标志。
29.如权利要求28所述的云桌面服务器,其特征在于,
所述图像定位模块用于按照所述云桌面视频图像屏幕的位置信息获取所述位置信息对应的像素点的颜色值,与所述云终端本地的视频图像对应位置的像素点的颜色值进行比较,以及,将所述云桌面视频图像屏幕的位置信息对应的像素点的颜色值与所述云桌面视频图像屏幕的位置信息对应的外围像素点的颜色值进行比较,根据比较结果确定所述云桌面视频图像屏幕的位置发生移动。
30.一种云桌面服务器,包括:重定向服务,其特征在于,所述重定向服务包括解包模块、解码模块和修改图像特征模块,其中
所述解包模块用于接收云终端发送的经过压缩编码和封装的视频图像,将接收到的视频图像进行解析,还原为视频流数据;
所述解码模块用于对所述视频流数据进行解码;
所述修改图像特征模块用于按照图像重新定位标志,在所述解码模块解码后得到的视频图像上设置图像特征定位标记,以使所述云终端根据所述图像特征定位标记确定云桌面视频图像屏幕的位置信息,从而按照所述位置信息播放云终端本地的视频图像;
在所述云桌面视频图像屏幕的位置发生移动,设置所述图像重新定位标志;
所述云终端获取按照图像特征定位的云桌面视频图像屏幕的位置信息,包括:所述云终端获取所述云桌面服务器的客户操作系统桌面图像,根据所述客户操作系统桌面图像中图像特征定位标记确定所述位置信息。
31.一种云终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~13中任意一项所述的视频重定向的处理方法。
32.一种云桌面服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求14~18中任意一项所述的视频重定向的处理方法。
33.一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1~18任一项的视频重定向的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810916701.8A CN109040792B (zh) | 2018-08-13 | 2018-08-13 | 一种视频重定向的处理方法、云终端和云桌面服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810916701.8A CN109040792B (zh) | 2018-08-13 | 2018-08-13 | 一种视频重定向的处理方法、云终端和云桌面服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109040792A CN109040792A (zh) | 2018-12-18 |
CN109040792B true CN109040792B (zh) | 2021-04-09 |
Family
ID=64633891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810916701.8A Active CN109040792B (zh) | 2018-08-13 | 2018-08-13 | 一种视频重定向的处理方法、云终端和云桌面服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109040792B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110515686B (zh) * | 2019-08-28 | 2021-05-18 | 联想(北京)有限公司 | 一种图像显示方法及装置 |
CN111082950B (zh) * | 2019-11-05 | 2022-12-27 | 福建升腾资讯有限公司 | 一种云桌面广播方法、装置、系统、设备和介质 |
CN111526428B (zh) * | 2020-04-26 | 2022-04-26 | 湖南麒麟信安科技股份有限公司 | 一种在云桌面中实现html5视频播放的方法、系统及介质 |
CN111683286A (zh) * | 2020-05-22 | 2020-09-18 | 湖南云之翼软件有限公司 | 一种新型的视频重定向方法 |
CN112637636B (zh) * | 2020-12-23 | 2022-02-22 | 新华三大数据技术有限公司 | 一种视频流处理方法及装置 |
CN115883854A (zh) * | 2021-09-29 | 2023-03-31 | 中兴通讯股份有限公司 | 云桌面显示方法、终端、云桌面系统、设备及可读介质 |
CN114338550B (zh) * | 2022-03-14 | 2022-06-21 | 杭州子默网络科技有限公司 | 一种减低带宽的云电脑实时编码方法及系统 |
CN117851211A (zh) * | 2022-09-30 | 2024-04-09 | 中兴通讯股份有限公司 | 云系统的测试方法及装置 |
CN117319592B (zh) * | 2023-12-01 | 2024-03-26 | 银河麒麟软件(长沙)有限公司 | 一种云桌面摄像头重定向方法、系统及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103475953A (zh) * | 2013-09-13 | 2013-12-25 | 华为技术有限公司 | 一种基于桌面云的媒体控制方法和设备 |
CN103686152A (zh) * | 2013-12-11 | 2014-03-26 | 深圳Tcl新技术有限公司 | 显示设备图像重显率的调整方法和显示设备 |
CN103905927A (zh) * | 2012-12-26 | 2014-07-02 | 华为技术有限公司 | 虚拟桌面场景下视频重定向的方法、桌面服务器和系统 |
WO2014155853A1 (ja) * | 2013-03-29 | 2014-10-02 | 沖電気工業株式会社 | 遠隔作業支援システム及び遠隔作業支援プログラム記憶媒体 |
US9173005B1 (en) * | 2010-01-06 | 2015-10-27 | ILook Corporation | Displaying information on a TV remote and video on the TV |
CN105227989A (zh) * | 2014-06-24 | 2016-01-06 | 北京云端时代科技有限公司 | 一种基于vdi技术架构的多媒体重定向方法和系统 |
CN107018137A (zh) * | 2017-04-07 | 2017-08-04 | 成都长天信息技术有限公司 | 一种Flash重定向方法及装置 |
CN108093246A (zh) * | 2017-11-21 | 2018-05-29 | 青岛海信电器股份有限公司 | 一种数字机顶盒视频播放区域的识别方法及装置 |
-
2018
- 2018-08-13 CN CN201810916701.8A patent/CN109040792B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9173005B1 (en) * | 2010-01-06 | 2015-10-27 | ILook Corporation | Displaying information on a TV remote and video on the TV |
CN103905927A (zh) * | 2012-12-26 | 2014-07-02 | 华为技术有限公司 | 虚拟桌面场景下视频重定向的方法、桌面服务器和系统 |
WO2014155853A1 (ja) * | 2013-03-29 | 2014-10-02 | 沖電気工業株式会社 | 遠隔作業支援システム及び遠隔作業支援プログラム記憶媒体 |
CN103475953A (zh) * | 2013-09-13 | 2013-12-25 | 华为技术有限公司 | 一种基于桌面云的媒体控制方法和设备 |
CN103686152A (zh) * | 2013-12-11 | 2014-03-26 | 深圳Tcl新技术有限公司 | 显示设备图像重显率的调整方法和显示设备 |
CN105227989A (zh) * | 2014-06-24 | 2016-01-06 | 北京云端时代科技有限公司 | 一种基于vdi技术架构的多媒体重定向方法和系统 |
CN107018137A (zh) * | 2017-04-07 | 2017-08-04 | 成都长天信息技术有限公司 | 一种Flash重定向方法及装置 |
CN108093246A (zh) * | 2017-11-21 | 2018-05-29 | 青岛海信电器股份有限公司 | 一种数字机顶盒视频播放区域的识别方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109040792A (zh) | 2018-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109040792B (zh) | 一种视频重定向的处理方法、云终端和云桌面服务器 | |
US20210136455A1 (en) | Communication apparatus, communication control method, and computer program | |
US20220014819A1 (en) | Video image processing | |
CN105959724B (zh) | 一种视频数据处理方法以及装置 | |
CN108833938B (zh) | 用于选取视频封面的方法和设备 | |
US20050021810A1 (en) | Remote display protocol, video display system, and terminal equipment | |
WO2022252488A1 (zh) | 一种图像压缩方法、装置、电子设备及可读存储介质 | |
US9860285B2 (en) | System, apparatus, and method for sharing a screen having multiple visual components | |
CN109983500A (zh) | 重新投影全景视频图片的平板投影以通过应用进行渲染 | |
CN114938408B (zh) | 一种云手机的数据传输方法、系统、设备及介质 | |
US20120218292A1 (en) | System and method for multistage optimized jpeg output | |
CN113905186A (zh) | 自由视点视频画面拼接方法、终端及可读存储介质 | |
CN114222185B (zh) | 视频播放方法、终端设备及存储介质 | |
Safin et al. | Hardware and software video encoding comparison | |
US20240233190A1 (en) | Partial decoding and reconstruction of submeshes | |
WO2021147463A1 (zh) | 视频处理方法、装置及电子设备 | |
US11716474B2 (en) | Storage of EVC decoder configuration information | |
CN111225214B (zh) | 视频处理方法、装置及电子设备 | |
CN116962743A (zh) | 视频图像编码、抠图方法和装置及直播系统 | |
CN111541940B (zh) | 显示设备的运动补偿方法、装置、电视机及存储介质 | |
JP5171655B2 (ja) | 画像送信装置、方法及び記憶媒体 | |
CN112948046A (zh) | 截屏方法、装置、设备及存储介质 | |
KR102247887B1 (ko) | 클라우드 스트리밍 서비스 시스템, 소스 정보를 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 | |
CN110876069A (zh) | 视频截图的获取方法、装置、设备及存储介质 | |
CN115695889B (zh) | 显示设备及悬浮窗显示方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |