一种视频捕获设备重定向方法及装置与流程

文档序号:11215934阅读:275来源:国知局
一种视频捕获设备重定向方法及装置与流程

本发明涉及桌面虚拟化的视频捕获设备重定向处理技术领域,具体而言,涉及一种视频捕获设备重定向方法及装置。



背景技术:

随着科学技术的不断进步,网络技术日益发达,虚拟化的应用逐渐普及。桌面虚拟化是指在作为数据中心的服务器上进行服务器虚拟化后,生成独立的虚拟桌面,再使用专有的虚拟桌面协议将虚拟桌面发送给终端设备的技术。用户可通过以太网输入用户名、密码和网管信息连接到虚拟机上,再通过网络直接访问自己的桌面系统。桌面虚拟化技术虽然为用户的移动办公带来了极大的便捷,但同时也带来了新的问题,如:如何处理桌面虚拟化使用过程中的关于终端图像设备与视频捕获设备的大量使用需求。

对于视频捕获设备的重定向技术,一般来说,首先需要在虚拟机内创建一个虚拟视频捕获设备,对于虚拟设备的创建,现有技术中往往仅获取了物理视频捕获设备的名字、硬件id以及部分图像属性(包括图像分辨率、亮度和对比度),虽然对于通用的视频捕获设备,通过上述三项信息已经可以在虚拟机内模拟出与真实视频捕获设备相同的虚拟视频捕获设备,但是特定的视频捕获设备软件可能会存在扩展功能,如果虚拟视频捕获设备没有很好的支持扩展功能,则此类视频捕获设备可能不会被正常识别或者正常使用。

此外,视频捕获设备在处理图像数据时,往往采取mjpg格式,以节约系统的内部usb数据带宽,在重定向模式下,由于虚拟机的计算能力往往要略低于真实物理机,因此在重定向之后,可能导致虚拟机内对mjpg格式进行解码渲染时cpu资源占用过高,甚至可能因解码不及时而产生图像数据堆积,导致应用程序播放的图像出现高延迟和卡顿的现象,降低用户体验。因此,如何解决上述问题是目前亟需解决的问题。



技术实现要素:

本发明提供一种视频捕获设备重定向方法及装置,旨在改善上述问题。

第一方面,本发明提供的一种视频捕获设备重定向方法,所述方法包括获取当前终端连接的所有视频捕获设备;基于用户选择的映射方式,在虚拟机内模拟终端上连接的视频捕获设备,创建虚拟视频捕获设备;当获取到用户选择的视频自适应模式后,通过虚拟机内部解码策略,对视频传输图像的处理效率进行跟踪,并根据处理协调算法,对虚拟机内部的解码效率与传输频率进行自适应;根据具体的解除映射方式,解除终端上视频捕获设备与虚拟机内的虚拟视频捕获设备的映射关系。第二方面,本发明提供的一种视频捕获设备重定向装置,所述装置包括枚举设备单元,用于获取当前终端连接的所有视频捕获设备组成的外设设备列表;设备映射单元,用于基于用户选择的映射方式,在虚拟机内模拟终端上连接的视频捕获设备,创建虚拟视频捕获设备;图像传输单元,用于当获取到用户选择的视频自适应模式后,通过虚拟机内部解码策略,对视频传输图像的处理效率进行跟踪,并根据协调处理算法,对虚拟机内部的解码效率与传输频率进行自适应;设备解除映射单元,用于根据具体的解除映射方式,解除终端上视频捕获设备与虚拟机内的虚拟视频捕获设备的映射关系。

上述本发明提供的一种视频捕获设备重定向方法及装置,本申请通过在虚拟机内对物理视频捕获设备进行完全模拟,创建虚拟视频捕获设备;再根据用户选择的视频自适应模式,通过虚拟机内部解码策略,对视频传输图像的处理效率进行跟踪,并根据协调处理算法,达到虚拟机内部的解码效率与传输频率自适应的效果,从而解决视频捕获设备可能不会被正常识别或者正常使用以及虚拟机内应用程序播放的图像出现高延迟、高图像堆积,降低用户体验的问题。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明中视频捕获设备重定向处理方法的具体实现流程图;

