掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本申请涉及云桌面技术领域,特别涉及一种视频重定向方法及装置。

背景技术

当前云计算的时代背景下,VDI的应用场景日益广泛,VDI主要依靠物理服务器上的Hypervisor划分出的虚拟机,但是虚拟机中视频和图像处理的硬件显卡非常昂贵,且客户机上通常具有较强的视频解码和处理能力,若仅当做云桌面的接入平台则是对客户机资源的一种浪费。在当前,视频播放是最为常见的一种日常应用,但是若在虚拟机中直接播放视频,可能带来虚拟机卡顿,播放画面不流畅等问题,因此进行视频重定向是一种必要的措施,也是技术潮流。

在VDI的视频重定向的技术实现中,包含虚拟机播放器,和客户端播放器。在视频播放过程中,需要将虚拟机中播放控制信息及音视频数据信息传递到客户端,在客户端完成音视频解码、显示及播放控制的功能。另外,在虚拟机中会实时监控播放器的位置信息,并把该位置信息传递到客户端,客户端图像显示部分收到该消息后会调整客户端播放器的位置,进而使客户端播放画面与虚拟机画面保持一致。如此,完成了视频重定向的功能。

目前市场上存在的视频重定向应用,只使用一个重定向窗口来显示视频图像,根据接收到播放器窗口的位置信息,实时的更新客户端播放窗口的位置。示例性的,参阅图1所示,在单桌面窗口的场景下,重定向桌面是一个独立窗口,用户可单独关闭重定向窗口,且桌面窗口的明水印也无法在叠加在重定向窗口上,明水印功能失效。在多屏场景下进行视频重定向时,禁止用户窗口化桌面窗口,用户体验差。即使放开让用户窗口化桌面窗口,如果两个屏幕的分辨率不同,则也无法合理排布多个桌面窗口和重定向窗口,示例性的,参阅图2所示。

发明内容

本申请提供了一种视频重定向方法及装置,用以解决现有技术中存在的客户端桌面窗口明水印失效,以及多屏显示时用户体验差的问题。

第一方面,本申请提供了一种视频重定向方法,应用于云桌面系统中的客户端,所述方法包括:

在创建桌面窗口时,创建所述桌面窗口对应的视频重定向图层和水印图层;

接收所述客户端对应的虚拟机发送的视频数据和播放控制信息;

基于所述播放控制信息确定所述视频重定向图层在所述桌面窗口中的位置,并将所述视频数据发送至所述视频重定向图层进行渲染。

可选地,在创建桌面窗口时,创建所述桌面窗口对应的视频重定向图层和水印图层的步骤包括:

针对每一显示屏创建对应的桌面窗口;

针对每一桌面窗口创建对应的视频重定向图层和水印图层。

可选地,所述水印图层在所述视频重定向图层的上层。

可选地,基于所述播放控制信息确定所述视频重定向图层在所述桌面窗口中的位置,并将所述视频数据发送至所述视频重定向图层进行渲染的步骤包括:

在接收到所述客户端对应的虚拟机发送的所述播放控制信息时,判断本地是否创建有多个桌面窗口;

若判定本地创建有多个桌面窗口,则根据所述播放控制信息,判断视频是否需要跨屏显示;

若判定需要跨屏显示,则对所述视频数据进行解码操作,并分别将解码后的视频数据发送给所述多个桌面窗口分别对应的视频重定向图层进行渲染。

可选地,所述方法还包括:

若判定本地创建有一个桌面窗口,则对所述视频数据进行解码操作,并将解码后的视频数据发送所述一个桌面窗口对应的视频重定向图层进行渲染;

若判定本地创建有多个桌面窗口,而无需跨屏显示,则确定用于显示所述视频的目标桌面窗口,并对所述视频数据进行解码操作,以及将解码后的视频数据发送所述目标桌面窗口对应的视频重定向图层进行渲染。

第二方面,本申请提供了一种视频重定向装置,应用于云桌面系统中的客户端,所述装置包括:

创建单元,用于在创建桌面窗口时,创建所述桌面窗口对应的视频重定向图层和水印图层;

接收单元,用于接收所述客户端对应的虚拟机发送的视频数据和播放控制信息;

发送单元,用于基于所述播放控制信息确定所述视频重定向图层在所述桌面窗口中的位置,并将所述视频数据发送至所述视频重定向图层进行渲染。

可选地,在创建桌面窗口,创建所述桌面窗口对应的视频重定向图层和水印图层时,所述创建单元具体用于:

针对每一显示屏创建对应的桌面窗口;

针对每一桌面窗口创建对应的视频重定向图层和水印图层。

可选地,所述水印图层在所述视频重定向图层的上层。

可选地,基于所述播放控制信息确定所述视频重定向图层在所述桌面窗口中的位置,并将所述视频数据发送至所述视频重定向图层进行渲染时,所述发送单元具体用于:

在接收到所述客户端对应的虚拟机发送的所述播放控制信息时,判断本地是否创建有多个桌面窗口;

若判定本地创建有多个桌面窗口,则根据所述播放控制信息,判断视频是否需要跨屏显示;

