首页 / 专利库 / 计算机网络 / 对等网络 / 远程桌面实现方法、交互方法、装置、设备、存储介质

远程桌面实现方法、交互方法、装置、设备、存储介质

阅读:246发布:2020-05-08

专利汇可以提供远程桌面实现方法、交互方法、装置、设备、存储介质专利检索,专利查询,专利分析的服务。并且本公开提供了一种远程桌面实现方法、装置、设备、存储介质。远程桌面实现方法基于 视频流 ,包括:获取运行系统的界面程序;将所述界面程序生成为 帧 缓冲文件;获取视频画面并进行解码,将所述帧缓冲文件与解码的所述视频画面合成;将合成后的数据编码为视频流数据;将所述视频流数据输出至远程桌面工具和/或终端设备。本公开可以实现将现有计算机设备上的远程桌面技术应用于嵌入式产品中,把嵌入式产品界面与视频画面合成输出,提升了用户的使用体验。,下面是远程桌面实现方法、交互方法、装置、设备、存储介质专利的具体信息内容。

1.一种远程桌面实现方法,其特征在于,所述远程桌面实现方法基于视频流,包括:
获取运行系统的界面程序;
将所述界面程序生成为缓冲文件;
获取视频画面并进行解码,将所述帧缓冲文件与解码的所述视频画面合成;
将合成后的数据编码为视频流数据;
将所述视频流数据输出至远程桌面工具和/或终端设备。
2.如权利要求1所述的远程桌面实现方法,其特征在于,
所述视频流数据的编码标准为H.264视频编码标准或H.265视频编码标准。
3.如权利要求1所述的远程桌面实现方法,其特征在于,
所述帧缓冲文件基于Linux系统环境开发生成。
4.一种的远程桌面交互方法,其特征在于,所述远程桌面交互方法基于视频流,包括:
获取用户远程操作事件;
将所述操作事件发送至运行系统的界面程序;
将所述界面程序生成为帧缓冲文件;
获取视频画面并进行解码,将所述帧缓冲文件与解码的所述视频画面合成;
将合成后的数据编码为视频流数据;
将所述视频流数据输出至远程桌面工具。
5.如权利要求4所述的远程桌面交互方法,其特征在于,所述视频流数据的编码标准为H.264视频编码标准或H.265视频编码标准。
6.如权利要求4所述的远程桌面交互方法,其特征在于,
将所述操作事件发送至运行系统的界面程序的方法至少包括实时流传输、对等网络传输之一;
其中,当所述方法为实时流传输时,能够实现本地远程桌面交互,当所述方法为对等网络传输时,能够实现互联网远程桌面交互。
7.如权利要求4所述的远程桌面交互方法,其特征在于,
所述用户远程操作事件至少包括鼠标操作、键盘操作、触摸屏操作之一。
8.如权利要求4所述的远程桌面交互方法,其特征在于,还包括:
启动远程桌面服务并进行监听;
连接所述远程桌面服务对应的客户端设备并进行认证;
当认证通过后,设置所述远程桌面服务与所述客户端设备的交互参数。
9.如权利要求1-3中任一项所述的远程桌面实现方法或如权利要求4-8中任一项所述的远程桌面交互方法,其特征在于,所述远程桌面实现方法或所述远程桌面交互方法基于Linux系统环境。
10.一种远程桌面装置,其特征在于,包括:
输入模,输入视频画面或用户远程输入事件,将所述视频画面进行解码;
发送模块,将所述用户远程输入事件发送至界面程序;
生成帧缓冲模块,将所述界面程序生成为帧缓冲文件;
合成模块,将所述帧缓冲文件与解码的所述视频画面合成;
编码模块,将合成后的数据编码为视频流数据;
输出模块,将所述视频流数据输出至远程桌面工具和/或终端设备。
11.如权利要求10所述的远程桌面装置,其特征在于,还包括:
启动模块,启动远程桌面服务并进行监听;
连接认证模块,连接所述远程桌面服务对应的客户端设备并进行认证;
设置参数模块,当认证通过后,设置所述远程桌面服务与所述客户端设备的交互参数;
通信模块,建立所述远程桌面服务与对应的所述客户端设备之间的通信。
12.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-9中任一项所述的远程桌面实现方法或远程桌面交互方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-9中任一项所述的远程桌面实现方法或远程桌面交互方法。
14.一种远程桌面系统,其特征在于,至少包括:
客户端设备,获取视频画面或用户远程输入事件;
嵌入式设备,将所述用户远程输入事件发送至界面程序,将所述界面程序生成为帧缓冲文件,将所述帧缓冲文件与所述视频画面合成,将合成后的数据编码为视频流数据;
其中,所述客户端设备与所述嵌入式设备能够连接并进行认证,当认证通过后,设置所述客户端设备与所述嵌入式设备的交互参数。