图2为本发明中用户选择映射策略中手动映射的具体流程图;

图3为本发明中用户选择映射策略中自动映射的具体流程图;

图4为本发明中处理协调算法的具体流程图;

图5为本发明中主动解映射的具体流程图;

图6为本发明中被动解映射的具体流程图。

图7为本发明中视频捕获设备重定向处理装置的具体实现流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,是本发明提供的一种视频捕获设备处理方法的流程图。下面将对图1所示的具体流程进行详细阐述。

步骤101,枚举视频捕获设备。

所述枚举视频捕获设备,为当前终端连接的所有视频捕获设备分别生成唯一64位设备标识,并组成外设设备列表返回给虚拟机主进程。

步骤102,映射设备。

所述映射设备具体为,在用户选择具体的映射方式后,获取完整的视频捕获设备相关信息,包括:设备名字、硬件id、图像分辨率、亮度、对比度,并发送至虚拟机,在虚拟机内创建与物理视频捕获设备安全相同的虚拟捕获设备。

所述用户选择具体的映射方式为用户可以选择以手动映射1021或者自动映射1022方式将物理视频捕获设备映射到虚拟机中。

手动映射1021的具体流程如图2所示,用户在外设设备列表中指定视频捕获设备映射,界面将映射命令发送到虚拟桌面进程,并获取该外设设备的完整属性同步至服务器,虚拟机按照真实视频捕获设备信息完全模拟虚拟视频捕获设备,从而完成手动映射。

自动映射1022的具体流程如图3所示,当虚拟机内视频播放软件需要使用视频捕获设备时,会通过vcam主动发送命令去获取当前终端上已连接的视频捕获设备,并获取首先被查找到的可用视频捕获设备的完整信息,同时将该视频捕获设备加入已映射设备列表,虚拟机内按照该视频捕获设备信息设置vcam设备的属性。

步骤103,图像传输。

所述图像传输为当获取到用户选择的视频自适应模式后,通过虚拟机内部解码策略,对视频传输图像的处理效率进行跟踪,并根据处理协调算法,对虚拟机内部的解码效率与传输频率进行自适应。

在本实施例中视频自适应模式具体分为图像流畅模式、适中模式和图像迟缓模式,表1示出了三种模式对图像数据的处理和虚拟机内cpu占用情况。

表1

如图4所示,现对视频捕获设备重定向的处理协调算法进行详细阐述。

计算平均判定时间部分:

1)将虚拟机中初始平均解码时间设置为0(该值可进行配置);

2)若终端获取为第一帧图像,将其进行编码处理后发送至虚拟机内并记录发送时间,虚拟机接收到图像后对其进行解码,记录解码时间作为初始平均解码时间(此时虚拟机内只解码过一帧图像,平均解码时间是该帧图像的解码时间),并使用此时间乘以第一系数k(k在实际中常取值1.05),生成平均判定时间并发送至服务端,并结束;

3)若终端获取为非第一帧图像,则服务端虚拟机从接受到第二帧开始,以t为周期(这里t一般取值1秒),计算当前时间周期t内的虚拟机平均解码时间,计算公式为:

平均解码时间=当前t时间内累计解码时间/当前t时间内累计处理帧数;

4)由平均解码时间生成平均判定时间,具体的生成方法为:

平均判定时间=平均解码时间*第一系数k(k在实际中常取值1.05);

5)以t为周期计算判定时间,当每个t时间内的计算结束时,将更新的平均判定时间发送至终端,并开始下个t周期的判定时间计算。

协调判断处理部分:

1)终端在准备发送下一帧图像时,计算当前时间与上帧图像的发送时间的时间间隔;

2)判断该时间间隔是否小于最新的平均判定时间;

3)若该时间间隔小于最新的平均判定时间,则丢弃终端上获取的当前图像,然后获取下一帧图像,并回到1);

4)若该时间间隔大于最新的平均判定时间,则将终端上获取的当前图像发送至虚拟机,同时更新发送时间,并回到1);

重复以上过程,直到关闭视频捕获设备为止。

步骤104,解除映射。

所述解除映射具体为,根据具体的解除映射方式,解除终端上视频捕获设备与虚拟机内的虚拟视频捕获设备的映射关系。