若判定需要跨屏显示,则对所述视频数据进行解码操作,并分别将解码后的视频数据发送给所述多个桌面窗口分别对应的视频重定向图层进行渲染。

可选地,所述发送单元还用于:

若判定本地创建有一个桌面窗口,则对所述视频数据进行解码操作,并将解码后的视频数据发送所述一个桌面窗口对应的视频重定向图层进行渲染;

若判定本地创建有多个桌面窗口,而无需跨屏显示,则确定用于显示所述视频的目标桌面窗口,并对所述视频数据进行解码操作,以及将解码后的视频数据发送所述目标桌面窗口对应的视频重定向图层进行渲染。

第三方面,本申请实施例提供一种客户端,该客户端包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如上述第一方面中任一项所述的方法的步骤。

第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行如上述第一方面中任一项所述方法的步骤。

综上可知,本申请实施例提供的视频重定向方法,应用于云桌面系统中的客户端,该方法包括:在创建桌面窗口时,创建所述桌面窗口对应的视频重定向图层和水印图层;接收所述客户端对应的虚拟机发送的视频数据和播放控制信息;基于所述播放控制信息确定所述视频重定向图层在所述桌面窗口中的位置,并将所述视频数据发送至所述视频重定向图层进行渲染。

采用本申请实施例提供的视频重定向方法,将虚拟机播放的视频在客户端中以图层显示的方式进行显示,用户无法通过其他非正常方式在客户端关闭该视频,保证功能正常运行,由于图层创建时,与对应桌面窗口的分辨率适配,那么,视频在进行跨屏显示时,不会出现视频分辨率适配一个桌面窗口而不适配另一桌面窗口的情况,提升了用户视觉体验度。

附图说明

为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。

图1为现有技术提供的一种视频重定向示意图;

图2为现有技术提供的另一种视频重定向示意图;

图3为本申请实施例提供的一种视频重定向方法的详细流程图;

图4为本申请实施例提供的一种视频重定向示意图;

图5为本申请实施例提供的视频重定向装置的结构示意图;

图6为本申请实施例提供的另一种客户端的结构示意图。

具体实施方式

在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

示例性的,参阅图3所示,为本申请实施例提供的一种视频重定向方法的详细流程图,该方法应用于云桌面系统中的客户端,该方法包括以下步骤:

步骤300:在创建桌面窗口时,创建上述桌面窗口对应的视频重定向图层和水印图层。

需要说明的是,本申请实施例中,所谓桌面窗口,指的是云桌面客户端户端创建的,用于显示虚拟机桌面图像的窗口。在多显卡的场景下,会存在多个桌面窗口。所谓图层,指的是窗口的一个元素,每个窗口可包含多个图层。窗口中的图层有层次关系,上层图层可覆盖下层图层的内容。

那么,视频重定向图层即是指用于显示重定向视频图像的图层,水印图层即是指用于显示水印的图层。

本申请实施例中,在执行步骤300时,一种较佳地实现方式为,针对每一显示屏创建对应的桌面窗口,并针对每一桌面窗口创建对应的视频重定向图层和水印图层。

进一步地,本申请实施例中,一种较佳地实现方式为,上述水印图层在上述视频重定向图层的上层。

也就是说,客户端可以包括多个显示屏,那么,就需要针对每一显示屏创建对应的桌面窗口,并针对已创建的每一桌面窗口创建用于视频重定向的第一图层和包含有水印的第二图层,较佳地,为了确保水印不会被第一图层覆盖而导致水印失效,则可以将第二图层作为第一图层的上层。

例如,客户端程序在创建桌面窗口时,创建有桌面窗口1和桌面窗口2,针对桌面窗口1创建视频重定向图层1和水印图层1,针对桌面窗口2创建视频重定向图层2和水印图层2,其中,水印图层1可以覆盖在视频重定向图层1上,水印图层2可以覆盖在视频重定向图层2上。

本申请实施例中,由于水印图层处于视频重定向图层的上层,这样,就不会出现视频重定向图层覆盖住水印图层中水印而导致水印失效的情况。

步骤310:接收上述客户端对应的虚拟机发送的视频数据和播放控制信息。

实际应用中,虚拟机读取视频文件,进行音视频分离处理,得到音频数据和视频数据后;虚拟机将音频数据,视频数据和播放控制信息(如,播放控制信号)发送给对应的客户端,客户端基于播放控制信号分别对音频数据和视频数据进行播放处理。

具体地,虚拟机发送的播放控制信息包括视频播放进度,以及虚拟机中视频播放窗口的位置信息。

步骤320:基于上述播放控制信息确定上述视频重定向图层在上述桌面窗口中的位置,并将上述视频数据发送至上述视频重定向图层进行渲染。

具体地,客户端在接收到视频数据和播放控制信息时,基于该播放控制信息包含的视频播放窗口在虚拟机中的位置信息,调整用于显示视频图像的视频重定向图层在桌面窗口中的位置,并将视频数据进行解码处理,以及根据解码后的视频数据对视频重定向图层进行渲染处理。