说明书全文

远程桌面实现方法、交互方法、装置、设备、存储介质

技术领域

[0001] 本公开涉及嵌入式技术领域,尤其涉及一种远程桌面实现方法、装置、设备、存储介质。

背景技术

[0002] 在现有技术中,远程桌面技术一般应用微软RDP远程桌面协议技术、VNC Viewer等计算机设备上的技术及工具实现。但在嵌入式技术中,由于一般的嵌入式产品是在特定的环境中提供特定功能的产品,限于性能、硬件软件、使用环境、技术的开放程度等的限制,导致现有计算机设备上的远程桌面技术难于应用于嵌入式产品中。
[0003] 远程桌面技术需要提供良好的实时性并且与其运行所在的界面库存在很强的依赖性,但计算机设备上的界面库并不适合应用于嵌入式产品开发中;在计算机设备系统中,在硬件上CPU处理器相对于嵌入式主芯片来说性能强劲,并且具有专用的GPU处理组件,而在软件上则有Directx、OpenGL等软件系统的支持。
[0004] 传统的远程桌面技术中,客户端的桌面显示回放与其所运行的系统的相关性很强,导致当在不同的系统上实现对嵌入式产品的远程桌面工具时需要很大的开发工作量来完成,因此在嵌入式设备上使用传统方式的远程桌面技术无论从技术实现上还是用户体验上都不理想。发明内容
[0005] 本公开正是为了解决上述课题而完成,其目的在于提供一种简单高效的,可实现把嵌入式产品界面与视频画面合成输出的远程桌面实现方法、装置、设备、存储介质。本公开提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。
[0006] 为了解决上述技术问题,本公开实施例提供一种远程桌面实现方法,采用了如下所述的技术方案:
[0007] 所述远程桌面实现方法基于视频流,包括:
[0008] 获取运行系统的界面程序;
[0009] 将所述界面程序生成为缓冲文件;
[0010] 获取视频画面并进行解码,将所述帧缓冲文件与解码的所述视频画面合成并输出至远程桌面工具和/或终端设备。
[0011] 为了解决上述技术问题,本公开实施例提供一种远程桌面交互方法,采用了如下所述的技术方案:
[0012] 所述远程桌面交互方法基于视频流,包括:
[0013] 获取用户远程操作事件;
[0014] 将所述操作事件发送至运行系统的界面程序;
[0015] 将所述界面程序生成为帧缓冲文件;
[0016] 获取视频画面并进行解码,将所述帧缓冲文件与解码的所述视频画面合成;
[0017] 将合成后的数据编码为视频流数据;
[0018] 将所述视频流数据输出至远程桌面工具。
[0019] 为了解决上述技术问题,本公开实施例还提供一种远程桌面装置,采用了如下所述的技术方案:包括:
[0020] 输入模,输入视频画面或用户远程输入事件,将所述视频画面进行解码;
[0021] 发送模块,将所述用户远程输入事件发送至界面程序;
[0022] 生成帧缓冲模块,将所述界面程序生成为帧缓冲文件;
[0023] 合成模块,将所述帧缓冲文件与解码的所述视频画面合成;
[0024] 编码模块,将合成后的数据编码为视频流数据;
[0025] 输出模块,将所述视频流数据输出至远程桌面工具和/或终端设备。
[0026] 为了解决上述技术问题,本公开实施例还提供一种计算机设备,采用了如下所述的技术方案:
[0027] 包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如前述所述的远程桌面实现方法。
[0028] 为了解决上述技术问题,本公开实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
[0029] 所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前述所述的远程桌面实现方法或远程桌面交互方法。
[0030] 为了解决上述技术问题,本公开实施例还提供一种远程桌面系统,采用了如下所述的技术方案:至少包括:
[0031] 客户端设备,获取视频画面或用户远程输入事件;
[0032] 嵌入式设备,将所述用户远程输入事件发送至界面程序,将所述界面程序生成为帧缓冲文件,将所述帧缓冲文件与所述视频画面合成,将合成后的数据编码为视频流数据;
[0033] 其中,所述客户端设备与所述嵌入式设备能够连接并进行认证,当认证通过后,设置所述客户端设备与所述嵌入式设备的交互参数。
[0034] 根据本公开所公开的技术方案,与现有技术相比,本公开可以实现将现有计算机设备上的远程桌面技术应用于嵌入式产品中,把嵌入式产品界面与视频画面合成输出,技术实现简单并提升了用户体验。附图说明
[0035] 图1是本公开可以应用于其中的示例性系统架构图;
[0036] 图2是根据本公开的远程桌面实现方法的一个实施例的流程图
[0037] 图3是根据本公开的远程桌面交互方法的一个实施例的流程图;
[0038] 图4是根据本公开的远程桌面交互方法的另一个实施例的流程图;
[0039] 图5是根据本公开的远程桌面装置的一个实施例的结构示意图;
[0040] 图6是根据本公开的计算机设备的一个实施例的结构示意图。
[0041] 结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。