所述具体的解除映射方式具体分为主动解除映射1041和被动解除映射1042方式。

主动解除映射1041的具体流程如图5所示,用户在视频捕获设备列表中选择需要解除映射关系的视频捕获设备,视频捕获设备重定向服务将该视频捕获设备从已映射列表中移除,同时对应虚拟桌面进程停止指定视频捕获设备的工作并发送解除映射消息发送至虚拟机中,虚拟机收到解除映射消息后移除对应的虚拟视频捕获设备,完成主动解除映射操作。

被动解除映射1042的具体流程如图6所示,当物理视频捕获设备被拔出时,视频捕获设备重定向服务会检测到设备出现问题,然后获取当前终端上的视频捕获设备列表,并与已映射设备列表作对比,查找当前设备列表中不存在的设备,最后对应虚拟桌面进程停止指定视频捕获设备的工作并发送解除映射消息发送至虚拟机中,虚拟机内收到解除映射消息后移除对应的虚拟视频捕获设备,完成被动解除映射操作。

请参阅图7,是本发明提供的一种视频捕获设备重定向处理装置的功能模块示意图。所述视频捕获设备重定向处理装置200包括枚举设备单元210、设备映射单元220、图像传输单元230和设备解除映射单元240。

枚举设备单元210,用于获取当前终端连接的所有视频捕获设备组成的外设设备列表。

设备映射单元220,用于基于用户选择的映射方式,在虚拟机内模拟终端上连接的视频捕获设备,创建虚拟视频捕获设备。

其中所述设备映射单元220具体包括手动映射单元221、自动映射单元222和模拟设备单元223。

手动映射单元221,用于用户在外设设备列表中指定视频捕获设备,将其映射到虚拟机内,并加入已映射设备列表。

自动映射单元222,用于当虚拟机中有应用程序需要使用视频捕获设备时,在外设设备列表中获取首先被查找到的可用视频捕获设备,将其映射到虚拟机内,并加入已映射设备列表。

模拟设备单元223,用于在虚拟机内创建虚拟视频捕获设备时,在客户端获取完整的视频捕获设备相关信息并发送至虚拟机,以达到完全模拟终端上连接的视频捕获设备的效果。

图像传输单元230,用于当获取到用户选择的视频自适应模式后,通过虚拟机内部解码策略,对视频传输图像的处理效率进行跟踪,并根据协调处理算法,对虚拟机内部的解码效率与传输频率进行自适应.

其中所述图像传输单元230具体包括图像解码单元231、图像处理单元232和处理协调单元233。

图像解码单元231,用于虚拟机内对图像进行解码并计算一定时间内解码一帧图像所使用的平均解码时间,并由平均解码时间计算平均判定时间,并将其发送到终端。

图像处理单元232,用于计算终端上准备发送一帧图像时的时间与相邻图像的发送时间的时间间隔。

处理协调单元233,通过比较图像解码单元中平均判定时间和图像处理单元中时间间隔,实现虚拟机内部的解码频率与传输频率自适应。

设备解映射单元240,用于基于用户选择的解除映射方式,解除终端上视频捕获设备与虚拟机内的虚拟视频捕获设备的映射关系。

其中设备解映射单元240具体包括主动解映射单元241和被动解映射单元242。

主动解映射单元241,用于在外设设备列表中指定视频捕获设备解除映射关系。

被动解映射单元242,当终端上监听设备线程检测到视频捕获设备被拔出或丢失时,对比外设设备列表与已映射设备列表,查找外设设备列表中不存在的设备,从已映射设备列表中移除该设备,进而解除映射关系。

综上所述,本发明提供的一种视频捕获设备重定向方法及装置,首先通过在虚拟机内对物理视频捕获设备进行完全模拟,创建虚拟视频捕获设备;再根据用户选择的视频自适应模式,通过虚拟机内部解码策略,对视频传输图像的处理效率进行跟踪,并根据协调处理算法,达到虚拟机内部的解码效率与传输频率自适应的效果,从而解决视频捕获设备可能不会被正常识别或者正常使用以及虚拟机内应用程序播放的图像出现高延迟,降低用户体验的问题。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1