本申请实施例中,在基于上述播放控制信息确定上述视频重定向图层在上述桌面窗口中的位置,并将上述视频数据发送至上述视频重定向图层进行渲染时,一种较佳地实现方式为,在接收到上述客户端对应的虚拟机发送的上述播放控制信息时,判断本地是否创建有多个桌面窗口;若判定本地创建有多个桌面窗口,则根据上述播放控制信息,判断视频是否需要跨屏显示;若判定需要跨屏显示,则对上述视频数据进行解码操作,并分别将解码后的视频数据发送给上述多个桌面窗口分别对应的视频重定向图层进行渲染。

本申请实施例中,在针对每一桌面窗口创建对应的视频重定向图层时,是基于桌面窗口的分辨率进行创建的,那么,当视频需要分屏显示时,示例性的,参阅图4所示,为本申请实施例提供的一种重定向示意图。假设视频图像分屏显示后被分为视频图像1和视频图像2,在桌面窗口1上显示有视频图像1,在桌面窗口2上显示有视频图像2,那么,在桌面窗口1上显示的视频图像1是基于桌面窗口1对应的视频重定向图层1来进行显示的,在桌面窗口2上显示的视频图像2是基于桌面窗口2对应的视频重定向图层2来进行显示的,而各桌面窗口对应的视频重定向图层在创建时,与对应桌面窗口的分辨率相匹配的。这样,就提升了用户视觉体验度,不会出现显示窗口与桌面窗口分辨率不匹配而导致用户视觉体验差的问题。

需要说明的是,在一个客户端对应多个显示屏(即多个桌面窗口)时,当视频在一个桌面窗口上显示时,可以理解为另一个桌面窗口对应的重定向图层不在该一个桌面窗口的显示范围内,即可以理解为多个桌面窗口对应的视频重定向图层是重叠在一起的。由此可推出,当视频分双屏显示时,视频的一部分在桌面窗口1上显示,另一部分在桌面窗口2上显示。

进一步地,若判定本地创建有一个桌面窗口,则对上述视频数据进行解码操作,并将解码后的视频数据发送上述一个桌面窗口对应的视频重定向图层进行渲染;若判定本地创建有多个桌面窗口,而无需跨屏显示,则确定用于显示上述视频的目标桌面窗口,并对上述视频数据进行解码操作,以及将解码后的视频数据发送上述目标桌面窗口对应的视频重定向图层进行渲染。

也就是说,在单屏显示时,只需基于解码后的视频数据对目标桌面窗口对应的视频重定向图层进行渲染即可。

基于与上述发明实施例同样的发明构思,示例性的,参阅图5所示,为本申请实施例提供的一种视频重定向装置的结构示意图,该装置应用于云桌面系统中的客户端,该装置包括:

创建单元50,用于在创建桌面窗口时,创建所述桌面窗口对应的视频重定向图层和水印图层;

接收单元51,用于接收所述客户端对应的虚拟机发送的视频数据和播放控制信息;

发送单元52,用于基于所述播放控制信息确定所述视频重定向图层在所述桌面窗口中的位置,并将所述视频数据发送至所述视频重定向图层进行渲染。

可选地,在创建桌面窗口,创建所述桌面窗口对应的视频重定向图层和水印图层时,所述创建单元50具体用于:

针对每一显示屏创建对应的桌面窗口;

针对每一桌面窗口创建对应的视频重定向图层和水印图层。

可选地,所述水印图层在所述视频重定向图层的上层。

可选地,基于所述播放控制信息确定所述视频重定向图层在所述桌面窗口中的位置,并将所述视频数据发送至所述视频重定向图层进行渲染时,所述发送单元52具体用于:

在接收到所述客户端对应的虚拟机发送的所述播放控制信息时,判断本地是否创建有多个桌面窗口;

若判定本地创建有多个桌面窗口,则根据所述播放控制信息,判断视频是否需要跨屏显示;

若判定需要跨屏显示,则对所述视频数据进行解码操作,并分别将解码后的视频数据发送给所述多个桌面窗口分别对应的视频重定向图层进行渲染。

可选地,所述发送单元52还用于:

若判定本地创建有一个桌面窗口,则对所述视频数据进行解码操作,并将解码后的视频数据发送所述一个桌面窗口对应的视频重定向图层进行渲染;

若判定本地创建有多个桌面窗口,而无需跨屏显示,则确定用于显示所述视频的目标桌面窗口,并对所述视频数据进行解码操作,以及将解码后的视频数据发送所述目标桌面窗口对应的视频重定向图层进行渲染。

以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个单元通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。

进一步地,本申请实施例提供的客户端,从硬件层面而言,所述客户端的硬件架构示意图可以参见图6所示,所述客户端可以包括:存储器60和处理器61,

存储器60用于存储程序指令;处理器61调用存储器60中存储的程序指令,按照获得的程序指令执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。

可选地,本申请还提供一种客户端,包括用于执行上述方法实施例的至少一个处理元件(或芯片)。

可选地,本申请还提供一种程序产品,例如计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使该计算机执行上述方法实施例。

这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

相关技术
  • 一种USB重定向协议中视频类设备重定向的降带宽方法、本地终端系统和远程桌面系统
  • 一种视频重定向方法,装置和计算机可读存储介质
技术分类

06120112581839