CN113596181B - 一种数据重定向方法、终端、服务器及存储介质 - Google Patents
一种数据重定向方法、终端、服务器及存储介质 Download PDFInfo
- Publication number
- CN113596181B CN113596181B CN202111133621.3A CN202111133621A CN113596181B CN 113596181 B CN113596181 B CN 113596181B CN 202111133621 A CN202111133621 A CN 202111133621A CN 113596181 B CN113596181 B CN 113596181B
- Authority
- CN
- China
- Prior art keywords
- data
- server
- terminal
- data packet
- packet
- 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
- 238000000034 method Methods 0.000 title claims abstract description 90
- 230000005540 biological transmission Effects 0.000 claims abstract description 29
- 238000004806 packaging method and process Methods 0.000 claims abstract description 10
- 238000012545 processing Methods 0.000 claims description 78
- 239000000872 buffer Substances 0.000 claims description 39
- 238000013523 data management Methods 0.000 claims description 15
- 238000004458 analytical method Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 28
- 238000004891 communication Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 10
- 238000005538 encapsulation Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 238000012857 repacking Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/08—Protocols specially adapted for terminal emulation, e.g. Telnet
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例提供一种数据重定向方法、终端、服务器及存储介质,其中终端与服务器相通信,服务器提供远程桌面,终端通过用户操作控制服务器的远程桌面;应用于终端的方法包括:获取终端的数据采集设备生成的第一数据包,所述第一数据包携带所述数据采集设备采集的数据内容;将多个所述第一数据包的数据内容封装成封装数据内容,并将封装数据内容进行缓存;基于缓存的封装数据内容,生成第二数据包;将第二数据包重定向传输给服务器,以便所述服务器将所述第二数据包还原为第一数据包之后,使得所述服务器的远程桌面中部署的应用程序处理所述第一数据包。本申请实施例可使得数据重定向技术兼顾设备兼容性及数据传输性能。
Description
技术领域
本申请实施例涉及数据传输技术领域,具体涉及一种数据重定向方法、终端、服务器及存储介质。
背景技术
随着虚拟化技术的发展,服务器可通过虚拟化的远程桌面为用户提供和操作传统桌面一样的用户体验。由于终端在传统桌面下会使用摄像头、麦克风等数据采集设备进行数据采集,因而在使用和实现远程桌面的时候,服务器需要引入对终端的数据采集设备的支持。在此背景下,数据重定向技术应运而生。数据重定向技术是一种将终端的数据采集设备重新导向服务器的远程桌面的技术。
在数据重定向技术下,终端需要将数据采集设备生成的数据包,传输给服务器。终端向服务器传输数据的数据传输性能是数据重定向技术的关键性能之一,因此如何提升数据重定向技术的数据传输性能一直是本领域技术人员研究的问题。
发明内容
有鉴于此,本申请实施例提供一种数据重定向方法、终端、服务器及存储介质,以提升数据重定向技术的数据传输性能。
为实现上述目的,本申请实施例提供如下技术方案。
第一方面,本申请实施例提供一种数据重定向方法,所述方法应用于终端,所述终端与服务器相通信,所述服务器提供远程桌面,所述终端通过用户操作控制服务器的远程桌面;所述方法包括:
获取终端的数据采集设备生成的第一数据包,所述第一数据包携带所述数据采集设备采集的数据内容;
将多个所述第一数据包的数据内容封装成封装数据内容,并将封装数据内容进行缓存;
基于缓存的封装数据内容,生成第二数据包;
将第二数据包重定向传输给服务器,以便所述服务器将所述第二数据包还原为第一数据包之后,使得所述服务器的远程桌面中部署的应用程序处理所述第一数据包。
第二方面,本申请实施例提供一种数据重定向方法,所述方法应用于服务器,所述服务器与终端相通信,所述服务器提供远程桌面,且所述远程桌面受所述终端的用户操作进行控制;所述方法包括:
获取终端重定向传输的第二数据包,所述第二数据包携带封装数据内容,所述封装数据内容由终端的数据采集设备生成的多个第一数据包的数据内容封装得到;
解析所述第二数据包,得到封装数据内容,并缓存所述封装数据内容;
将缓存的封装数据内容拆解为多个数据内容;
分别根据各个数据内容,生成第一数据包;
通过所述远程桌面中部署的应用程序处理所述第一数据包,所述应用程序用于控制所述终端的数据输入设备。
第三方面,本申请实施例提供一种终端,包括:至少一个存储器和至少一个处理器,所述存储器存储一条或多条计算机可执行指令,所述处理器调用所述一条或多条计算机可执行指令以执行如上述第一方面所述的数据重定向方法。
第四方面,本申请实施例提供一种服务器,包括:至少一个存储器和至少一个处理器,所述存储器存储一条或多条计算机可执行指令,所述处理器调用所述一条或多条计算机可执行指令以执行如上述第二方面所述的数据重定向方法。
第五方面,本申请实施例提供一种存储介质,所述存储介质存储一条或多条计算机可执行指令,所述一条或多条计算机可执行指令被执行时实现如上述第一方面所述的数据重定向方法,或者,如上述第二方面所述的数据重定向方法。
第六方面,本申请实施例提供一种计算机程序,所述计算机程序被执行时实现如上述第一方面所述的数据重定向方法,或者,如上述第二方面所述的数据重定向方法。
本申请实施例在远程桌面场景下,由服务器提供远程桌面,并且终端通过用户操作控制服务器的远程桌面,当需要对终端的数据采集设备进行重定向时,本申请实施例可将数据采集设备生成的多个第一数据包携带的数据内容进行封装,从而得到封装数据内容,进而对封装数据内容进行重新组包,得到第二数据包;通过将第二数据包重定向传输给服务器,可使得服务器将所述第二数据包还原为第一数据包之后,所述服务器的远程桌面中部署的应用程序能够处理所述第一数据包。本申请实施例在终端的数据采集设备进行重定向时,由于第二数据包携带了数据采集设备生成的多个第一数据包的数据内容,因此终端以第二数据包为单位向服务器重定向传输数据,能够提升终端向服务器重定向传输数据的效率,提升数据重定向技术的数据传输性能。本申请实施例能够在端口重定向技术具有良好的设备兼容性的基础上,提升数据传输性能,实现数据重定向技术兼顾设备兼容性及数据传输性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为远程桌面的系统架构示意图。
图2A为本申请实施例提供的数据重定向方法的流程图。
图2B为终端封装数据并进行重新组包的示例图。
图3为本申请实施例提供的数据重定向系统的组件架构示意图。
图4为本申请实施例提供的数据重定向系统的另一组件架构示意图。
图5为终端的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面对远程桌面的系统架构进行介绍。图1示例性的示出了远程桌面的系统架构示意图。如图1所示,该系统架构可以包括:终端110和服务器120。
服务器120为部署在网络端(例如云端)的服务器设备,其可以是单一服务器或者多台服务器形成的服务器集群。服务器120可以虚拟化出虚拟主机,并将虚拟主机的桌面图像经过图像编码之后,传输给终端110。虚拟主机的桌面可以视为是远程桌面,其由网络端的服务器提供,远程桌面可以视为是网络端的桌面系统,其并不设置在终端110侧,而是设置在网络侧(例如云端)。
终端110为部署在用户侧的安装有远程桌面客户端的用户设备,例如智能手机、笔记本电脑、平板电脑等。其中,终端110与服务器120相通信,服务器120提供远程桌面,且终端110通过用户操作控制服务器120的远程桌面,即服务器120的远程桌面受终端110的用户操作进行控制。作为可选实现,终端110在获取服务器120传输的编码后桌面图像后,可以对编码后桌面图像进行解码,并在屏幕展示出解码后桌面图像。用户基于终端110展示的桌面图像,可以进行点击、拖动、键入等用户操作。终端110可将用户操作传输给服务器120,从而服务器120可调整桌面图像的画面内容,以实现对服务器120的远程桌面进行控制,并且服务器120可将调整画面内容的桌面图像再次编码后传输给终端110。通过上述过程,用户可在远程桌面场景下,达到与操作传统桌面一致的体验效果。
上述远程桌面的系统架构可以适用于云桌面等场景。云桌面又称桌面虚拟化、云电脑;基于云桌面技术,终端所需的CPU、内存、硬盘等组件可在云端服务器中虚拟出来;用户在终端安装云桌面客户端之后,可以通过特有的通信协议访问云端服务器上的虚拟主机来实现用户操作,进而达到与操作传统电脑一致的体验效果。
在远程桌面的系统架构中,终端通过内部总线连接有内置的数据采集设备,或者通过外设总线连接有外置的数据采集设备。例如,终端可以设置有内置的摄像头、麦克风等数据采集设备,也可以通过USB(Universal Serial Bus,通用串行总线)总线等外设总线连接外置的摄像头、麦克风等数据采集设备。由于在远程桌面场景下,应用程序是部署在服务器的虚拟主机中,为使得应用程序能够处理终端的数据采集设备采集数据所生成的数据包,终端需要基于数据重定向技术,将数据采集设备生成的数据包传输给服务器。例如,终端基于数据重定向技术,需要将通过USB连接的外置摄像头(简称USB摄像头)输入的UVC(USB Video Class,USB视频类)等格式的数据包传输给服务器,以便服务器的虚拟主机中部署的摄像头应用程序能够处理UVC数据包,实现摄像头应用程序的正常工作。
在传统桌面场景下,数据采集设备一般是通过总线(终端内部总线或者外设总线)连接终端,并且数据采集设备将生成的数据包交给终端的总线驱动处理,而控制数据采集设备的应用程序会把请求提交给终端的设备驱动处理。基于此,在远程桌面场景下,数据重定向技术可通过虚拟化总线驱动或者设备驱动来实现。其中,基于虚拟化总线驱动实现的数据重定向技术,也称为端口重定向技术,其通过在服务器和终端分别设置虚拟总线驱动,实现传统桌面场景下总线驱动的拉远,并且设备驱动安装并运行在服务器的虚拟主机中,该设备驱动与服务器的虚拟总线驱动进行交互。
端口重定向技术通过上述的设置,可以将终端连接数据采集设备的端口重定向到服务器的虚拟主机中,所以端口重定向技术具有良好的设备兼容性。然而传统的端口重定向技术并不会对数据采集设备生成的数据包进行加工处理,终端只能将数据采集设备原本生成的数据包直接传输给服务器,这导致端口重定向技术的数据传输性能存在一定的局限性,特别是对于扫描仪、摄像头等图像类应用程序而言,可能会由于网络带宽、网络时延等问题,导致数据传输效率变差。
基于此,本申请实施例提供新型的数据重定向方案,以在端口重定向技术具有良好的设备兼容性的基础上,提升数据传输性能,实现数据重定向技术兼顾设备兼容性及数据传输性能。
作为一种可选实现,图2A示出了本申请实施例提供的数据重定向方法的流程图。该方法流程可由终端与服务器执行实现,参照图2A,该方法流程可以包括如下步骤。
在步骤S210中,终端获取数据采集设备生成的第一数据包,所述第一数据包携带所述数据采集设备采集的数据内容。
终端的数据采集设备在工作过程中可以不断的生成第一数据包,并且第一数据包中携带数据采集设备在工作过程中采集的数据内容。在本申请实施例中,终端可以在数据采集设备的工作过程中获取数据采集设备生成的第一数据包。
作为可选实现,数据采集设备可以是感知环境并实现数据采集的传感器,数据采集设备可以在工作过程中,对采集的数据内容进行组包,从而生成第一数据包。例如,数据采集设备可以是采集视频的摄像头、采集音频的麦克风等。需要说明的是,数据采集设备的形式可以是多种多样的,本申请实施例并不限制数据采集设备的具体形式,只要数据采集设备是通过总线连接终端,并受驱动控制工作状态即可。在一些实施例中,第一数据包可以包括与视频、图像类应用程序相关的UVC数据包(例如,该UVC数据包可由终端的USB摄像头通过采集视频生成)、与音频类应用程序相关的音频数据包(例如,该音频数据包可由终端的麦克风通过采集音频生成)等之中的任一项。以第一数据包为UVC数据包为例,UVC数据包可以携带USB摄像头采集的视频内容。以第一数据包为音频数据包为例,音频数据包可以携带麦克风采集的音频内容。
在一些实施例中,数据采集设备可以是在服务器下发的控制包的控制下开始工作。作为可选实现,用户可以操作服务器上部署的应用程序,来控制终端的数据采集设备的工作状态;当用户操作服务器上部署的应用程序,控制数据采集设备开始工作时,服务器可向终端发送携带开始工作命令的控制包;终端获取到服务器发送的控制包后,可解析该控制包,并基于控制包中携带的开始工作命令,控制数据采集设备开始工作。例如,终端可获取服务器下发的控制包;从而终端可响应于所述控制包,基于所述控制包中携带的开始工作命令,通过终端驱动,驱动数据采集设备开始工作;进而,终端可请求数据采集设备在工作过程中生成的第一数据包,以实现获取所述第一数据包。
以服务器部署摄像头应用程序为例,该摄像头应用程序可以控制终端外设的USB摄像头并处理USB摄像头采集的视频数据。在此场景下,用户可以操作服务器上部署的摄像头应用程序,使得摄像头应用程序通过服务器向终端发送携带视频采集命令的控制包;终端获取到服务器发送的该控制包后,可解析该控制包,并基于控制包中携带的视频采集命令,通过USB驱动,控制终端的USB摄像头开始工作;进而终端的USB摄像头在USB驱动的驱动下开始采集视频,实现UVC(USB Video Class,USB视频类)数据包的生成;终端可通过请求USB摄像头生成的UVC数据包,以实现获取UVC数据包。
在另一些实施例中,数据采集设备也可以是在终端的控制下开始工作,例如,终端可以直接生成控制数据采集设备开始工作的命令,而不限于是由服务器下发控制包的方式来控制数据采集设备开始工作。
在步骤S211中,终端将多个第一数据包的数据内容封装成封装数据内容,并将封装数据内容进行缓存。
区别于终端获取到数据采集设备生成的第一数据包,就将第一数据包重定向传输给服务器的方式,在本申请实施例中,终端获取到数据采集设备生成的第一数据包后,可对第一数据包进行解析,以获得第一数据包中携带的数据内容;从而终端可将解析多个第一数据包得到的数据内容进行封装,得到封装数据内容(例如封装数据内容可以由多个第一数据包的数据内容组合得到),进而终端可将封装数据内容进行缓存。
在一些实施例中,终端可以设置终端缓存队列,终端可将多个第一数据包的数据内容封装成的封装数据内容,缓存在终端缓存队列中。可选的,终端缓存队列可以依序缓存有多个封装数据内容。作为可选实现,以第一数据包为UVC数据包为例,区别于终端将USB摄像头采集的UVC数据包直接重定向传输给服务器的方式,终端获取到USB摄像头采集的UVC数据包后,可对每个UVC数据包进行解析,将解析多个UVC数据包得到的视频内容封装成一帧视频帧,以得到封装数据内容。进而终端将每帧视频帧在终端缓存队列中进行缓存。
需要说明的是,终端的USB摄像头可以基于UVC协议,将采集的视频内容组包为UVC数据包,在UVC协议中,USB摄像头采集一帧视频帧需要通过生成多个UVC数据包实现,特别是在视频分辨率较大的情况下,USB摄像头采集一帧视频帧需要更多数量的UVC数据包;因此,USB摄像头采集的一帧视频帧的视频内容是分散在USB摄像头生成的多个UVC数据包中,本申请实施例可通过将多个UVC数据包的视频内容封装成一帧视频帧并缓存在终端缓存队列中,以使得后续终端以视频帧为单位向服务器重定向传输视频数据,而不是以UVC数据包为单位向服务器重定向传输视频数据,进一步的,终端可使用视频编码技术对视频帧进行编码压缩处理,减少传输数据量,提升终端向服务器重定向传输数据的效率。
作为另一可选实现,以第一数据包为音频数据包为例,区别于终端将麦克风采集的音频数据包直接重定向给服务器的方式,终端获取到麦克风生成的音频数据包后,可对每个音频数据包进行解析,将解析多个音频数据包得到的音频内容封装成单位时间的音频内容,从而得到封装数据内容。例如,终端可将麦克风一秒内生成的多个音频数据包的音频内容进行封装,从而得到一秒的音频内容,进而在终端缓存队列中以秒为单位时间缓存音频内容。当然,一秒仅是单位时间的一种示例说明,本申请实施例对于单位时间的具体数值并不设限。通过上述处理,后续终端以单位时间的音频内容为单位向服务器重定向传输音频数据,而不是以麦克风生成的音频数据包为单位向服务器重定向传输数据,从而提升了终端向服务器重定向传输数据的效率。
在步骤S212中,终端基于缓存的封装数据内容,生成第二数据包。
终端在缓存封装数据内容之后,以缓存的封装数据内容为单位进行组包,从而得到终端向服务器重定向数据的第二数据包。在一些实施例中,一个第二数据包可以携带缓存的一个封装数据内容。作为可选实现,终端可基于终端缓存队列中依序缓存的封装数据内容,依序生成第二数据包,其中,一个第二数据包携带一个封装数据内容。
在一些实施例中,第二数据包可基于终端与服务器之间的重定向协议进行组建,并且一个第二数据包携带一个封装数据内容。本申请实施例对于终端与服务器之间的重定向协议并不设限。在一些实施例中,为区分终端向服务器重定向传输的数据包是数据采集设备原始生成的第一数据包,还是终端基于封装数据内容重新组包得到的第二数据包,本申请实施例可在终端向服务器重定向传输的数据包中进一步携带数据包标识。例如,如果终端向服务器重定向传输的数据包携带第一标识,则该数据包为数据采集设备原始生成的第一数据包。如果终端向服务器重定向传输的数据包携带第二标识,则该数据包为终端重新组包得到的第二数据包。
在步骤S213中,终端将第二数据包重定向传输给服务器。
终端在生成第二数据包之后,可将第二数据包重定向传输给服务器,以实现将终端的数据采集设备重定向至服务器。从而服务器可将第二数据包还原为第一数据包,并且服务器的远程桌面中部署的应用程序可处理所述第一数据包。
在一些实施例中,终端可基于服务器发送的数据包请求,从终端缓存队列中提取封装数据内容,并组包生成第二数据包,从而将第二数据包重定向传输给服务器。例如,服务器可通过轮询方式向终端下发数据包请求,从而终端在获取到服务器以轮询方式下发的数据包请求之后,可依序从终端缓存队列中提取封装数据内容,并将提取的封装数据内容依序组包为第二数据包,其中,终端可基于提取的一个封装数据内容组包得到一个第二数据包;进而,终端可将组包得到的第二数据包依序重定向传输给服务器。
在另一些实施例中,终端也可自主的从终端缓存队列中提取封装数据内容,并基于提取的封装数据内容组包生成第二数据包,进而将第二数据包重定向传输给服务器。例如,终端的数据采集设备开始工作后,终端可在终端缓存队列每缓存一个封装数据内容时,将该封装数据内容组包为第二数据包,并将第二数据包重定向传输给服务器。
需要说明的是,本申请实施例对于终端生成第二数据包和重定向传输第二数据包的时机并不设限,终端可以是基于服务器的请求来生成第二数据包和重定向传输第二数据包,也可以是自主的生成第二数据包和重定向传输第二数据包。
本申请实施例在远程桌面场景下,由服务器提供远程桌面,并且终端通过用户操作控制服务器的远程桌面,当需要对终端的数据采集设备进行重定向时,本申请实施例可将数据采集设备生成的多个第一数据包携带的数据内容进行封装,从而得到封装数据内容,进而对封装数据内容进行重新组包,得到第二数据包;通过将第二数据包重定向传输给服务器,可使得服务器将所述第二数据包还原为第一数据包之后,所述服务器的远程桌面中部署的应用程序能够处理所述第一数据包。本申请实施例在终端的数据采集设备进行重定向时,由于第二数据包携带了数据采集设备生成的多个第一数据包的数据内容,因此终端以第二数据包为单位向服务器重定向传输数据,能够提升终端向服务器重定向传输数据的效率,提升数据重定向技术的数据传输性能。本申请实施例能够在端口重定向技术具有良好的设备兼容性的基础上,提升数据传输性能,实现数据重定向技术兼顾设备兼容性及数据传输性能。
作为一种示例,图2B示例性的示出了终端封装数据并进行重新组包的示例图。如图2B所示,第一数据包11至1n为数据采集设备生成的n个第一数据包,其中,第一数据包11至1n分别携带数据内容111至11n,例如,第一数据包11携带数据内容111,第一数据包12携带数据内容112,以此类推。假设,终端可将n个第一数据包携带的数据内容封装成一个封装数据内容(例如,在USB摄像头场景下,n个UVC数据包携带的视频内容可封装成一帧视频帧,n的具体数值可视实际情况而定,本申请实施例并不设限),则终端可将解析n个第一数据包得到的数据内容111至11n,封装成一个封装数据内容211,并将封装数据内容211缓存在终端缓存队列中。以此方式,终端可在数据采集设备每生成n个第一数据包时,封装得到一个封装数据内容,并缓存在终端缓存队列中。假设,终端缓存队列缓存有m个封装数据内容211至21m(m的数值可视实际情况而定),则终端在向服务器重定向传输数据时,可将一个封装数据内容组包成一个第二数据包,并重定向传输给服务器;基于此,终端可分别基于封装数据内容211至21m,依序生成第二数据包21至2m(例如,终端基于封装数据内容211生成第二数据包21,基于封装数据内容212生成第二数据包22,以此类推),并将第二数据包21至2m依序重定向传输给服务器,实现终端的数据采集设备至服务器的重定向。
回到图2A所示,在步骤S214中,服务器解析第二数据包,得到封装数据内容,并缓存所述封装数据内容。
服务器获取到终端重定向传输的第二数据包后,可对第二数据包进行解析,得到第二数据包中携带的封装数据内容,并将解析得到的封装数据内容进行缓存。在一些实施例中,服务器可以设置服务端缓存队列,服务器解析第二数据包得到的封装数据内容可以缓存在该服务端缓存队列。如前文所示,该封装数据内容是由终端的数据采集设备生成的多个第一数据包的数据内容封装得到。例如,封装数据内容是由多个UVC数据包的视频内容封装得到的视频帧、由多个音频数据包的音频内容封装得到的单位时间的音频内容等。
在步骤S215中,服务器将缓存的封装数据内容拆解为多个数据内容。
在一些实施例中,在远程桌面场景下,服务器部署的应用程序实际要处理的是终端的数据采集设备生成的第一数据包。例如,服务器部署的摄像头应用程序实际要处理的是终端的USB摄像头采集的UVC数据包。因此在终端将多个第一数据包的数据内容封装成封装数据内容,并以封装数据内容组包得到的第二数据包进行重定向传输的情况下,服务器在获取到第二数据包并缓存第二数据包中的封装数据内容之后,需要将缓存的封装数据内容进行拆解,以得到多个数据内容。从而服务器基于拆解得到的数据内容,可还原得到数据采集设备生成的第一数据包,以便将第一数据包传递给服务器部署的应用程序进行处理。作为可选实现,服务器可依序拆解缓存的封装数据内容,从而依序得到各个封装数据内容对应的多个数据内容。例如,服务器可依序对服务端缓存队列中缓存的封装数据内容进行拆解,从而得到各个封装数据内容对应的多个数据内容。
在步骤S216中,服务器分别根据各个数据内容,生成第一数据包。
在步骤S217中,服务器通过部署的应用程序处理第一数据包。
服务器在拆解缓存的封装数据内容,得到多个数据内容之后,可以分别根据各个数据内容生成各个第一数据包,例如服务器可以基于一个数据内容生成一个第一数据包。第一数据包可以视为是服务器部署的应用程序需要处理的数据包。在一些实施例中,第一数据包可以基于数据采集设备的数据包格式生成。
例如,以服务器部署的摄像头应用程序处理终端的USB摄像头采集的视频数据为例,服务器可通过解析终端重定向传输的第二数据包,获取到第二数据包携带的视频帧,从而将视频帧拆解为多个视频内容;进而服务器可基于USB摄像头支持的UVC协议,分别根据各个视频内容,生成各个UVC数据包,该UVC数据包可交由摄像头应用程序进行处理。
在一些实施例中,本申请实施例可在终端重定向传输以封装数据内容组包的第二数据包的情况下,由服务器解析第二数据包并缓存解析得到的封装数据内容,从而服务器可对缓存的封装数据内容进行拆解,得到各个封装数据内容对应的多个数据内容,并分别根据各个数据内容,生成各个第一数据包,实现第一数据包的还原。进而,服务器的远程桌面部署的应用程序可处理第一数据包,实现兼容终端直接重定向传输第一数据包的数据处理效果。
作为一种示例,在图2B所示基础上,终端向服务器重定向传输第二数据包21至2m的情况下,服务器可在解析第二数据包21至2m之后,在服务端缓存队列缓存封装数据内容211至21m;进而服务器可对缓存的各个封装数据内容进行拆解,比如拆解服务端缓存队列中缓存的封装数据内容211,得到数据内容111至11n;进而服务器可将数据内容111至11n分别基于UVC协议进行组包,得到第一数据包11至1n,该第一数据包11至1n可由服务器的远程桌面部署的应用程序进行后续处理。
作为图2A所示方法流程的一种可选组件架构实现,图3示出了本申请实施例提供的数据重定向系统的组件架构示意图。如图3所示,该组件架构可以包括终端110设置的组件架构,以及服务器120设置的组件架构。
参照图3,终端110的组件架构可以包括:重定向客户端310、终端控制包处理模块311、数据管理模块312、终端缓存队列313、终端数据包处理模块314、终端驱动315、网络Qos(Quality of Service,服务质量)模块316。
其中,重定向客户端310为终端110与服务器120进行重定向通信的客户端。在一些实施例中,重定向客户端310可基于终端110与服务器120的重定向协议传输数据包。例如,重定向客户端310可以是USB重定向客户端,用于实现终端连接的USB数据采集设备的数据重定向。在进一步的一些实施例中,重定向客户端310可对服务器下发的包进行解析,并根据包的类型相应调用终端控制包处理模块311和终端数据包处理模块314进行处理。例如,重定向客户端310解析服务器下发的包为控制包,则调用终端控制包处理模块311进行处理,重定向客户端310解析服务器下发的包为数据包请求,则调用终端数据包处理模块314进行处理。作为可选实现,重定向客户端310可以通过服务器下发的包的标识区分控制包和数据包请求。
终端控制包处理模块311用于对服务器120下发的控制包进行处理。在一些实施例中,终端控制包处理模块311可在服务器120下发控制包的情况下,受重定向客户端310的调用,以对控制包进行处理。在可选实现中,终端控制包处理模块311可基于控制包与终端驱动315进行交互,从而由终端驱动315实现对数据采集设备317的工作驱动,以实现执行控制包中携带的工作控制命令。
在一些实施例中,如果控制包携带的工作控制命令为开始工作命令,则终端控制包处理模块311可控制终端驱动315,驱动数据采集设备317开始工作;同时,终端控制包处理模块311可通知数据管理模块312开始数据管理工作。当数据采集设备317受终端驱动315的驱动开始工作后,数据采集设备317可在工作过程中不断的生成第一数据包。并且,数据管理模块312可请求数据采集设备317不断生成的第一数据包,并对第一数据包进行解析,得到第一数据包携带的数据内容;进而数据管理模块312可将多个第一数据包的数据内容封装成封装数据内容。数据管理模块312可将封装得到的封装数据内容,缓存在终端缓存队列313。
在一些实施例中,本申请实施例可通过终端的重定向客户端,获取服务器下发的控制包;从而终端响应于所述控制包,通过所述重定向客户端调用终端控制包处理模块,以使得所述终端控制包处理模块基于所述控制包携带的开始工作命令控制终端驱动,来驱动所述数据采集设备开始工作;进而,本申请实施例可通过终端的数据管理模块,请求数据采集设备在工作过程中生成的第一数据包;其中,所述数据管理模块将请求得到的多个所述第一数据包的数据内容封装成封装数据内容,并缓存在终端缓存队列中。
作为可选实现,本申请实施例所指的终端驱动315可以是终端的标准USB驱动(非虚拟)。例如,终端110可通过USB总线与USB数据采集设备(例如USB摄像头)连接。进一步的,终端110也可设置USB虚拟驱动来兼容非USB接口的数据采集设备。
在终端缓存队列313缓存数据管理模块312封装得到的封装数据内容的情况下,如果服务器120下发了数据包请求,则终端数据包处理模块314可受重定向客户端310的调用,以对服务器120下发的数据包请求进行处理。在一些实施例中,终端数据包处理模块314可从终端缓存队列313中依序提取封装数据内容,并依序组包为第二数据包,从而通过重定向客户端310将第二数据包重定向传输给服务器120。作为可选实现,本申请实施例可通过终端的重定向客户端,获取服务器以轮询方式下发的数据包请求;从而终端响应于所述数据包请求,可通过所述重定向客户端调用终端数据包处理模块,以通过所述终端数据包处理模块,依序从终端缓存队列中提取封装数据内容,并依序将封装数据内容组包为第二数据包。
在本申请实施例提供的终端110的组件架构中,终端控制包处理模块311可对服务器120下发的控制包进行处理,从而在服务器下发携带开始工作命令的控制包时,终端控制包处理模块311可通过终端驱动315驱动数据采集设备317开始工作。在数据采集设备317的工作过程中,数据管理模块312可请求数据采集设备317生成的第一数据包,将多个第一数据包中的数据内容封装成一个封装数据内容,并将封装数据内容缓存在终端缓存队列313中。基于服务器120下发的数据包请求,终端数据包处理模块314可将终端缓存队列313中缓存的封装数据内容组包为第二数据包,并通过重定向客户端310传输给服务器120,以实现终端以第二数据包为单位向服务器重定向传输数据,提升数据重定向技术的数据传输性能。
在一些实施例中,网络Qos模块316可用于检测网络服务质量,例如检测网络带宽情况。基于检测的网络服务质量以及缓存的封装数据内容的数据量,终端可判断缓存的封装数据内容是否出现堆积;若是,则终端可从缓存的封装数据内容中抽取封装数据内容进行丢弃。抽取丢弃的封装数据内容可以是随机抽取的,也可以是根据一定的规则实现,例如抽取缓存时间最久的封装数据内容进行丢弃等。
作为可选实现,本申请实施例可根据网络服务质量以及终端缓存队列中缓存的封装数据内容的数据量,判断终端缓存队列中缓存的封装数据内容是否出现堆积。例如,判断终端缓存队列中缓存的封装数据内容的数据量与当前网络带宽情况是否相匹配,比如当前网络带宽情况是否支持传输当前缓存的数据量的封装数据内容。如果终端缓存队列中缓存的封装数据内容出现堆积(例如当前网络带宽不支持传输当前缓存的数据量的封装数据内容),则终端可从终端缓存队列中抽取封装数据内容进行丢弃。作为可选实现,上述过程可由数据管理模块312负责执行,例如数据管理模块312可根据网络Qos模块316检测的网络服务质量以及终端缓存队列313中缓存的封装数据内容的数据量,对终端缓存队列中的封装数据内容进行上述丢弃的策略控制。
继续参照图3,服务器120侧设置的组件架构可以包括:重定向服务端320、服务端数据包处理模块321、服务端缓存队列322、数据控制及解析模块323、虚拟控制器324、服务端驱动325、应用程序326、服务端控制包处理模块327。
其中,重定向服务端320为服务器120与终端110进行重定向通信的组件。在一些实施例中,服务器120可基于与终端110的重定向协议,向终端110传输控制包并接收终端110反馈的控制数据,以及向终端110传输数据包请求并接收终端110反馈的数据包。在进一步的一些实施例中,重定向服务端320可对终端传输的包进行解析,并根据包的类型相应调用服务端数据包处理模块321和服务端控制包处理模块327进行处理。例如,重定向服务端320解析终端传输的包为控制包,则调用服务端控制包处理模块327进行处理,重定向服务端320解析终端传输的包为数据包,则调用服务端数据包处理模块321进行处理。
服务端数据包处理模块321可通过重定向服务端320下发数据包请求给终端110,以便获取终端110反馈的第二数据包;同时,服务端数据包处理模块321可受重定向服务端320的调用,处理终端110反馈的第二数据包。在一些实施例中,服务端数据包处理模块321可将终端110反馈的第二数据包进行解析,将解析得到的封装数据内容缓存在服务端缓存队列322中。
数据控制及解析模块323可用于对服务端缓存队列322中缓存的封装数据内容进行拆解,得到封装数据内容对应的多个数据内容,并将数据内容还原为数据采集设备原本生成的第一数据包。
数据控制及解析模块323生成的第一数据包可以注入虚拟控制器324;从而虚拟控制器324再通过服务端驱动325,将第一数据包传递给应用程序326,以便应用程序326处理该第一数据包。在一些实施例中,虚拟控制器324可以用于在数据控制及解析模块323与服务端驱动325之间进行数据中转;区别于传统的虚拟控制器324直接中转终端重定向传输的第一数据包的情况,在本申请实施例中,虚拟控制器324是在终端重定向传输第二数据包的情况下,中转数据控制及解析模块323重新组包的第一数据包。需要说明的是,操作系统中的USB核心驱动和设备驱动都需要通过控制器才能和USB数据采集设备交互,本申请实施例所指的虚拟控制器正是负责数据中转。
服务端控制包处理模块327可通过重定向服务端320下发控制包给终端110,以及受重定向服务端320的调用,处理终端110响应控制包所返回的控制数据。在一些实施例中,服务端控制包处理模块327可解析终端110响应控制包所返回的控制数据。
在一些实施例中,服务端数据包处理模块321在解析第二数据包时,可对解析得到的封装数据内容的配置进行修改(例如,修改封装数据内容的格式等配置),从而修改配置的封装数据内容可缓存在服务端缓存队列322中。进而,数据控制及解析模块323可对修改配置的封装数据内容进行拆解,得到对应的修改配置的多个数据内容,从而分别基于修改配置的各个数据内容,生成数据内容与修改的配置相应的第一数据包,以实现第一数据包中数据内容的格式等配置的修改调整。
作为可选实现,本申请实施例可通过服务器的重定向服务端,获取所述第二数据包;通过所述重定向服务端调用服务端数据包处理模块,以使得服务端数据包处理模块解析所述第二数据包,得到封装数据内容;从而通过所述服务端数据包处理模块,将封装数据内容缓存在服务端缓存队列。针对终端反馈的控制数据,本申请实施例可通过所述重定向服务端获取所述控制数据;通过所述重定向服务端调用服务端控制包处理模块,以使得服务端控制包处理模块处理控制数据。针对封装数据内容的拆解以及重新组包的方面,本申请实施例可基于封装数据内容在服务器侧修改的配置,得到相应拆解的修改配置的多个数据内容,从而生成具有修改配置的数据内容的第一数据包,以实现在服务器侧还原第一数据包时实现数据内容的格式等配置的修改。进一步的,所述数据控制及解析模块还可通过服务器的虚拟控制器,将生成的第一数据包传递给服务器的服务端驱动,以使得所述服务端驱动将所述第一数据包传输给所述应用程序。
本申请实施例提供的数据重定向方案可以应用于终端设置的任意数据采集设备的重定向场景。下面重定向USB摄像头为例,结合图3在USB摄像头重定向场景下适应的组件架构,对本申请实施例提供的数据重定向方案进行介绍。图4示出了本申请实施例提供的数据重定向系统的另一组件架构示意图。
结合图3和图4所示,在USB摄像头重定向场景下,图3中设置的数据管理模块312可以具体是图4中设置的视频帧管理模块410、图3中设置的终端缓存队列313可以具体是图4中设置的终端视频帧缓存队列411、图3中设置的终端驱动315可以具体是图4中设置的终端USB驱动412、图3中设置的数据采集设备317可以具体是图4中设置的USB摄像头413。进一步,在图4所示架构中,终端还可设置视频帧编码模块414。
图3中设置的服务端缓存队列322可以具体是图4中设置的服务端视频帧缓存队列421、图3中设置的数据控制及解析模块323可以具体是图4中设置的视频帧控制及解析模块422、图3中设置的虚拟控制器324可以具体是图4中设置的USB虚拟控制器423、图3中设置的服务端驱动325可以具体是图4中设置的服务端USB驱动424、图3中设置的应用程序326可以具体是图4中设置的摄像头应用程序425。进一步,在图4所示架构中,终端还可设置视频帧解码模块426。
在USB摄像头重定向场景下,用户可操作云端服务器的摄像头应用程序425(比如用户可通过操作摄像头应用程序425,来打开终端连接的USB摄像头413),摄像头应用程序425可将用户操作对应的操作命令反馈给服务端USB驱动424,服务端USB驱动424会进一步将操作命令反馈给USB虚拟控制器423,USB虚拟控制器423将操作命令进一步转化成USB控制包或数据包请求;从而USB控制包经由服务端控制包处理模块327,通过重定向服务端320发送给终端;数据包请求经由服务端数据包处理模块321,通过重定向服务端320发送给终端。
终端的重定向客户端310若接收到服务器下发的开始工作命令对应的控制包,则调用终端控制包处理模块311进行处理;终端控制包处理模块311基于开始工作命令,可通过终端USB驱动412驱动USB摄像头413开始采集视频,并且终端控制包处理模块311可通知视频帧管理模块410开始工作。
USB摄像头413采集的视频内容可组包生成UVC数据包,视频帧管理模块410可通过终端USB驱动412,请求USB摄像头413生成的底层数据(即UVC数据包)。进而,视频帧管理模块410可通过视频帧编码模块414,将请求得到的多个UVC数据包中的视频内容组合为一帧视频帧,并将组合得到的视频帧缓存在终端视频帧缓存队列411中。进一步的,基于网络Qos模块316检测的网络服务质量,以及终端视频帧缓存队列411中缓存的视频帧的数据量,如果视频帧管理模块410确定网络服务质量与缓存的视频帧的数据量不相匹配,则可确定终端视频帧缓存队列411中存在视频帧堆积情况,视频帧管理模块410可对终端视频帧缓存队列411中缓存的视频帧进行丢帧的策略控制。
服务器在下发携带开始工作命令的控制包后,可轮询的向终端发送数据包请求。终端的重定向客户端310若接收到服务器下发的数据包请求,则调用终端数据包处理模块314进行处理;终端数据包处理模块314可将终端视频帧缓存队列411中缓存的视频帧,依序组包为视频帧数据包(视频帧数据包可以认为是第二数据包的一种可选形式),并通过重定向客户端310重定向传输给服务器。
服务器的重定向服务端320在下发携带开始工作命令的控制包后,还可获取到终端响应的控制数据,重定向服务端320可调用服务端控制包处理模块327进行处理。同时,重定向服务端320在获取到终端反馈的视频帧数据包之后,可调用服务端数据包处理模块321进行处理;服务端数据包处理模块321可解析视频帧数据包,将视频帧数据包中携带的视频帧缓存在服务端视频帧缓存队列421中;进而,视频帧控制及解析模块422可通过视频帧解码模块426,将服务端视频帧缓存队列421缓存的视频帧逐一进行拆解,得到各个视频帧分别对应的多个视频内容。基于拆解得到的一个视频内容,视频帧控制及解析模块422可将视频内容组包为第一数据包(例如UVC数据包)。
在进一步的一些实施例中,服务端数据包处理模块321在从视频帧数据包中解析视频帧时,可基于视频配置信息,将视频帧数据包中携带的视频帧的分辨率、格式等配置进行修改,以实现对视频帧的配置修改,从而将修改配置的视频帧缓存在服务端视频帧缓存队列421中。进而,视频帧控制及解析模块422可基于修改配置(例如修改分辨率、格式)的视频帧,进行视频帧的拆解,得到修改配置的视频内容,进而在将视频内容组包为第一数据包时,可对第一数据包中的视频内容的分辨率、格式等配置进行设置。作为可选实现,服务器端可通过USB虚拟控制器423将定制的分辨率、格式等配置信息上报给云桌面系统,从而使得摄像头应用程序获得的分辨率、格式等配置信息可以是定制的信息。进而,服务端数据包处理模块321在解析视频帧时,可对视频帧的分辨率、格式等配置进行修改,从而视频帧控制及解析模块422在将视频内容组包为第一数据包(例如UVC数据包)时,可基于修改的分辨率、格式等配置,实现对第一数据包中的视频内容的分辨率、格式等进行设置。
在一些实施例中,视频帧控制及解析模块422重新基于视频内容组包的数据包可以是USB摄像头生成的第一数据包,例如视频帧控制及解析模块422重新基于视频内容组包的数据包为USB摄像头生成的UVC数据包,而UVC数据包中的视频内容格式可以按需修改。例如,USB摄像头生成的UVC数据包中的视频内容为YUV格式,则在服务器侧,YUV格式的视频帧可以重新编码成MJPEG格式,然后拆解为MJPEG格式的视频内容;进而,MJPEG格式的视频内容可以再组包为UVC数据,以便USB虚拟控制器取用,使得摄像头应用程序可以获得携带MJPEG格式的视频内容的UVC数据包。
在视频帧控制及解析模块422生成第一数据包之后,以视频帧控制及解析模块422生成UVC数据包为例,视频帧控制及解析模块422可将UVC数据包传递给USB虚拟控制器423,进而USB虚拟控制器423通过服务端USB驱动424,将UVC数据包传递给摄像头应用程序425,以实现摄像头应用程序获得UVC数据包并进行处理。
本申请实施例在终端引入视频帧管理模块来获取USB摄像头的UVC数据包,并将多个UVC数据包的视频内容组合为一帧视频帧,从而终端可向服务器重定向传输以视频帧组包的视频帧数据包,以提升USB摄像头重定向场景的数据传输性能。相应的,服务器在获取视频帧数据包后,可拆解视频帧,基于拆解得到的视频帧中的多个视频内容,来重新构造多个UVC数据包,以实现USB摄像头生成的UVC数据包至服务器的重定向。
本申请实施例提供的数据重定向方式可将终端与服务器的数据封装操作(例如视频帧组帧操作)解耦,可以在重定向传输的数据,注入服务器的驱动之前,在终端侧对数据采集设备生成的数据进行各种压缩或动态调节等数据封装操作,而云端的服务器对终端侧的数据封装操作并无感知;同时,基于终端侧以数据封装内容为单位进行数据重定向传输,而不是直接以数据采集设备生成的数据内容为单位进行数据重定向传输,能够加大网络带宽利用率,使网络传输阶段对重定向传输的数据进行QoS优化成为可能。本申请实施例可以解决数据重定向技术下的设备兼容性问题,以及提升数据重定向传输的数据传输性能。
本申请实施例还提供一种终端,该终端的结构可结合图5所示。图5示例性的示出了终端的框图。如图5所示,终端可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4。
在本申请实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信。
可选的,通信接口2可以为用于进行网络通信的通信模块的接口。
可选的,处理器1可能是CPU(中央处理器),GPU(Graphics Processing Unit,图形处理器),NPU(嵌入式神经网络处理器),FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列),TPU(张量处理单元),AI芯片,特定集成电路ASIC(Application SpecificIntegrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路等。
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
其中,存储器3存储一条或多条计算机可执行指令,处理器1调用所述一条或多条计算机可执行指令,以执行本申请实施例提供的终端执行的数据重定向方法。
本申请实施例还提供一种服务器,该服务器的结构可以结合图5所示,包括至少一个存储器和至少一个处理器,所述存储器存储一条或多条计算机可执行指令,所述处理器调用所述一条或多条计算机可执行指令,以执行本申请实施例提供的服务器执行的数据重定向方法。
本申请实施例还提供一种存储介质,该存储介质可以存储一条或多条计算机可执行指令,该一条或多条计算机可执行指令被执行时实现如本申请实施例提供的终端执行的数据重定向方法,或者,如本申请实施例提供的服务器执行的数据重定向方法。
本申请实施例还提供一种计算机程序,该计算机程序被执行时实现如本申请实施例提供的终端执行的数据重定向方法,或者,如本申请实施例提供的服务器执行的数据重定向方法。
上文描述了本申请实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本申请实施例披露、公开的实施例方案。
虽然本申请实施例披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。
Claims (13)
1.一种数据重定向方法,其中,所述方法应用于终端,所述终端与服务器相通信,所述服务器提供远程桌面,所述终端通过用户操作控制服务器的远程桌面;所述方法包括:
获取终端的数据采集设备生成的第一数据包,所述第一数据包携带所述数据采集设备采集的数据内容;
将多个所述第一数据包的数据内容封装成封装数据内容,并将封装数据内容进行缓存;
基于缓存的封装数据内容,生成第二数据包;
将第二数据包重定向传输给服务器,以便所述服务器将所述第二数据包还原为第一数据包之后,使得所述服务器的远程桌面中部署的应用程序处理所述第一数据包;
还包括:
检测网络服务质量;
根据网络服务质量以及缓存的封装数据内容的数据量,判断缓存的封装数据内容是否出现堆积;若是,则从缓存的封装数据内容中抽取封装数据内容进行丢弃。
2.根据权利要求1所述的方法,其中,所述将封装数据内容进行缓存包括:
将封装数据内容缓存在终端缓存队列,所述终端缓存队列依序缓存有多个封装数据内容;
所述基于缓存的封装数据内容,生成第二数据包包括:
获取服务器以轮询方式下发的数据包请求;
响应于所述数据包请求,依序从终端缓存队列中提取封装数据内容,并将提取的封装数据内容依序组包为第二数据包。
3.根据权利要求2所述的方法,其中,所述获取服务器以轮询方式下发的数据包请求包括:
通过终端的重定向客户端,获取服务器以轮询方式下发的数据包请求;
所述响应于所述数据包请求,依序从终端缓存队列中提取封装数据内容,并将提取的封装数据内容依序组包为第二数据包包括:
响应于所述数据包请求,通过所述重定向客户端调用终端数据包处理模块,以通过所述终端数据包处理模块,依序从终端缓存队列中提取封装数据内容,并将提取的封装数据内容依序组包为第二数据包。
4.根据权利要求3所述的方法,其中,所述获取终端的数据采集设备生成的第一数据包包括:
获取服务器下发的控制包;
响应于所述控制包,基于所述控制包携带的开始工作命令,通过终端驱动,驱动数据采集设备开始工作;
请求数据采集设备在工作过程中生成的第一数据包。
5.根据权利要求4所述的方法,其中,所述获取服务器下发的控制包包括:
通过重定向客户端,获取服务器下发的控制包;
所述响应于所述控制包,基于所述控制包携带的开始工作命令,通过终端驱动,驱动数据采集设备开始工作包括:
响应于所述控制包,通过所述重定向客户端调用终端控制包处理模块,以使得所述终端控制包处理模块基于所述开始工作命令控制终端驱动,驱动所述数据采集设备开始工作;
所述请求数据采集设备在工作过程中生成的第一数据包包括:
通过终端的数据管理模块,请求数据采集设备在工作过程中生成的第一数据包;其中,所述数据管理模块将请求得到的多个所述第一数据包的数据内容封装成封装数据内容,并缓存在终端缓存队列中。
6.根据权利要求1-5任一项所述的方法,其中,所述数据采集设备包括通用串行总线USB摄像头,所述第一数据包包括USB视频类UVC数据包,所述数据内容包括视频内容;
所述将多个所述第一数据包的数据内容封装成封装数据内容包括:
将多个UVC数据包中的视频内容组合为一帧视频帧;
其中,所述第二数据包包括以视频帧组包的视频帧数据包。
7.一种数据重定向方法,其中,所述方法应用于服务器,所述服务器与终端相通信,所述服务器提供远程桌面,且所述远程桌面受所述终端的用户操作进行控制;所述方法包括:
获取终端重定向传输的第二数据包,所述第二数据包携带封装数据内容,所述封装数据内容由终端的数据采集设备生成的多个第一数据包的数据内容封装得到;
解析所述第二数据包,得到封装数据内容,并缓存所述封装数据内容;
将缓存的封装数据内容拆解为多个数据内容;
分别根据各个数据内容,生成第一数据包;
通过所述远程桌面中部署的应用程序处理所述第一数据包,所述应用程序用于控制所述终端的数据输入设备。
8.根据权利要求7所述的方法,其中,在缓存所述封装数据之前,所述方法还包括:对封装数据内容的配置进行修改;
所述分别根据各个数据内容,生成第一数据包包括:
基于封装数据内容修改的配置,分别基于各个数据内容,生成数据内容与修改的配置相应的第一数据包。
9.根据权利要求7所述的方法,其中,所述获取终端重定向传输的第二数据包包括:
通过服务器的重定向服务端,获取所述第二数据包;
所述解析所述第二数据包,得到封装数据内容包括:
通过所述重定向服务端调用服务端数据包处理模块,以使得服务端数据包处理模块解析所述第二数据包,得到封装数据内容;
所述缓存所述封装数据内容包括:
通过所述服务端数据包处理模块,将封装数据内容缓存在服务端缓存队列;
其中,所述服务器的数据控制及解析模块将缓存的封装数据内容拆解为多个数据内容,并分别根据各个数据内容,生成第一数据包;所述数据控制及解析模块还通过服务器的虚拟控制器,将第一数据包传递给服务器的服务端驱动,以使得所述服务端驱动将所述第一数据包传输给所述应用程序。
10.根据权利要求7-9任一项所述的方法,其中,所述数据输入设备包括USB摄像头,所述应用程序包括控制所述USB摄像头的摄像头应用程序,所述第一数据包包括UVC数据包,所述第二数据包包括视频帧数据包,所述数据内容包括USB摄像头采集的视频内容,所述封装数据内容包括视频帧。
11.一种终端,其中,包括:至少一个存储器和至少一个处理器,所述存储器存储一条或多条计算机可执行指令,所述处理器调用所述一条或多条计算机可执行指令以执行如权利要求1-6任一项所述的数据重定向方法。
12.一种服务器,其中,包括:至少一个存储器和至少一个处理器,所述存储器存储一条或多条计算机可执行指令,所述处理器调用所述一条或多条计算机可执行指令以执行如权利要求7-10任一项所述的数据重定向方法。
13.一种存储介质,其中,所述存储介质存储一条或多条计算机可执行指令,所述一条或多条计算机可执行指令被执行时实现如权利要求1-6任一项所述的数据重定向方法,或者,如权利要求7-10任一项所述的数据重定向方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111133621.3A CN113596181B (zh) | 2021-09-27 | 2021-09-27 | 一种数据重定向方法、终端、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111133621.3A CN113596181B (zh) | 2021-09-27 | 2021-09-27 | 一种数据重定向方法、终端、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113596181A CN113596181A (zh) | 2021-11-02 |
CN113596181B true CN113596181B (zh) | 2022-02-01 |
Family
ID=78242261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111133621.3A Active CN113596181B (zh) | 2021-09-27 | 2021-09-27 | 一种数据重定向方法、终端、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113596181B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115190073B (zh) * | 2022-05-20 | 2024-09-06 | 阿里巴巴(中国)有限公司 | 一种usb重定向实现方法、系统和相关设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200252485A1 (en) * | 2019-02-04 | 2020-08-06 | Dell Products L.P. | Accelerating isochronous endpoints of redirected usb devices |
CN112231004A (zh) * | 2020-10-19 | 2021-01-15 | 北京京航计算通讯研究所 | 云桌面终端usb重定向系统 |
CN112256389A (zh) * | 2020-10-19 | 2021-01-22 | 北京京航计算通讯研究所 | 云桌面终端usb重定向方法 |
-
2021
- 2021-09-27 CN CN202111133621.3A patent/CN113596181B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200252485A1 (en) * | 2019-02-04 | 2020-08-06 | Dell Products L.P. | Accelerating isochronous endpoints of redirected usb devices |
CN112231004A (zh) * | 2020-10-19 | 2021-01-15 | 北京京航计算通讯研究所 | 云桌面终端usb重定向系统 |
CN112256389A (zh) * | 2020-10-19 | 2021-01-22 | 北京京航计算通讯研究所 | 云桌面终端usb重定向方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113596181A (zh) | 2021-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101773638B1 (ko) | 라이트웨이트 클라이언트를 이용해서 네트워크를 거쳐 가상화 컴퓨팅 서비스와 인터페이스하기 위한 방법 | |
AU2003219640B2 (en) | System and method for use of multiple applications | |
US20140082052A1 (en) | Data redirection system and method for providing data redirection service | |
JP2005521280A (ja) | クライアントにおいてグラフィックおよびメディア・ディスプレーを作成する方法および装置 | |
WO2013097066A1 (zh) | 一种实现远程桌面环境下网页浏览的方法、装置和系统 | |
EP3267331B1 (en) | Method and apparatus for cloud streaming service | |
US20180213274A1 (en) | Apparatus and method for playing back and seeking media in web browser | |
JP2007505580A (ja) | シンクライアントにおいてグラフィカルおよびメディア表示を生成するための方法および装置 | |
CN109040786B (zh) | 摄像头数据的传输方法、装置、系统及存储介质 | |
EP3654607A1 (en) | Data transmission method, device, server and storage medium | |
KR101931514B1 (ko) | 웹 브라우저에서 미디어의 재생과 백업을 동시에 수행하는 장치 및 방법 | |
CN113596181B (zh) | 一种数据重定向方法、终端、服务器及存储介质 | |
CN111782319A (zh) | 在云桌面挂载USBKey实现共享访问的系统及方法 | |
US20120166585A1 (en) | Apparatus and method for accelerating virtual desktop | |
CN104639501B (zh) | 一种数据流传输的方法、设备及系统 | |
US20180227347A1 (en) | Virtualizing audio and video devices using synchronous a/v streaming | |
CN113826074B (zh) | 用于虚拟桌面底层结构解决方案的自适应实时通信插件 | |
CN115022725A (zh) | 一种视频播放方法和装置 | |
CN112445624A (zh) | 一种面向任务的gpu资源优化配置方法及装置 | |
CN106851134B (zh) | 传输图像数据的方法、装置及系统 | |
CN115866109A (zh) | 一种远程设备原生驱动控制方法及装置 | |
CN117331707A (zh) | 数据传输系统、方法及计算设备 | |
CN114390313A (zh) | 一种浏览器HTML5 Video标签音视频重定向的方法及系统 | |
CN115865908A (zh) | 远程桌面系统启动控制方法及相关设备 | |
KR102247657B1 (ko) | 클라우드 스트리밍 서비스 시스템, 인코딩 처리 유닛의 작업 분리를 통한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40060979 Country of ref document: HK |