具体实施方式

[0042] 除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同;本文中在申请说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本公开;本公开的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本公开的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
[0043] 在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本公开的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
[0044] 为了使本技术领域的人员更好地理解本公开方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
[0045] [系统结构]
[0046] 首先,说明本公开的一个实施例的系统的结构。如图1所示,系统结构100可以包括客户端终端设备101、102、103、104,网络105,服务器106和嵌入式设备107。网络105是在客户端终端设备101、102、103、104、服务器106和嵌入式设备107之间提供通信链路的介质。
[0047] 在本实施例中,远程桌面实现方法运行于其上的嵌入式设备107可以通过网络105进行各种信息的传输。网络105可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。需要指出的是,上述无线连接方式可以包括但不限于3G/4G/5G连接、Wi-Fi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB连接、以及其他现在已知或将来开发的无线连接方式。
[0048] 用户可以使用终端设备101、102、103、104通过网络105与服务器106、嵌入式设备107交互,以接收或发送消息等。终端设备101、102、103或104上可以安装有各种客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
[0049] 终端设备101、102、103或104可以是具有显示屏和/或支持网页浏览的各种电子设备,用于获取视频画面或用户远程输入事件,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(动态影像专家压缩标准音频层面3)、MP4(动态影像专家压缩标准音频层面4)播放器、头戴式终端设备、膝上型便携计算机和台式计算机等等。
[0050] 服务器106可以是提供各种服务的服务器,例如对终端设备101、102、103或104上显示的页面提供支持的后台服务器。
[0051] 嵌入式设备107可以是各种嵌入式设备,用于将用户远程输入事件发送至界面程序,并将界面程序生成为帧缓冲文件,以及将生成的帧缓冲文件与视频画面合成,并将合成后的数据编码为视频流数据。
[0052] 其中,客户端终端设备101、102、103或104与嵌入式设备107能够通过网络105连接并进行认证,当认证通过后,用户可以设置客户端终端设备101、102、103或104与嵌入式设备107的交互参数。
[0053] 需要说明的是,本公开实施例所提供的远程桌面实现方法一般由服务器106与终端设备101、102、103或104、嵌入式设备107共同执行。
[0054] 应该理解,图1中的终端设备、网络、服务器、嵌入式设备的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络、嵌入式设备和服务器。
[0055] 这里,终端设备可以独立或通过与其他电子终端设备配合运行安卓系统中的应用实现本公开的实施例方法,也可以运行其他操作系统中的应用例如iOS系统、Windows系统、鸿蒙系统等的应用实现本公开的实施例方法。
[0056] [远程桌面实现方法]
[0057] 参考图2,示出了根据本公开的远程桌面实现方法的一个实施例的流程图。本实施例方法基于Linux系统环境开发,界面程序中使用了Linux Framebuffer技术,同时利用了多路视频解码与界面合成输出功能。这里,视频的解码输出并不是通过Linux Framebuffer显示,而是通过嵌入式设备中的芯片的硬件功能完成解码输出与界面的合成后,最终得到输出画面并输出到终端设备。
[0058] 本实施例中的远程桌面实现方法基于视频流,把嵌入式设备中的界面及视频合成输出的画面,并回写到特定的内存中,这里,内存是预先申请的固定大小的内存,再使用嵌入式设备中的硬件编码器,快速地编码成H.264或者H.265视频流数据,通过网络发送到与其它设备端(如PC端的远程桌面工具)桌面的远程查看。
[0059] 本实施例的远程桌面实现方法例如包括以下步骤:
[0060] S21,获取运行系统的界面程序;
[0061] 这里,运行系统是例如嵌入式设备107运行的系统,在本实施例中为Linux系统,当然,嵌入式系统也可以是例如μC/OS-II系统、WindowsEmbedded系统、VxWorks系统等系统,或者应用在智能手机和平板电脑的Android系统、iOS系统等系统。
[0062] 这里,本实施例中界面程序使用了Linux Framebuffer技术允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作,当然这里也可以是其他能对显示缓冲区进行读写操作的程序或设备。
[0063] S22,将获取的运行系统的界面程序生成为帧缓冲文件;
[0064] 这里,帧缓冲文件利用Linux Framebuffer技术基于Linux系统环境开发生成,例如可以由嵌入式设备107中的帧缓冲设备驱动等完成。
[0065] S23,从外部获取输入的视频画面并对该视频画面进行解码;
[0066] 这里,例如通过视频解码器进行,这里输入的视频画面可以是包括ITU H.262/MPEG2或H.264/MPEG-4AVC或H.265在内的各种视频标准。
[0067] S24,将S22中生成的帧缓冲文件与S23中解码获得的视频画面进行合成;
[0068] 这里,合成方式为将视频画面和界面程序写入特定的内存中,然后对写入内存中的数据进行编码转换。
[0069] S25,在帧缓冲文件与解码的视频画面合成后,将S24中合成后的数据编码为视频流数据。
[0070] 这里,把合成数据回写到特定的内存,使用例如硬件编码器,快速地编码成例如H.264视频编码标准或H.265视频编码标准,当然也可以是其他能够实现本实施例的视频编码标准。
[0071] S26,将S25中的视频流数据输出至终端设备进行显示,将编码的视频流数据通过硬件输出VGA/HDMI显示,当然也可以通过其他类型的硬件输出接口显示。
[0072] S27,将S25中的视频流数据输出至远程桌面工具。
[0073] 这里,远程桌面工具在接收到视频流数据后会实时与视频流数据进行通信,以保证相互实时通信的状态。
[0074] 这里,远程桌面工具还需要请求界面程序进行账号密码验证,以进行本实施例的远程桌面实现方法。
[0075] [远程桌面交互方法]
[0076] 参考图3,示出了根据本公开的远程桌面交互方法的一个实施例的流程图。本实施例的远程桌面交互方法基于上述远程桌面实现方法,同时把远端的鼠标键盘等操作事件通过特定的协议,发送到例如嵌入式设备107,从底层模拟成鼠标、键盘事件发给界面库处理。
[0077] 这里,鼠标、键盘等操作事件并不和视频码流一起打包,而是分别分开处理;这里,分开处理的方案是通过新增特定协议,例如实时流传输协议(RTSP协议)把远程的鼠标位置事件、键盘操作的事件进行记录,并把鼠标、键盘等的操作事件发送到例如嵌入式设备107,然后进行操作事件解析以分别解析出鼠标事件和键盘事件,实现对嵌入式设备107的远程控制和实时视频流解析;
[0078] 该实施例的远程桌面交互方法基于Linux系统环境下的视频流,包括:
[0079] S31,获取用户远程操作事件;
[0080] 这里,用户远程操作事件至少包括鼠标操作、键盘操作、触摸屏操作之一。通过RTSP协议把远程的鼠标位置事件、键盘操作事件进行记录。
[0081] S32,将S31中获取的操作事件发送至运行系统的界面程序,并对操作事件解析以分别解析出鼠标事件或键盘事件等;
[0082] 这里,通过自定义的协议接口将操作事件数据发送到嵌入式设备107,嵌入式设备107检测操作事件数据例如鼠标事件和键盘事件后,在嵌入式设备107中模拟键盘事件和鼠标事件并发送给界面程序进行处理。
[0083] 这里,运行系统及界面程序的类型同上述远程桌面实现方法,这里不再赘述,并且,下面将要描述的流程步骤中与上述远程桌面实现方法中相同的流程、替代方案等也不再赘述。
[0084] S33,将S32中的包含有鼠标事件或键盘事件等的界面程序生成为帧缓冲文件;
[0085] S34,从外部获取输入的视频画面并进行解码;
[0086] S35,将S33中生成的帧缓冲文件与S34中解码的视频画面进行合成;
[0087] S36,将S35中合成后的数据编码为视频流数据;
[0088] 其中,视频流数据的编码标准为H.264视频编码标准或H.265视频编码标准,当然也可以是其他能够实现本实施例的视频编码标准。
[0089] S37,将S36中合成的视频流数据输出至远程桌面工具,并将远程桌面中的鼠标移动事件、点击事件等数据信息实时发送到客户端设备上进行解析。
[0090] 这里,将操作事件发送至运行系统的界面程序的方法至少包括实时流传输、对等网络传输之一;
[0091] 其中,当传输方法为实时流传输时,能够实现本地远程桌面交互,当传输方法为对等网络传输时,能够实现互联网远程桌面交互。
[0092] 参考图4,示出了根据本公开的远程桌面交互方法的另一个实施例的流程图。该实施例的远程桌面交互方法基于远程桌面交互系统,包括:
[0093] S41,例如嵌入式设备107启动远程桌面服务并进行监听,监听的内容包括鼠标操作、键盘操作、触摸屏操作等事件;
[0094] S42,通过网络105连接远程桌面服务对应的客户端设备例如101、102、103或104;
[0095] S43,对S42中连接的客户端设备进行认证,这里,提供P2P的远程服务器例如106用于用户填写账号和密码,当嵌入式设备107和客户端设备101、102、103或104填写账号和密码以后,在P2P服务器106上进行认证,如果认证通过则把视频流进行通讯并建立RTSP协议通讯,并进入下一步骤S44,如果认证不通过则进入终止进程S47。
[0096] S44,当认证通过后,设置嵌入式设备107的远程桌面服务与客户端设备101、102、103或104的交互参数,并根据网络105等环境设置视频编码的参数。
[0097] S45,接收远程操作事件发送到嵌入式设备107的界面程序以及发送视频流数据给客户端101、102、103或104,这里S45的主要步骤及流程同图3中的实施例描述的远程桌面交互方法,这里不再赘述。
[0098] S46,判断是否存在退出事件,如果存在退出事件则进入终止进程S47,如果不存在退出事件则返回S45继续进行远程桌面交互。
[0099] S47,终止远程桌面交互。
[0100] 在本实施例的远程桌面交互方法中,经过测试优化,在常用的1920x1080的分辨率、网络良好的情况下,界面延时在200ms以内,鼠标、键盘事件能快速的响应。针对不同的环境,例如网络表现差或带宽有限的情况下,可以在对画面编码成视频流时进行降低画面质量、提高编码压缩率、降低帧率、降低编码输出的分辨率、使用H.265编码方式等多种手段提高远程功能的流畅度;同时根据特定协议实现远程桌面交互及认证功能,保证了设备的网络安全性。
[0101] 应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0102] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(ROM)等非易失性存储介质,或随机存储记忆体(RAM)等。
[0103] [远程桌面实现装置]
[0104] 如图5所示,为了实现本公开实施例中的技术方案,本公开提供了一种远程桌面实现装置,该装置具体可以应用于各种电子终端设备中。
[0105] 本实施例所述的远程桌面实现装置包括:输入模块501、发送模块502、生成帧缓冲模块503、合成模块504、编码模块505、输出模块506、启动模块507、连接认证模块508、设置参数模块509、通信模块510。
[0106] 其中,输入模块501,用于输入视频画面或用户远程输入事件,并将视频画面进行解码;
[0107] 这里,用户远程操作事件至少包括鼠标操作、键盘操作、触摸屏操作之一。通过RTSP协议把远程的鼠标位置事件、键盘操作事件进行记录。
[0108] 这里,例如通过视频解码器进行,这里输入的视频画面可以是包括ITU H.262/MPEG2或H.264/MPEG-4AVC或H.265在内的各种视频标准。
[0109] 发送模块502,用于将输入模块501中用户远程输入的操作事件发送至界面程序,并对操作事件解析以分别解析出鼠标事件或键盘事件等;
[0110] 这里,本实施例中界面程序使用了Linux Framebuffer技术允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作,当然这里也可以是其他能对显示缓冲区进行读写操作的程序或设备。
[0111] 生成帧缓冲模块503,用于将发送模块502解析出操作事件的界面程序生成为帧缓冲文件;这里,帧缓冲文件利用Linux Framebuffer技术基于Linux系统环境开发生成,例如可以由嵌入式设备107中的帧缓冲设备驱动等完成。
[0112] 合成模块504,用于将生成帧缓冲模块503生成的帧缓冲文件与输入模块501解码的视频画面合成;这里,合成方式为将视频画面和界面程序写入特定的内存中,然后对写入内存中的数据进行编码转换。
[0113] 编码模块505,用于将合成模块504合成后的数据编码为视频流数据;这里,把合成数据回写到特定的内存,使用例如硬件编码器,快速地编码成例如H.264视频编码标准或H.265视频编码标准,当然也可以是其他能够实现本实施例的视频编码标准。
[0114] 输出模块506,用于将编码模块505编码的视频流数据输出至远程桌面工具和/或终端设备;
[0115] 本实施例的远程桌面实现装置还可以包括:
[0116] 启动模块507,用于启动远程桌面服务并进行监听,其中,监听的内容包括鼠标操作、键盘操作、触摸屏操作等事件;
[0117] 连接认证模块508,用于连接启动模块507启动的远程桌面服务对应的客户端设备并进行认证;这里,提供P2P的远程服务器用于用户填写账号和密码,当嵌入式设备107和客户端设备101、102、103或104填写账号和密码以后,在P2P服务器上进行认证,如果认证通过则把视频流进行通讯并建立RTSP协议通讯。
[0118] 设置参数模块509,用于当连接认证模块508认证通过后,设置远程桌面服务与客户端设备的交互参数,并根据网络105等环境设置视频编码的参数;
[0119] 通信模块510,用于建立嵌入式设备的远程桌面服务与对应的客户端设备以及服务器之间的通信。
[0120] 应该理解的是,虽然附图的框图中的每个方框可以代表一个模块,该模块的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令,但是这些模块并不是必然按照顺序依次执行。本公开中装置实施例中的各模块及功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上的模块或功能单元集成在一个模块中。上述集成的各个模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0121] [远程桌面实现设备]
[0122] 为解决上述技术问题,本公开实施例还提供一种电子设备。下面参考图6,其示出了适于用来实现本公开实施例的电子设备(例如图1中的终端设备或嵌入式设备或服务器)600的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图6示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0123] 如图6所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储装置606加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM603中,还存储有电子设备
600操作所需的各种程序和数据。处理装置601、ROM602以及RAM603通过总线604彼此相连。
输入/输出(I/O)接口605也连接至总线604。
[0124] 通常,以下装置可以连接至I/O接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置606;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
[0125] 特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置606被安装,或者从ROM602被安装。在该计算机程序被处理装置601执行时,执行本公开实施例的方法中限定的上述功能。
[0126] 需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
[0127] 在一些实施方式中,客户端、服务器可以利用诸如HTTP(超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,adhoc端对端网络),以及任何当前已知或未来研发的网络。
[0128] 上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
[0129] 上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取至少两个网际协议地址;向节点评价设备发送包括所述至少两个网际协议地址的节点评价请求,其中,所述节点评价设备从所述至少两个网际协议地址中,选取网际协议地址并返回;接收所述节点评价设备返回的网际协议地址;其中,所获取的网际协议地址指示内容分发网络中的边缘节点。
[0130] 或者,上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:接收包括至少两个网际协议地址的节点评价请求;从所述至少两个网际协议地址中,选取网际协议地址;返回选取出的网际协议地址;其中,接收到的网际协议地址指示内容分发网络中的边缘节点。
[0131] 可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0132] 附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0133] 描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
[0134] 本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
[0135] 在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0136] 根据本公开的一个或多个实施例,提供了一种远程桌面实现方法,其特征在于,所述远程桌面实现方法基于视频流,包括:
[0137] 获取运行系统的界面程序;
[0138] 将所述界面程序生成为帧缓冲文件;
[0139] 获取视频画面并进行解码,将所述帧缓冲文件与解码的所述视频画面合成;
[0140] 将合成后的数据编码为视频流数据;
[0141] 将所述视频流数据输出至远程桌面工具和/或终端设备。
[0142] 根据本公开的一个或多个实施例,提供了一种远程桌面实现方法,其特征在于,[0143] 所述视频流数据的编码标准为H.264视频编码标准或H.265视频编码标准。
[0144] 根据本公开的一个或多个实施例,提供了一种远程桌面实现方法,其特征在于,[0145] 通过所述初始内存分配器的成员变量匹配符合预期的内存分配器的存放结构以重新分配内存分配器。
[0146] 根据本公开的一个或多个实施例,提供了一种远程桌面实现方法,其特征在于,[0147] 所述帧缓冲文件基于Linux系统环境开发生成。
[0148] 根据本公开的一个或多个实施例,提供了一种远程桌面交互方法,其特征在于,[0149] 所述远程桌面交互方法基于视频流,包括:
[0150] 获取用户远程操作事件;
[0151] 将所述操作事件发送至运行系统的界面程序;
[0152] 将所述界面程序生成为帧缓冲文件;
[0153] 获取视频画面并进行解码,将所述帧缓冲文件与解码的所述视频画面合成;
[0154] 将合成后的数据编码为视频流数据;
[0155] 将所述视频流数据输出至远程桌面工具。
[0156] 根据本公开的一个或多个实施例,提供了一种远程桌面交互方法,其特征在于,还包括:
[0157] 所述视频流数据的编码标准为H.264视频编码标准或H.265视频编码标准。
[0158] 根据本公开的一个或多个实施例,提供了一种远程桌面交互方法,其特征在于,[0159] 将所述操作事件发送至运行系统的界面程序的方法至少包括实时流传输、对等网络传输之一;
[0160] 其中,当所述方法为实时流传输时,能够实现本地远程桌面交互,当所述方法为对等网络传输时,能够实现互联网远程桌面交互。
[0161] 根据本公开的一个或多个实施例,提供了一种远程桌面交互方法,其特征在于,[0162] 所述用户远程操作事件至少包括鼠标操作、键盘操作、触摸屏操作之一。
[0163] 根据本公开的一个或多个实施例,提供了一种远程桌面交互方法,其特征在于,还包括:
[0164] 启动远程桌面服务并进行监听;
[0165] 连接所述远程桌面服务对应的客户端设备并进行认证;
[0166] 当认证通过后,设置所述远程桌面服务与所述客户端设备的交互参数。
[0167] 根据本公开的一个或多个实施例,提供了一种远程桌面实现方法或远程桌面交互方法,其特征在于,
[0168] 前述任一项所述的远程桌面实现方法或所述远程桌面交互方法基于Linux系统环境。
[0169] 根据本公开的一个或多个实施例,提供了一种远程桌面实现装置,其特征在于,包括:
[0170] 输入模块,输入视频画面或用户远程输入事件,将所述视频画面进行解码;
[0171] 发送模块,将所述用户远程输入事件发送至界面程序;
[0172] 生成帧缓冲模块,将所述界面程序生成为帧缓冲文件;
[0173] 合成模块,将所述帧缓冲文件与解码的所述视频画面合成;
[0174] 编码模块,将合成后的数据编码为视频流数据;
[0175] 输出模块,将所述视频流数据输出至远程桌面工具和/或终端设备。
[0176] 根据本公开的一个或多个实施例,提供了一种远程桌面实现装置,其特征在于,还包括
[0177] 启动模块,启动远程桌面服务并进行监听;
[0178] 连接认证模块,连接所述远程桌面服务对应的客户端设备并进行认证;
[0179] 设置参数模块,当认证通过后,设置所述远程桌面服务与所述客户端设备的交互参数;
[0180] 通信模块,建立所述远程桌面服务与对应的所述客户端设备之间的通信。
[0181] 根据本公开的一个或多个实施例,提供了一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如上述任一项所述的远程桌面实现方法或远程桌面交互方法。
[0182] 根据本公开的一个或多个实施例,提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的远程桌面实现方法或远程桌面交互方法。
[0183] 根据本公开的一个或多个实施例,提供了一种远程桌面系统,其特征在于,至少包括:
[0184] 客户端设备,获取视频画面或用户远程输入事件;
[0185] 嵌入式设备,将所述用户远程输入事件发送至界面程序,将所述界面程序生成为帧缓冲文件,将所述帧缓冲文件与所述视频画面合成,将合成后的数据编码为视频流数据;
[0186] 其中,所述客户端设备与所述嵌入式设备能够连接并进行认证,当认证通过后,设置所述客户端设备与所述嵌入式设备的交互参数。
[0187] 以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
[0188] 此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
[0189] 尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