CN110430467B - 远程设备访问方法和装置 - Google Patents

远程设备访问方法和装置 Download PDF

Info

Publication number
CN110430467B
CN110430467B CN201910626703.8A CN201910626703A CN110430467B CN 110430467 B CN110430467 B CN 110430467B CN 201910626703 A CN201910626703 A CN 201910626703A CN 110430467 B CN110430467 B CN 110430467B
Authority
CN
China
Prior art keywords
screenshot
stream data
video stream
remote
nth
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
Application number
CN201910626703.8A
Other languages
English (en)
Other versions
CN110430467A (zh
Inventor
周为
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Advanced New Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Priority to CN201910626703.8A priority Critical patent/CN110430467B/zh
Publication of CN110430467A publication Critical patent/CN110430467A/zh
Application granted granted Critical
Publication of CN110430467B publication Critical patent/CN110430467B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4334Recording operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4363Adapting the video stream to a specific local network, e.g. a Bluetooth® network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本公开提供了远程设备访问方法和装置。第一设备可接收来自第二设备的远程访问命令以在第一设备和第二设备之间建立远程访问连接,该远程访问命令指示第二设备要获取第一设备的屏幕显示。第一设备可抓取与第一设备的屏幕显示相对应的屏幕截图,所抓取的屏幕截图是图片格式的。可由第一设备或服务器将该屏幕截图从图片格式编码成视频格式以生成视频流数据;以及将视频流数据传送给第二设备以供在第二设备上呈现第一设备的屏幕显示。本公开还提供了对应的远程设备访问装置和远程设备访问系统。

Description

远程设备访问方法和装置
技术领域
本公开涉及电子设备,尤其涉及远程设备访问方法和装置。
背景技术
远程访问使得用户可以使用本地计算机设备通过网络访问远程设备,在本地计算机设备上显示远程设备的界面,并控制远程设备执行操作,且本地计算机设备显示的界面内容可以与远程设备相应地发生动态变化。
业内实现远程设备访问时可使用图片传输来向用户提供远程设备的界面。远程设备在运行用户指定的应用时,显示屏界面通常是变化的,由此需要向用户传递一系列连续图片。由于远程访问的实时性要求,需要尽快逐个地传送所捕捉的屏幕图片,因此传输数据较多。图片分辨率越高,捕捉屏幕截图的帧率越高,用户在本地设备上的实时体验就越好。但大量高分辨率图片将对网络带宽造成极大的压力,由此可能造成网络拥塞或延迟。即使对图片进行压缩,压缩后的图片数据量也非常大。在通过同一个网络访问多个远程设备时,很容易发生网络拥塞,造成显示延迟,影响用户体验。
由于所需带宽与帧率、屏幕分辨率强相关,当画面帧率提升时,所需带宽成正比例同步提升;当分辨率提升时,所需带宽提升也很大。现有技术难以支撑高分辨率的远程访问,限制了帧率和分辨率的提升。业内一般通过对图片作跳帧处理来限制最大帧率和数据量,但这会影响用户体验。
因此,本领域需要能够高效地进行远程设备访问同时降低网络带宽使用的方法和装置。
发明内容
为解决以上问题,本公开提供了能够高效地进行远程设备访问同时降低网络带宽使用的方法和装置。根据本公开,第一设备可接收来自第二设备的远程访问命令以在第一设备和第二设备之间建立远程访问连接,该远程访问命令指示第二设备要获取第一设备的屏幕显示。第一设备可抓取与第一设备的屏幕显示相对应的屏幕截图,所抓取的屏幕截图是图片格式的。可由第一设备或服务器将该屏幕截图从图片格式编码成视频格式以生成视频流数据;以及将视频流数据传送给第二设备以供在第二设备上呈现第一设备的屏幕显示。本公开还提供了对应的远程设备访问装置和远程设备访问系统。
根据本公开的一个实施例,提供了一种远程设备访问方法,其包括在第一设备处接收来自第二设备的远程访问命令以在第一设备和第二设备之间建立远程访问连接,所述远程访问命令指示所述第二设备要获取所述第一设备的屏幕显示;在所述第一设备处抓取与所述第一设备的屏幕显示相对应的屏幕截图,所抓取的屏幕截图是图片格式的;将所述屏幕截图从图片格式编码成视频格式以生成视频流数据;以及将所述视频流数据从所述第一设备传送给第二设备以供在所述第二设备上呈现所述第一设备的屏幕显示。
在一方面,该远程设备访问方法还包括:在抓取到与第一设备的屏幕显示相对应的一张新屏幕截图时,将该新屏幕截图与先前的屏幕截图进行联合编码,以生成与该新屏幕截图相对应的视频流数据,并将与该新屏幕截图相对应的视频流数据传送给第二设备。
在一方面,该远程设备访问方法还包括:根据网络状况、来自所述第二设备的指令、和所述第一设备的屏幕显示的动态性中的至少一者来调整在所述第一设备处抓取所述屏幕截图的帧率和/或分辨率。
在一方面,所述第二设备能从所述视频流数据解码出所述屏幕截图,并在所述第二设备上呈现所述屏幕截图。
在一方面,该远程设备访问方法还包括:在第一设备处接收来自所述第二设备的操作指令以根据所述操作指令在所述第一设备上执行对应的操作。
在一方面,所述屏幕截图的帧率为20~35帧/秒。
根据本公开的另一个实施例,提供了一种用于远程设备访问的第一设备,其包括:远程访问模块,其接收来自第二设备的远程访问命令以在第一设备和第二设备之间建立远程访问连接,所述远程访问命令指示所述第二设备要获取所述第一设备的屏幕显示;屏幕抓取模块,其抓取与所述第一设备的屏幕显示相对应的屏幕截图,所抓取的屏幕截图是图片格式的;以及视频编码器,其从所述屏幕抓取模块接收屏幕截图并将所述屏幕截图从图片格式编码成视频格式以生成视频流数据,其中所述传输模块将所述视频流数据传送给第二设备以供在所述第二设备上呈现所述第一设备的屏幕显示。
在一方面,所述视频编码器在接收到与第一设备的屏幕显示相对应的一张新屏幕截图时,将该新屏幕截图与先前的屏幕截图进行联合编码,以生成与该新屏幕截图相对应的视频流数据,并将与该新屏幕截图相对应的视频流数据传送给第二设备。
在一方面,所述屏幕抓取模块根据网络状况、来自所述第二设备的指令、和所述第一设备的屏幕显示的动态性中的至少一者来调整抓取所述屏幕截图的帧率和/或分辨率。
在一方面,所述传输模块接收来自所述第二设备的操作指令,所述第一设备还包括:操作模块,其根据所述操作指令在所述第一设备上执行对应的操作。
在一方面,所述屏幕截图的帧率为20~35帧/秒。
根据本公开的另一个实施例,提供了一种由服务器执行的远程设备访问方法,其包括:在服务器处从第二设备接收远程访问命令以在第一设备和第二设备之间建立远程访问连接,所述远程访问命令指示所述第二设备要获取第一设备的屏幕显示;将所述远程访问命令传送给所述第一设备;从所述第一设备接收与所述第一设备的屏幕显示相对应的屏幕截图,所述屏幕截图是图片格式的;将所述屏幕截图从图片格式编码成视频格式以生成视频流数据;以及将所述视频流数据从所述服务器传送给第二设备以供在所述第二设备上呈现所述第一设备的屏幕显示。
在一方面,该远程设备访问方法还包括:在从所述第一设备接收到与第一设备的屏幕显示相对应的一张新屏幕截图时,将该新屏幕截图与先前的屏幕截图进行联合编码,以生成与该新屏幕截图相对应的视频流数据,并将与该新屏幕截图相对应的视频流数据传送给第二设备。
在一方面,该远程设备访问方法还包括:在所述服务器处从所述第二设备接收操作指令;以及将所述操作指令传送给所述第一设备,以使得所述第一设备根据所述操作指令来执行对应的操作。
在一方面,所述屏幕截图的帧率为20~35帧/秒。
根据本公开的另一个实施例,提供了一种用于远程设备访问的服务器,其包括:传输模块,其从第二设备接收远程访问命令以在第一设备和第二设备之间建立远程访问连接,所述远程访问命令指示所述第二设备要获取第一设备的屏幕显示,所述传输模块将所述远程访问命令传送给所述第一设备并从所述第一设备接收与所述第一设备的屏幕显示相对应的屏幕截图,所述屏幕截图是图片格式的;视频编码器,其从所述传输模块接收所述屏幕截图并将所述屏幕截图从图片格式编码成视频格式以生成视频流数据,其中所述传输模块将所述视频流数据从所述服务器传送给第二设备以供在所述第二设备上呈现所述第一设备的屏幕显示。
在一方面,所述视频编码器在接收到与第一设备的屏幕显示相对应的一张新屏幕截图时,将该新屏幕截图与先前的屏幕截图进行联合编码,以生成与该新屏幕截图相对应的视频流数据,并将与该新屏幕截图相对应的视频流数据传送给第二设备。
在一方面,所述传输模块接收来自所述第二设备的操作指令,并将所述操作指令传送给所述第一设备,以使得所述第一设备根据所述操作指令来执行对应的操作。
在一方面,所述屏幕截图的帧率为20~35帧/秒。
根据本公开的另一个实施例,提供了一种由第二设备执行的远程设备访问方法,其包括:在第二设备处生成并传送远程访问命令以在第一设备和第二设备之间建立远程访问连接,所述远程访问命令指示所述第二设备要获取第一设备的屏幕显示;在第二设备处接收来自第一设备的视频流数据,所述视频流数据是通过将与第一设备的屏幕显示相对应的屏幕截图从图片格式编码成视频格式来生成的;解码所述视频流数据以生成图片格式的屏幕截图;以及在第二设备上呈现所述屏幕截图。
在一方面,所述远程设备访问方法还包括:在第二设备处接收到新的视频流数据时,将该新的视频流数据与先前的视频流数据进行联合解码,以生成新的屏幕截图并在第二设备上呈现该新的屏幕截图。
在一方面,所述远程设备访问方法还包括:在所述第二设备处接收来自用户的操作指令并将所述操作指令传送给所述第一设备以在所述第一设备上执行对应的操作。
根据本公开的另一个实施例,提供了一种用于远程设备访问的第二设备,其包括:远程访问模块,其生成远程访问命令以在第一设备和第二设备之间建立远程访问连接,所述远程访问命令指示所述第二设备要获取第一设备的屏幕显示;传输模块,其传送所述远程访问命令并接收来自第一设备的视频流数据,所述视频流数据是通过将与第一设备的屏幕显示相对应的屏幕截图从图片格式编码成视频格式来生成的;视频解码器,其解码所述视频流数据以生成图片格式的屏幕截图;以及呈现模块,其在第二设备上呈现所述屏幕截图。
在一方面,所述视频解码器在接收到新的视频流数据时,将该新的视频流数据与先前的视频流数据进行联合解码,以生成新的屏幕截图并呈现该新的屏幕截图。
在一方面,所述第二设备还包括:操作捕捉模块,其在所述第二设备处接收来自用户的操作指令并经由所述传输模块将所述操作指令传送给所述第一设备以在所述第一设备上执行对应的操作。
根据本公开的另一个实施例,提供了一种远程设备访问系统,其包括:处理器;以及用于存储处理器可执行指令的存储器,其中所述处理器执行所述处理器可执行指令以实现如上所述的远程设备访问方法。
本公开可以通过本地设备(例如,通过网页、专用app)来访问远程设备(手机/屏幕设备)。相比现有的技术,本公开可以在相同网络环境下传输质量更好的画面,或者在相同画面质量的情况下大大减少对网络带宽的要求,使访问更流畅,从而提供更好的操作体验。
附图说明
图1是根据本公开一个实施例的远程设备访问装置的框图。
图2是根据本公开一个实施例的远程设备访问方法的流程图。
图3是根据本公开一个实施例的远程设备访问场景的示意图。
图4是根据本公开另一个实施例的远程设备访问装置的框图。
图5是根据本公开另一个实施例的远程设备访问方法的流程图。
图6是根据本公开另一个实施例的远程设备访问场景的示意图。
具体实施方式
下面结合具体实施例和附图对本公开作进一步说明,但不应以此限制本公开的保护范围。
在进行远程设备访问时希望在本地设备显示的画面延迟尽量低,屏幕分辨率尽量高,对网络带宽的消耗尽量小,这样操作体验才会接近真正的本地机器。本公开提供了一种低延迟远程设备访问方法和装置,其中第一设备可接收来自第二设备的远程访问命令以在第一设备和第二设备之间建立远程访问连接,该远程访问命令指示第二设备要获取第一设备的屏幕显示。第一设备可抓取与第一设备的屏幕显示相对应的屏幕截图,所抓取的屏幕截图是图片格式的。可由第一设备或服务器将该屏幕截图从图片格式编码成视频格式以生成视频流数据;以及将视频流数据传送给第二设备以供在第二设备上呈现第一设备的屏幕显示。本公开还提供了对应的远程设备访问装置和远程设备访问系统。本公开所提供的技术可以在相同网络环境下传输质量更好的画面,或者在相同画面的情况下,大大减少对网络带宽的要求,使访问更流畅。
图1是根据本公开一个实施例的远程设备访问装置的框图。图1示出了第一设备110和第二设备120。第一设备110和第二设备120可以是能够有线和/或无线地联网的任何电子设备,例如手机、平板、计算机、或者其他具有显示屏的电子设备。根据本公开,第二设备120的用户可以通过第二设备120来访问第一设备110,并且可以在第二设备120上呈现第一设备110的屏幕内容。此外,作为示例而非限定,第二设备120的用户可以在第二设备120上提供操作指令,并使得第一设备110运行该操作指令。
第二设备120可以与第一设备110建立远程访问连接,并由此在第二设备120的屏幕上显示第一设备110的屏幕界面。例如,第二设备120可在本地屏幕所显示的网页的一个区域、本地屏幕的一部分、整个本地屏幕等等上显示第一设备110的屏幕界面。虽然本文描述了远程访问,但这并不意味着第一设备110和第二设备120在物理上是远离的。本领域技术人员可以理解,第一设备110和第二设备120可以是彼此远离的,也可以是彼此靠近的(例如,在同一个房间、同一个办公室、同一幢楼等等)。
如图1所示,第一设备110可包括传输模块111、远程访问模块112、屏幕抓取模块114、视频编码器116、和可选的操作模块118。第二设备120可包括传输模块121、远程访问模块122、视频解码器124、呈现模块126、和可选的操作捕捉模块128。第一设备110的传输模块111可用于与第二设备120的传输模块121进行通信,例如根据任何合适的有线(如以太网、光纤、电力线、双绞线等)或无线(如W-CDMA、3GPP、LTE、3G、4G、5G、Wi-Fi、蓝牙、Zigbee、微波等)方式进行通信,本发明在这方面不受限制。
第一设备110的远程访问模块112可用于与第二设备120的远程访问模块122建立远程访问连接。远程访问模块112和远程访问模块122可以实现为网页组件、专用app等,并且可实现任何合适的远程访问协议,例如,TCP/IP、IPX、PPP、SLIP等,或是根据需要定制的握手协议。
根据一个实施例,远程访问模块122可生成远程访问命令以在第一设备和第二设备之间建立远程访问连接,该远程访问命令可指示第二设备120要获取第一设备110的屏幕显示。远程访问模块122经由传输模块121将远程访问命令传送给第一设备110的传输模块111,传输模块111可将接收到的远程访问命令传递给第一设备110的远程访问模块112,远程访问模块112可以决定是否与第二设备120建立远程访问连接。如果远程访问模块112同意与第二设备120建立远程访问连接,则可以进一步在第一设备110和第二设备120之间执行认证,并在认证成功的情况下在第一设备110和第二设备120建立远程访问连接。如果认证不成功,可以不建立远程访问连接。
在其他示例中,如果在建立远程访问连接之前第一设备110和第二设备120已经以其他方式相互成功认证,则第一设备110的远程访问模块112在接收到来自第二设备120的远程访问命令时可以直接在第一设备110和第二设备120建立远程访问连接而无需进一步认证。
在第一设备110和第二设备120建立远程访问连接之后,第一设备110的屏幕抓取模块114可以抓取第一设备110的屏幕显示内容并生成相对应的屏幕截图。该屏幕截图可以是任何图片格式,例如.jpg、.jpeg、.gif、.png、.bmp等。此时,第一设备110可处于任何状态,例如待机、主屏幕、正在运行某个应用程序等。屏幕抓取模块114可按指定帧率来抓取第一设备110在不同时间的多张屏幕截图。抓取屏幕截图的帧率可以由远程访问协议规定,由视频编码器116决定,或者也可以根据实际需要和网络状况来设置或选择。帧率越高,屏幕截图就越连贯,所传递的数据量就越大,用户的实时体验也越好。根据本公开的一个实施例,屏幕抓取模块114抓取屏幕的帧率可以为例如10~40帧/秒,优选地为20~35帧/秒。
在一方面,可以根据第一设备110即将或正在运行的应用来设置抓取屏幕截图的帧率,为高动态应用(例如,游戏应用等)设置较高帧率,为低动态应用(例如,文字处理等)设置较低帧率。例如,可在建立远程访问连接之时或之后、在命令第一设备110运行特定应用时等等设置抓取屏幕截图的帧率。替换地,也可以在远程访问过程中根据实际情况调整帧率,比如当第一设备110正在或即将显示高动态内容时、网络空闲时、和/或用户希望提高帧率时等等,由第一设备110或第二设备120指示屏幕抓取模块114提高帧率。相反,当第一设备110正在或即将显示低动态内容时、网络繁忙时、和/或用户希望降低帧率时等等,由第一设备110或第二设备120指示屏幕抓取模块114降低帧率。
类似地,屏幕抓取模块114抓取屏幕截图的分辨率可以由远程访问协议规定,也可以根据实际需要和网络状况来设置或选择。分辨率越高,所显示的屏幕界面就越清晰。一般来说,所提供的分辨率越接近第一设备110的原始分辨率,体验就越好。但是因为使用原始分辨率传输的数据量很大,所以可以在一定程度上降低分辨率。第一设备110或第二设备120可根据所显示的内容、网络状况、用户体验等指示屏幕抓取模块114提高或降低屏幕截图的分辨率。
屏幕抓取模块114可以将所抓取的屏幕截图提供给视频编码器116。例如,屏幕抓取模块114每当抓取一张新的屏幕截图时,就将该新的屏幕截图提供给视频编码器116。视频编码器116可以将所接收的屏幕截图从图片格式编码成视频格式以生成视频流数据。视频编码器116可以使用任何合适的视频编码技术,例如H.261、H.263、H.264、M-JPEG、MPEG等。视频编码器116可以采用变换编码来消除每张屏幕截图中的空间冗余信息,和/或可以采用预测编码来消除连贯屏幕截图之间的冗余性。
例如,当视频编码器116接收到第一张屏幕截图时,可以独立地将第一张屏幕截图编码成视频流数据。当视频编码器116接收到第二张屏幕截图时,可以将第二张屏幕截图与第一张屏幕截图联合地编码,使得第二张屏幕截图中与第一张屏幕截图相似或相同的内容部分产生的视频流数据将显著减少。当视频编码器116接收到第N张屏幕截图时,可以将第N张屏幕截图与先前的一张或多张屏幕截图(例如,参考屏幕截图)联合地编码,以生成对应于第N张屏幕截图的视频流数据。视频编码器116可根据各种方式来选择参考屏幕截图,例如选择第N-t张先前屏幕截图作为第N张屏幕截图的参考帧(t为指定的正整数),选择与第N张屏幕截图最接近(或局部相似)的一张或多张先前屏幕截图作为第N张屏幕截图的参考帧等等。
进一步,视频编码器116在视频编码过程中可以确定屏幕动态性(例如,相继屏幕截图之间的相似性),并在屏幕动态性高时指示屏幕抓取模块114提高帧率,而在屏幕动态性低时指示屏幕抓取模块114降低帧率。
由此,视频编码器116可将屏幕截图依次编码成视频流数据,并且可以逐帧地向传输模块111输出与每张屏幕截图相对应的视频流数据。此后,传输模块111可将视频编码器116生成的视频流数据传送给第二设备120。在一个实施例中,传输模块111可将与每张屏幕截图相对应的视频流数据尽可能实时地传送给第二设备120,实现逐张屏幕截图的及时传输,由此减少与缓存或等待相关联的延迟。
第二设备120的传输模块121可接收来自第一设备110的与屏幕截图相对应的视频流数据,并将接收到的视频流数据提供给视频解码器124进行解码。在一方面,视频解码器124可以实现与视频编码器116相对应的编解码技术,由此解码出由视频编码器116进行编码的视频流。在另一方面,视频解码器124可以实现多种编解码技术,并通过读取视频流的配置参数来确定其采用的编码技术并相应地进行解码。
视频解码器124可从视频流数据解码出原始的屏幕截图。如上所述,第一设备110可将与每张屏幕截图相对应的视频流数据传送给第二设备120。当第二设备120接收到与第一张屏幕截图相对应的视频流数据时,视频解码器124可基于该视频流数据独立地解码出第一张屏幕截图。随后当第二设备120接收到与第二张屏幕截图相对应的视频流数据时,视频解码器124可将该视频流数据与先前视频流数据的解码结果(即,第一张屏幕截图)联合地解码出第二张屏幕截图。当第二设备120接收到与第N张屏幕截图相对应的视频流数据时,可以将该视频流数据与先前解码出的用于第N张屏幕截图的参考帧联合地解码出第N张屏幕截图。视频解码器124可从视频流数据的配置参数来确定视频编码器116在编码时用于第N张屏幕截图的参考帧。
视频解码器124可将解码出的屏幕截图提供给呈现模块126,呈现模块126可在第二设备120的显示器上依次呈现所接收的屏幕截图。例如,视频解码器124每当解码出一张屏幕截图时就将该屏幕截图提供给呈现模块126,由此呈现模块126依次呈现所接收的每张屏幕截图。呈现模块126将屏幕截图逐帧连续显示出来,就可以还原在第一设备110的显示屏上的内容。呈现模块126可以在第二设备120的整个屏幕或一部分屏幕上呈现这些屏幕截图。
根据本公开的采用视频编解码的远程访问技术与图片传输相比能够提高帧率并减少延迟。例如,采用图片传输或压缩图片传输的远程访问可达成的帧率一般小于等于15帧/秒,在高动态画面显示过程中存在人眼可感知的停顿。而根据本公开的远程访问技术能够达成大于15帧/秒的帧率,例如20~40帧/秒,由此可以消除在高动态画面显示过程中人眼可感知的停顿。当然,根据实际需要,本公开也能够实现小于20帧/秒或小于15帧/秒的帧率,且带宽占用量显著更小。在不发生网络拥塞的情况下,本公开的远程访问延迟(例如,从第一设备110上显示某一界面到第二设备120上显示该界面之间的时间差)可小于150ms,优选地小于100ms,这可以提供良好的用户体验。因此,第二设备120能够动态且接近实时地显示第一设备110的屏幕界面。
根据本公开的一方面,第二设备120的用户还可以输入操作指令以使得第一设备110执行该操作指令。在第二设备120显示第一设备110的屏幕截图之后,第二设备120的操作捕捉模块128可以捕捉来自第二设备120的用户的操作指令。例如,第二设备120的用户可以点击(例如,单击、双击)所显示的屏幕截图的特定位置(例如,菜单、按钮、选项等),进行拖曳、选择等操作,也可以通过键盘等输入信息。第二设备120的用户可以利用鼠标、键盘、触摸屏等输入装置,也可以利用手势输入等向第二设备120提供输入信息。相应地,操作捕捉模块128可以捕捉用户操作和发生操作的位置,并将相关操作指令经由传输模块121传回至第一设备110。
第一设备110的操作模块118可以根据所接收的来自第二设备120的操作指令在第一设备110上执行对应的操作。例如,操作模块118可将用户操作指令进行回放,模拟相同的用户操作(比如点击特定位置、启动特定应用、在输入栏输入文字等),使第二设备120的用户进行的操作可以在第一设备110上生效。
虽然图1示出了第一设备110中的远程访问模块112、屏幕抓取模块114、视频编码器116、和可选的操作模块118是分开的模块,但这些模块中的一个或多个模块可以实现在一起。类似地,第二设备120中的远程访问模块122、视频解码器124、呈现模块126、和可选的操作捕捉模块128中的一者或多者也可以分开实现或在一起实现。以上任何一个模块或以上多个模块的组合可以用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、晶体管逻辑、或其任何组合来实现或执行。
图2是根据本公开一个实施例的远程设备访问方法的流程图。在一个实施例中,图2所示的方法可由以上描述的第一设备110、第二设备120来执行。
在步骤202,可在第二设备处生成远程访问命令以在第一设备和第二设备之间建立远程访问连接,该远程访问命令指示第二设备要获取第一设备的屏幕显示。第二设备可将该远程访问命令传送给第一设备。
在步骤204,第一设备可接收来自第二设备的远程访问命令。随后,第一设备可与第二设备建立远程访问连接。
在步骤206,第一设备可抓取与第一设备的屏幕显示相对应的屏幕截图,所抓取的屏幕截图可以是图片格式的。
在步骤208,第一设备可将该屏幕截图从图片格式编码成视频格式以生成视频流数据。在抓取到与第一设备的屏幕显示相对应的一张新屏幕截图时,可将该新屏幕截图与先前的屏幕截图进行联合编码,以生成与该新屏幕截图相对应的视频流数据。随后,第一设备可将该视频流数据传送给第二设备。
在步骤210,第二设备可接收该视频流数据并将该视频流数据解码成图片格式以恢复出原始的屏幕截图。在第二设备处接收到新的视频流数据时,可将该新的视频流数据与先前的视频流数据(或先前解码出的屏幕截图)进行联合解码,以生成新的屏幕截图。
在步骤212,第二设备可呈现该屏幕截图。例如,第二设备可在其显示器上全屏地、或在一部分屏幕上呈现该屏幕截图。
在可选步骤214,第二设备可接收用户操作并生成操作指令。例如,第二设备的用户可点击该屏幕截图上的特定按钮,第二设备可生成包含点击操作和点击位置的操作指令。随后,第二设备可将该操作指令传送给第一设备。
在步骤216,第一设备可从第二设备接收该操作指令。
在步骤218,第一设备可根据该操作指令来执行操作。例如,第一设备的操作模块可根据该操作指令在第一设备上执行与第二用户的操作相对应的操作,例如点击第一设备屏幕上的该特定按钮。
步骤206-212(以及可选的步骤214-218)可重复地执行,直至第一设备和第二设备结束该远程访问。在替换实施例中,第二设备可以仅显示第一设备的屏幕界面而不向第一设备提供操作指令,由此步骤214-218可被省略。
图3是根据本公开一个实施例的远程设备访问场景的示意图。图3作为示例而非限定示出了第一设备310和第二设备320分别为移动设备,但在其他示例中,第一设备310和第二设备320各自可以是任何合适的能够联网且具有显示屏的电子设备,例如台式计算机、笔记本电脑、平板设备、手机等。
在根据本公开的一个实施例中,第二设备320可以发起远程访问请求以与第一设备310建立远程访问连接并访问第一设备310的屏幕。在建立远程访问连接之后,第一设备310可抓取第一设备310的显示屏的屏幕截图1(例如,主屏幕),将该屏幕截图编码成视频流数据1,并将该视频流数据传送给第二设备320。如果屏幕截图1是第一设备310在该远程访问过程中生成的第一张屏幕截图,则可以独立地将第一张屏幕截图编码成视频流数据1,并将视频流数据1传送给第二设备。
第二设备320可将该视频流数据1解码成图片格式以恢复出原始的屏幕截图1。由此,可在第二设备320的显示器上(例如,在网页的一个区域中、在整个屏幕或部分屏幕上)呈现该屏幕截图1,即第一设备310的屏幕内容(例如,主屏幕)。由于第一设备310对屏幕截图1的编码和传输、以及第二设备320对视频流数据的解码引入了延迟,因此第二设备320可以在一些延迟之后显示屏幕截图1。
第一设备310在抓取屏幕截图1之后,可以按照指定间隔(例如,根据所设置的帧率)继续抓取屏幕截图2。当抓取到屏幕截图2时,可以将屏幕截图2与先前的屏幕截图(例如,屏幕截图1)联合地进行编码(例如,使用预测编码、运动估计等),以生成与屏幕截图2相对应的视频流数据2,并且可以将视频流数据2传送给第二设备。本领域技术人员可以理解,由于将屏幕截图2与屏幕截图1联合地编码,可以显著减少视频流数据2中的冗余信息。例如,如果第一设备310在此阶段的动态性很低(例如,停留在主屏幕,即屏幕截图2也显示主屏幕),则屏幕截图1和屏幕截图2之间的相似性非常高,则通过视频编码生成的视频流数据2将包含很少数据量。
第二设备320在接收到视频流数据2时可以从视频流数据2的配置数据中知晓视频流数据2是参考屏幕截图1来编码的屏幕截图2,并且可以相应地联合先前解码出的屏幕截图1来从视频流数据2解码出屏幕截图2。随后,第二设备可以呈现屏幕截图2。
当第一设备310抓取到第N张屏幕截图时,可以将第N张屏幕截图与先前的一张或多张屏幕截图(例如,参考帧)联合地编码,以生成对应于第N张屏幕截图的视频流数据。如上所述,视频编码器可根据各种方式来选择参考帧,例如选择第N-t张先前屏幕截图作为第N张屏幕截图的参考帧(t为指定的正整数),选择与第N张屏幕截图最接近(或局部相似)的一张或多张先前屏幕截图作为第N张屏幕截图的参考帧等等。
此过程可以重复进行,从而第一设备310继续抓取屏幕截图3、4等等,并生成视频流数据3、4等等。第二设备320可以相应地接收这些视频流数据并恢复和显示对应的屏幕截图。由此,视频编码器可顺序地接收多张屏幕截图,并且可以在每张屏幕截图的处理延迟之后逐帧地输出与每张屏幕截图相对应的视频流,减少了与缓存或等待相关联的延迟。
在该远程访问过程中的任何时间,第二设备320的用户可针对所显示的屏幕截图提供操作,例如点击屏幕截图上的特定应用所在的位置(对应于启动该应用的操作)。第二设备320可以捕捉该点击操作和点击位置,并将包含这些操作信息的操作指令302传送给第一设备310。由此,第一设备310可以针对其所显示的屏幕内容执行所接收的操作指令302,例如启动并运行所点击位置处的特定应用。
第一设备310执行该操作指令可引起第一设备310的显示屏变化。根据本公开,第一设备310的屏幕内容被持续地提供给第二设备320,由此第一设备310执行该操作指令引起的变化的显示内容(例如,该特定应用被点击、启动并运行的状态)也在第二设备320上展示给用户。例如,如果第一设备310在抓取屏幕截图3之后执行该操作指令(启动某个应用),则屏幕截图4将对应于该应用启动之后的屏幕显示状态。相应地,第二设备320接收到的屏幕截图3和屏幕截图4将分别对应于第一设备310在该应用启动之前和之后的屏幕状态。
如果该应用的某个运行阶段提供选项供用户操作,例如“确认”按钮,则第二设备320上相应地也会显示带有“确认”按钮的该界面,第二设备320的用户可点击该“确认”按钮以生成操作指令304,并使得第一设备310接收操作指令304并执行对“确认”按钮的点击。
本领域技术人员应理解,需要与用户交互的界面通常会停留一段时间,例如,显示“确认”按钮后等待用户操作。即使是使用本机操作,等待用户点击“确认”按钮可能需要例如1秒以上,由此该等待界面可维持1秒以上。根据本公开的屏幕显示延迟可例如在100ms左右,从第二设备320向第一设备310传送操作指令的延迟例如约为30ms左右。即,屏幕显示延迟加上操作指令传送延迟显著少于人类反应时间,因此在第二设备320上提供操作指令(例如,点击“确认”按钮)不会使得第一设备310等待比本地操作显著更长的时间,由此本公开的远程设备访问不会明显影响人机交互的体验。本公开可以减少屏幕截图传输延时和网络带宽使用,提供接近实时的远程设备访问体验。
图4是根据本公开另一个实施例的远程设备访问装置的框图。图4示出了第一设备410、第二设备420和服务器430。第一设备410和第二设备420可以与以上关于图1描述的第一设备110和第二设备120相似,不同之处在于第二设备420通过服务器430来访问第一设备410,并且可在服务器430中实现视频编码器434。
如图4所示,第一设备410可包括传输模块411、远程访问模块412、屏幕抓取模块414、和可选的操作模块418,它们分别与图1所示的第一设备110中对应的模块执行相似的功能。第二设备420可包括传输模块421、远程访问模块422、视频解码器424、呈现模块426、和可选的操作捕捉模块428,它们分别与图1所示的第二设备120中对应的模块执行相似的功能。服务器430可包括传输模块432和视频编码器434,其中传输模块432用于与第一设备410和第二设备420通信,视频编码器434可与图1所示的第一设备110中的视频编码器116执行相似的功能。
在第一设备410和第二设备420通过服务器430建立远程访问连接之后,第一设备410的屏幕抓取模块414可以捕捉第一设备410的屏幕显示内容并生成相对应的屏幕截图。屏幕抓取模块414可以将所抓取的屏幕截图通过传输模块411提供给服务器430。服务器430的传输模块432可接收来自第一设备410的屏幕截图,并将其提供给视频编码器434。作为示例而非限定,屏幕抓取模块414每当抓取一张新的屏幕截图时,就将该新的屏幕截图提供给视频编码器434,由此减少提供屏幕截图的延迟。视频编码器434可以如上参考图1中的视频编码器116所述地将所接收的屏幕截图编码成视频流数据。随后,服务器430可通过传输模块432将该视频流数据传送给第二设备420。第二设备420如上参考图1中的第二设备120所述地解码该视频流数据并呈现恢复出的屏幕截图。
此外第二设备420的操作捕捉模块428可以捕捉来自第二设备420的用户的操作指令,并将该操作指令传送给服务器430。服务器430的传输模块432可接收来自第二设备420的操作指令,并将该操作指令转发给第一设备410。第一设备410的操作模块418可如上参照图1中的操作模块118所描述地执行该操作指令。
根据一个实施例,为了减少第一设备410向服务器430传送屏幕截图的延迟,第一设备410和服务器430优选地位于同一个局域网中。例如,第一设备410可通过有线接口或无线接口连接到服务器430,由此可以非常快速地将第一设备410捕捉的屏幕截图提供给服务器430,避免了数据在因特网上传输造成的延迟以及大量图片数据带来的网络拥塞。
因为视频编码器对性能要求较高,在服务器430上运行视频编码器可以减少对第一设备410的硬件配置、性能和功耗等的要求。同时,服务器430可以处理多个云端设备的屏幕截图数据,从而提高远程访问效率。服务器430还可以根据所处理的数据量、网络拥塞程度等指示第一设备410(和/或其他通过服务器430进行远程访问的设备)调整抓取屏幕截图的分辨率和/或帧率。
图5是根据本公开另一个实施例的远程设备访问方法的流程图。在一个实施例中,图5所示的方法可由以上参考图4描述的第一设备410、第二设备420和服务器430来执行。
在步骤502,可在第二设备处生成远程访问命令以在第一设备和第二设备之间建立远程访问连接,该远程访问命令指示第二设备要获取第一设备的屏幕显示。第二设备可将该远程访问命令传送给服务器。
在步骤503,服务器可接收来自第二设备的远程访问命令并将其转发给第一设备。
在步骤504,第一设备可接收来自服务器的远程访问命令。随后,第一设备可经由该服务器与第二设备建立远程访问连接。
在步骤506,第一设备可抓取与第一设备的屏幕显示相对应的屏幕截图,所抓取的屏幕截图可以是图片格式的。第一设备可将该屏幕截图传送给服务器。
在步骤508,服务器可将该屏幕截图从图片格式编码成视频格式以生成视频流数据。服务器在从第一设备接收到与第一设备的屏幕显示相对应的一张新屏幕截图时,可将该新屏幕截图与先前的屏幕截图进行联合编码,以生成与该新屏幕截图相对应的视频流数据,并将与该新屏幕截图相对应的视频流数据传送给第二设备。
在步骤510,第二设备可接收该视频流数据并将该视频流数据解码成图片格式以恢复出原始的屏幕截图。在第二设备处接收到新的视频流数据时,可将该新的视频流数据与先前的视频流数据进行联合解码,以生成新的屏幕截图。
在步骤512,第二设备可呈现该屏幕截图。例如,第二设备可在其显示器上全屏地、或在一部分屏幕上呈现该屏幕截图。
在可选步骤514,第二设备可接收用户操作并生成操作指令。随后,第二设备可将该操作指令传送给服务器。
在步骤515,服务器可接收来自第二设备的操作指令并将其转发给第一设备。
在步骤516,第一设备可从服务器接收该操作指令。
在步骤518,第一设备可根据该操作指令来执行操作。例如,第一设备的操作模块可根据该操作指令在第一设备上执行与第二用户的操作相对应的操作,例如点击第一设备屏幕上的该特定按钮。
步骤506-512(以及可选的步骤514-518)可重复地执行,直至第一设备和第二设备结束该远程访问。在替换实施例中,第二设备可以仅显示第一设备的屏幕界面而不向第一设备提供操作指令,由此步骤514-518可被省略。
图6是根据本公开另一个实施例的远程设备访问场景的示意图。用户可在本地设备602上通过服务器604访问一个或多个远程设备606、608、610。应理解,图6所示的本地设备602和远程设备606、608、610不限于图6中所示形式的设备,而是可以各自是任何合适的能够联网且具有显示屏的电子设备,例如台式计算机、笔记本电脑、平板设备、手机等。
本地设备602可通过服务器604依次或同时访问一个或多个远程设备606、608、610,并在本地设备602的屏幕上显示所访问的远程设备的屏幕截图。作为示例而非限定,本地设备602可在本地屏幕上的一个区域中显示所访问的一个远程设备的屏幕截图。或者,本地设备602可在本地屏幕上的不同区域中分别显示所访问的多个远程设备的屏幕截图,如612、614、616等。
在开发移动端应用(app)时,经常需要测试某种应用在多种手机/平板上的兼容性。利用本发明,可以由服务提供方将多种型号的设备(例如,设备606、608、610等)放在云上供大家共享使用,而无需每个开发/测试人员配备多种不同型号的设备。在把云端设备提供给用户(例如,开发/测试人员)使用时,用户可在本地设备(例如,602)上访问云端设备,实现对云端设备的操作并在本地设备上显示云端设备的显示屏界面(例如,屏幕截图),从而能够方便地完成在多种型号的设备上的测试操作。
本公开将独立的屏幕截图编码成视频流数据进行传输,依赖于视频编码技术,可以减少很多冗余信息的传递,例如某一张屏幕截图和上一张屏幕截图相比变动很少,那么就只需要传输有变动的内容,很大程度上减少了数据量。在屏幕截图传输的过程中引入了屏幕截图到视频再回到屏幕截图的步骤,压缩了实际在网络上传输的数据量。同时通过低延时的视频编码和解码技术,使得两次转换过程带来的延时在可接受的范围内,基本不影响用户体验。与现有技术相比,本公开可以在相同网络环境下传输质量更好的画面(更高帧率和/或更高分辨率),或者在相同画面质量的情况下大大减少对网络带宽的要求,使访问更流畅。
本公开可以实现屏幕截图的快速传输,减少了传输延时和网络带宽使用,提供了接近实时的远程设备访问体验。本公开提供的远程设备访问方法和装置不仅适用于从一个电子设备(例如,计算机、平板设备、手机等)访问云端设备,也适用于从一个电子设备访问任何其他联网设备。此外,还可以在一个电子设备上同时访问并显示多个其他设备的屏幕内容(例如,在本地设备显示器的多个区域中显示不同的远程设备屏幕),由此减少用户需要分别操作不同设备的繁琐性并提高操作效率。
以上描述的远程访问方法和装置的各个步骤和模块可以用硬件、软件、或其组合来实现。如果在硬件中实现,结合本公开描述的各种说明性步骤、模块、以及电路可用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或其他可编程逻辑组件、硬件组件、或其任何组合来实现或执行。通用处理器可以是处理器、微处理器、控制器、微控制器、或状态机等。如果在软件中实现,则结合本公开描述的各种说明性步骤、模块可以作为一条或多条指令或代码存储在计算机可读介质上或进行传送。实现本公开的各种操作的软件模块可驻留在存储介质中,如RAM、闪存、ROM、EPROM、EEPROM、寄存器、硬盘、可移动盘、CD-ROM、云存储等。存储介质可耦合到处理器以使得该处理器能从/向该存储介质读写信息,并执行相应的程序模块以实现本公开的各个步骤。而且,基于软件的实施例可以通过适当的通信手段被上载、下载或远程地访问。这种适当的通信手段包括例如互联网、万维网、内联网、软件应用、电缆(包括光纤电缆)、磁通信、电磁通信(包括RF、微波和红外通信)、电子通信或者其他这样的通信手段。
还应注意,这些实施例可能是作为被描绘为流程图、流图、结构图、或框图的过程来描述的。尽管流程图可能会把诸操作描述为顺序过程,但是这些操作中有许多操作能够并行或并发地执行。另外,这些操作的次序可被重新安排。
所公开的方法、装置和系统不应以任何方式被限制。相反,本公开涵盖各种所公开的实施例(单独和彼此的各种组合和子组合)的所有新颖和非显而易见的特征和方面。所公开的方法、装置和系统不限于任何具体方面或特征或它们的组合,所公开的任何实施例也不要求存在任一个或多个具体优点或者解决特定或所有技术问题。
上面结合附图对本公开的实施例进行了描述,但是本公开并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本公开的启示下,在不脱离本公开宗旨和权利要求所保护的范围情况下,还可做出很多更改,这些均落在本公开的保护范围之内。

Claims (26)

1.一种由第一设备执行的远程设备访问方法,其特征在于,包括:
在第一设备处接收来自第二设备的远程访问命令以在所述第一设备和所述第二设备之间建立远程访问连接,所述远程访问命令指示所述第二设备要获取所述第一设备的屏幕显示;
在所述第一设备处抓取与所述第一设备的屏幕显示相对应的屏幕截图,所抓取的屏幕截图是图片格式的;
将所述屏幕截图从图片格式编码成视频格式以生成视频流数据,其中,对于抓取的第一张屏幕截图,将所述第一张屏幕截图进行独立编码,以生成与所述第一张屏幕截图对应的视频流数据;对于抓取的第N张屏幕截图,将所述第N张屏幕截图与所述第N张屏幕截图的参考帧进行联合编码,以生成与所述第N张屏幕截图对应的视频流数据,所述参考帧为先前的、与所述第N张屏幕截图接近或局部相似的屏幕截图,N为大于1的正整数;以及
将所述视频流数据从所述第一设备传送给第二设备以供在所述第二设备上呈现所述第一设备的屏幕显示。
2.如权利要求1所述的远程设备访问方法,其特征在于,还包括:
在抓取到与第一设备的屏幕显示相对应的一张新屏幕截图时,将该新屏幕截图与先前的屏幕截图进行联合编码,以生成与该新屏幕截图相对应的视频流数据,并将与该新屏幕截图相对应的视频流数据传送给第二设备。
3.如权利要求1所述的远程设备访问方法,其特征在于,还包括:
根据网络状况、来自所述第二设备的指令、和所述第一设备的屏幕显示的动态性中的至少一者来调整在所述第一设备处抓取所述屏幕截图的帧率和/或分辨率。
4.如权利要求1所述的远程设备访问方法,其特征在于,所述第二设备能从所述视频流数据解码出所述屏幕截图,并在所述第二设备上呈现所述屏幕截图。
5.如权利要求1所述的远程设备访问方法,其特征在于,还包括:
在第一设备处接收来自所述第二设备的操作指令以根据所述操作指令在所述第一设备上执行对应的操作。
6.如权利要求1所述的远程设备访问方法,其特征在于,所述屏幕截图的帧率为20~35帧/秒。
7.一种用于远程设备访问的第一设备,其特征在于,包括:
远程访问模块,其接收来自第二设备的远程访问命令以在所述第一设备和所述第二设备之间建立远程访问连接,所述远程访问命令指示所述第二设备要获取所述第一设备的屏幕显示;
屏幕抓取模块,其抓取与所述第一设备的屏幕显示相对应的屏幕截图,所抓取的屏幕截图是图片格式的;以及
视频编码器,其从所述屏幕抓取模块接收屏幕截图并将所述屏幕截图从图片格式编码成视频格式以生成视频流数据,其中,对于抓取的第一张屏幕截图,将所述第一张屏幕截图进行独立编码,以生成与所述第一张屏幕截图对应的视频流数据;对于抓取的第N张屏幕截图,将所述第N张屏幕截图与所述第N张屏幕截图的参考帧进行联合编码,以生成与所述第N张屏幕截图对应的视频流数据,所述参考帧为先前的、与所述第N张屏幕截图接近或局部相似的屏幕截图,N为大于1的正整数;以及
传输模块,其将所述视频流数据传送给第二设备以供在所述第二设备上呈现所述第一设备的屏幕显示。
8.如权利要求7所述的第一设备,其特征在于,所述视频编码器在接收到与第一设备的屏幕显示相对应的一张新屏幕截图时,将该新屏幕截图与先前的屏幕截图进行联合编码,以生成与该新屏幕截图相对应的视频流数据,并将与该新屏幕截图相对应的视频流数据传送给第二设备。
9.如权利要求7所述的第一设备,其特征在于,所述屏幕抓取模块根据网络状况、来自所述第二设备的指令、和所述第一设备的屏幕显示的动态性中的至少一者来调整抓取所述屏幕截图的帧率和/或分辨率。
10.如权利要求7所述的第一设备,其特征在于,所述传输模块接收来自所述第二设备的操作指令,所述第一设备还包括:
操作模块,其根据所述操作指令在所述第一设备上执行对应的操作。
11.如权利要求7所述的第一设备,其特征在于,所述屏幕截图的帧率为20~35帧/秒。
12.一种由服务器执行的远程设备访问方法,其特征在于,包括:
在服务器处从第二设备接收远程访问命令以在第一设备和所述第二设备之间建立远程访问连接,所述远程访问命令指示所述第二设备要获取第一设备的屏幕显示;
将所述远程访问命令传送给所述第一设备;
从所述第一设备接收与所述第一设备的屏幕显示相对应的屏幕截图,所述屏幕截图是图片格式的;
将所述屏幕截图从图片格式编码成视频格式以生成视频流数据,其中,对于接收的第一张屏幕截图,将所述第一张屏幕截图进行独立编码,以生成与所述第一张屏幕截图对应的视频流数据;对于接收的第N张屏幕截图,将所述第N张屏幕截图与所述第N张屏幕截图的参考帧进行联合编码,以生成与所述第N张屏幕截图对应的视频流数据,所述参考帧为先前的、与所述第N张屏幕截图接近或局部相似的屏幕截图,N为大于1的正整数;以及
将所述视频流数据从所述服务器传送给第二设备以供在所述第二设备上呈现所述第一设备的屏幕显示。
13.如权利要求12所述的远程设备访问方法,其特征在于,还包括:
在从所述第一设备接收到与第一设备的屏幕显示相对应的一张新屏幕截图时,将该新屏幕截图与先前的屏幕截图进行联合编码,以生成与该新屏幕截图相对应的视频流数据,并将与该新屏幕截图相对应的视频流数据传送给第二设备。
14.如权利要求12所述的远程设备访问方法,其特征在于,还包括:
在所述服务器处从所述第二设备接收操作指令;以及
将所述操作指令传送给所述第一设备,以使得所述第一设备根据所述操作指令来执行对应的操作。
15.如权利要求12所述的远程设备访问方法,其特征在于,所述屏幕截图的帧率为20~35帧/秒。
16.一种用于远程设备访问的服务器,其特征在于,包括:
传输模块,其从第二设备接收远程访问命令以在第一设备和所述第二设备之间建立远程访问连接,所述远程访问命令指示所述第二设备要获取第一设备的屏幕显示,所述传输模块将所述远程访问命令传送给所述第一设备并从所述第一设备接收与所述第一设备的屏幕显示相对应的屏幕截图,所述屏幕截图是图片格式的;
视频编码器,其从所述传输模块接收所述屏幕截图并将所述屏幕截图从图片格式编码成视频格式以生成视频流数据,其中,对于接收的第一张屏幕截图,将所述第一张屏幕截图进行独立编码,以生成与所述第一张屏幕截图对应的视频流数据;对于接收的第N张屏幕截图,将所述第N张屏幕截图与所述第N张屏幕截图的参考帧进行联合编码,以生成与所述第N张屏幕截图对应的视频流数据,所述参考帧为先前的、与所述第N张屏幕截图接近或局部相似的屏幕截图,N为大于1的正整数,
其中所述传输模块将所述视频流数据从所述服务器传送给第二设备以供在所述第二设备上呈现所述第一设备的屏幕显示。
17.如权利要求16所述的服务器,其特征在于,所述视频编码器在接收到与第一设备的屏幕显示相对应的一张新屏幕截图时,将该新屏幕截图与先前的屏幕截图进行联合编码,以生成与该新屏幕截图相对应的视频流数据,并将与该新屏幕截图相对应的视频流数据传送给第二设备。
18.如权利要求16所述的服务器,其特征在于,所述传输模块接收来自所述第二设备的操作指令,并将所述操作指令传送给所述第一设备,以使得所述第一设备根据所述操作指令来执行对应的操作。
19.如权利要求16所述的服务器,其特征在于,所述屏幕截图的帧率为20~35帧/秒。
20.一种由第二设备执行的远程设备访问方法,其特征在于,包括:
在第二设备处生成并传送远程访问命令以在第一设备和所述第二设备之间建立远程访问连接,所述远程访问命令指示所述第二设备要获取第一设备的屏幕显示;
在第二设备处接收来自第一设备的视频流数据,所述视频流数据是通过将与第一设备的屏幕显示相对应的屏幕截图从图片格式编码成视频格式来生成的,其中,与第一张屏幕截图对应的视频流数据是通过将所述第一张屏幕截图进行独立编码生成的,与第N张屏幕截图对应的视频流数据是通过将所述第N张屏幕截图与所述第N张屏幕截图的参考帧进行联合编码生成的,所述参考帧为先于所述第N张屏幕截图的、与所述第N张屏幕截图接近或局部相似的屏幕截图,N为大于1的正整数;
解码所述视频流数据以生成图片格式的屏幕截图;以及
在第二设备上呈现所述屏幕截图。
21.如权利要求20所述的远程设备访问方法,其特征在于,还包括:
在第二设备处接收到新的视频流数据时,将该新的视频流数据与先前的视频流数据进行联合解码,以生成新的屏幕截图并在第二设备上呈现该新的屏幕截图。
22.如权利要求20所述的远程设备访问方法,其特征在于,还包括:
在所述第二设备处接收来自用户的操作指令并将所述操作指令传送给所述第一设备以在所述第一设备上执行对应的操作。
23.一种用于远程设备访问的第二设备,其特征在于,包括:
远程访问模块,其生成远程访问命令以在第一设备和所述第二设备之间建立远程访问连接,所述远程访问命令指示所述第二设备要获取第一设备的屏幕显示;
传输模块,其传送所述远程访问命令并接收来自第一设备的视频流数据,所述视频流数据是通过将与第一设备的屏幕显示相对应的屏幕截图从图片格式编码成视频格式来生成的,其中,与第一张屏幕截图对应的视频流数据是通过将所述第一张屏幕截图进行独立编码生成的,与第N张屏幕截图对应的视频流数据是通过将所述第N张屏幕截图与所述第N张屏幕截图的参考帧进行联合编码生成的,所述参考帧为先于所述第N张屏幕截图的、与所述第N张屏幕截图接近或局部相似的屏幕截图,N为大于1的正整数;
视频解码器,其解码所述视频流数据以生成图片格式的屏幕截图;以及
呈现模块,其在第二设备上呈现所述屏幕截图。
24.如权利要求23所述的第二设备,其特征在于,所述视频解码器在接收到新的视频流数据时,将该新的视频流数据与先前的视频流数据进行联合解码,以生成新的屏幕截图并呈现该新的屏幕截图。
25.如权利要求23所述的第二设备,其特征在于,还包括:
操作捕捉模块,其在所述第二设备处接收来自用户的操作指令并经由所述传输模块将所述操作指令传送给所述第一设备以在所述第一设备上执行对应的操作。
26.一种远程设备访问系统,其特征在于,包括:
处理器;以及
用于存储处理器可执行指令的存储器,
其中所述处理器执行所述处理器可执行指令以实现如权利要求1-6、12-15、20-22中任一项所述的远程设备访问方法。
CN201910626703.8A 2019-07-11 2019-07-11 远程设备访问方法和装置 Active CN110430467B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910626703.8A CN110430467B (zh) 2019-07-11 2019-07-11 远程设备访问方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910626703.8A CN110430467B (zh) 2019-07-11 2019-07-11 远程设备访问方法和装置

Publications (2)

Publication Number Publication Date
CN110430467A CN110430467A (zh) 2019-11-08
CN110430467B true CN110430467B (zh) 2021-08-24

Family

ID=68409250

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910626703.8A Active CN110430467B (zh) 2019-07-11 2019-07-11 远程设备访问方法和装置

Country Status (1)

Country Link
CN (1) CN110430467B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111866143A (zh) * 2020-07-22 2020-10-30 京东数字科技控股股份有限公司 一种远程数据传输方法、装置及监控系统
CN112383775A (zh) * 2020-11-10 2021-02-19 福建多多云科技有限公司 一种基于云手机的视频数据传输方法
CN112929704B (zh) * 2021-01-26 2023-06-30 游密科技(深圳)有限公司 数据传输方法、装置、电子设备以及存储介质
CN115037732B (zh) * 2022-06-01 2024-04-23 中国电力科学研究院有限公司 通过流媒体进行远程真机调试的方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103414751A (zh) * 2013-07-16 2013-11-27 广东工业大学 一种pc屏幕内容分享互动控制方法
CN108174214A (zh) * 2017-12-08 2018-06-15 重庆邮电大学 一种基于屏幕内容视频编码的远程桌面共享方法
CN109918032A (zh) * 2017-12-11 2019-06-21 卓望数码技术(深圳)有限公司 一种智能移动设备间屏幕共享方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9525838B2 (en) * 2009-08-10 2016-12-20 Sling Media Pvt. Ltd. Systems and methods for virtual remote control of streamed media

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103414751A (zh) * 2013-07-16 2013-11-27 广东工业大学 一种pc屏幕内容分享互动控制方法
CN108174214A (zh) * 2017-12-08 2018-06-15 重庆邮电大学 一种基于屏幕内容视频编码的远程桌面共享方法
CN109918032A (zh) * 2017-12-11 2019-06-21 卓望数码技术(深圳)有限公司 一种智能移动设备间屏幕共享方法和系统

Also Published As

Publication number Publication date
CN110430467A (zh) 2019-11-08

Similar Documents

Publication Publication Date Title
CN110430467B (zh) 远程设备访问方法和装置
KR101471366B1 (ko) 단말기에 따른 적응적 화면 가상화 방법 및 시스템
JP7072677B2 (ja) 仮想シーンのシーン画像を送信するための方法及び装置、コンピュータデバイス並びにコンピュータ読み取り可能記憶媒体
JP6288594B2 (ja) デスクトップクラウドベースのメディア制御方法およびデバイス
US20160249106A1 (en) Remote Control of a Mobile Device
CN108337560B (zh) 用于在web浏览器上播放媒体的媒体重放设备和媒体服务设备
CN111221491A (zh) 交互控制方法及装置、电子设备、存储介质
JP6467503B2 (ja) クラウドストリーミングサービスシステム、メモリボトルネックを防止するためのデータ圧縮方法及びそのための装置
CN109302637B (zh) 图像处理方法、图像处理装置和电子设备
US9344678B2 (en) Information processing apparatus, information processing method and computer-readable storage medium
US11843653B2 (en) Remote device infrastructure
KR101942269B1 (ko) 웹 브라우저에서 미디어를 재생하고 탐색하는 장치 및 방법
CN110945871A (zh) 针对屏幕数据的有效帧内编码
CN106101794A (zh) 一种虚拟桌面视频数据的处理方法、装置及系统
CN113973224A (zh) 媒体信息的传输方法、计算设备及存储介质
CN112543348A (zh) 远程录屏方法、装置、设备及计算机可读存储介质
US20140297720A1 (en) Client apparatus, server apparatus, multimedia redirection system, and method thereof
JP5230401B2 (ja) 表示制御装置、画像処理装置
CN202799017U (zh) 智能电视控制系统以及智能电视测试系统
CN112422961A (zh) 数据传输方法、装置、显示设备及计算机可读存储介质
Tamm et al. Plugin free remote visualization in the browser
US11650735B1 (en) Accessibility feature in remote device infrastructure
CN104427334A (zh) 数据处理方法、图像演示方法、数据处理装置和演示设备
TWI823146B (zh) 用於即時mr互動應用之邊緣渲染運算方法及系統
JP2015076010A (ja) 端末装置、シンクライアントシステム、表示方法および表示プログラム

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200921

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200921

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

GR01 Patent grant
GR01 Patent grant