CN110012003A - 一种云应用抓屏方法和装置 - Google Patents
一种云应用抓屏方法和装置 Download PDFInfo
- Publication number
- CN110012003A CN110012003A CN201910251978.8A CN201910251978A CN110012003A CN 110012003 A CN110012003 A CN 110012003A CN 201910251978 A CN201910251978 A CN 201910251978A CN 110012003 A CN110012003 A CN 110012003A
- Authority
- CN
- China
- Prior art keywords
- video card
- target application
- grabbing
- screen
- cloud platform
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- 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/10—Protocols in which an application is distributed across nodes in the network
-
- 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/131—Protocols for games, networked simulations or virtual reality
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种云应用抓屏方法和装置,所述方法包括:云平台获取目标应用程序生成的目标应用画面,将所述目标应用画面存储至显卡缓存中;云平台通过显卡内置的抓屏工具从所述显卡缓存中抓取所述目标应用画面,并通过所述抓屏工具对所述目标应用画面进行编码;云平台获取所述编码后的目标应用画面,并将所述编码后的目标应用画面发送至终端。采用本发明不仅可以有效提高抓屏效率,进而有效提高响应速度,提高用户体验。同时,还可以有效减少系统的CPU资源和内存资源的占用率。
Description
技术领域
本发明涉及云技术领域,尤其涉及一种云应用抓屏方法和装置。
背景技术
随着基础网络建设的逐渐完善、计算机硬件技术的快速升级以及流媒体传输技术的不断发展,云游戏已成为当前的热门游戏模式。在云游戏模式下,用户可以通过终端触发云游戏平台运行游戏程序,云游戏平台再将游戏画面反馈给终端进行显示。
具体来说,云服务商可以将游戏开发商提供的游戏预先部署在云平台中。云平台可以基于游戏程序的执行逻辑,结合终端发送的操作信息生成游戏画面,并将游戏画面存储在系统缓存中。之后,云平台可以调用系统接口从上述系统缓存中抓取游戏画面,并将抓取的游戏画面传输至云平台的编码单元进行存储。然后,云平台可以通过编码单元对存储的游戏画面进行编码,并将编码后的游戏画面反馈至终端进行显示。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
由于云平台从系统缓存中抓取的游戏画面的数据量较大,所以在上述处理过程中游戏画面的存储和传输的数据量也较大,进而导致抓屏效率较低,且占用的CPU资源和内存资源较多。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种云应用抓屏方法和装置。所述技术方案如下:
第一方面,提供了一种云应用抓屏方法,所述方法包括:
云平台获取目标应用程序生成的目标应用画面,将所述目标应用画面存储至显卡缓存中;
所述云平台通过显卡内置的抓屏工具从所述显卡缓存中抓取所述目标应用画面,并通过所述抓屏工具对所述目标应用画面进行编码;
所述云平台获取所述编码后的目标应用画面,并将所述编码后的目标应用画面发送至终端。
可选的,所述云平台通过显卡内置的抓屏工具从所述显卡缓存中抓取所述目标应用画面之前,还包括:
云平台安装内置有所述抓屏工具的显卡的驱动程序,通过所述驱动程序启动所述抓屏工具,并将所述抓屏工具的句柄加载至所述云平台的操作系统。
可选的,所述将所述抓屏工具的句柄加载至所述云平台的操作系统之后,还包括:
所述云平台通过所述抓屏工具的句柄创建抓屏上下文,并配置所述抓屏上下文的抓屏区域和编码参数;
所述云平台通过显卡内置的抓屏工具从所述显卡缓存中抓取所述目标应用画面,并通过所述抓屏工具对所述目标应用画面进行编码,包括:
所述云平台通过所述显卡内置的抓屏工具的句柄,在所述抓屏上下文中基于所述抓屏区域从所述显卡缓存中抓取所述目标应用画面;
所述云平台通过所述显卡内置的抓屏工具的句柄,在所述抓屏上下文中基于所述编码参数对所述目标应用画面进行编码。
可选的,所述云平台通过显卡内置的抓屏工具从所述显卡缓存中抓取所述目标应用画面,包括:
所述云平台按照所述显卡的帧率通过所述显卡内置的抓屏工具从所述显卡缓存中抓取所述目标应用画面。
可选的,所述云平台通过显卡内置的抓屏工具从所述显卡缓存中抓取所述目标应用画面,包括:
所述云平台获取内置有抓屏工具的显卡的资源实时占用率,并确定所述资源实时占用率是否小于预设占用率;
如果是,所述云平台则通过显卡内置的抓屏工具从所述显卡缓存中抓取所述目标应用画面,否则调用系统接口从系统缓存中抓取所述目标应用画面。
可选的,所述通过所述抓屏工具对所述目标应用画面进行编码之后,还包括:
所述云平台将所述编码后的目标应用画面存储在所述抓屏工具的缓存区域;
所述将所述编码后的目标应用画面发送至终端,包括:
所述云平台从所述抓屏工具的缓存区域获取所述编码后的目标应用画面,并通过网卡将所述编码后的目标应用画面发送至所述终端。
第二方面,提供了一种云应用抓屏装置,所述装置包括获取模块、处理模块和发送模块,其中:
所述获取模块,用于获取目标应用程序生成的目标应用画面,将所述目标应用画面存储至显卡缓存中;
所述处理模块,用于通过显卡内置的抓屏工具从所述显卡缓存中抓取所述目标应用画面,并通过所述抓屏工具对所述目标应用画面进行编码;
所述发送模块,用于获取所述编码后的目标应用画面,并将所述编码后的目标应用画面发送至终端。
可选的,所述装置还包括加载模块,用于:
安装内置有所述抓屏工具的显卡的驱动程序,通过所述驱动程序启动所述抓屏工具,并将所述抓屏工具的句柄加载至所述云平台的操作系统。
可选的,所述装置还包括配置模块,用于:
通过所述抓屏工具的句柄创建抓屏上下文,并配置所述抓屏上下文的抓屏区域和编码参数;
所述处理模块,还用于:
通过所述显卡内置的抓屏工具的句柄,在所述抓屏上下文中基于所述抓屏区域从所述显卡缓存中抓取所述目标应用画面;
通过所述显卡内置的抓屏工具的句柄,在所述抓屏上下文中基于所述编码参数对所述目标应用画面进行编码。
可选的,所述处理模块,用于:
按照所述显卡的帧率通过所述显卡内置的抓屏工具从所述显卡缓存中抓取所述目标应用画面。
可选的,所述装置还包括确定模块,用于:
获取内置有抓屏工具的显卡的资源实时占用率,并确定所述资源实时占用率是否小于预设占用率;
所述处理模块,还用于:
如果是,则通过显卡内置的抓屏工具从所述显卡缓存中抓取所述目标应用画面,否则调用系统接口从系统缓存中抓取所述目标应用画面。
可选的,所述处理模块,还用于:
将所述编码后的目标应用画面存储在所述抓屏工具的缓存区域;
所述发送模块,还用于:
从所述抓屏工具的缓存区域获取所述编码后的目标应用画面,并通过网卡将所述编码后的目标应用画面发送至所述终端。
第三方面,提供了一种云平台,所述云平台包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如第一方面所述的云应用抓屏方法。
第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如第一方面所述的云应用抓屏方法。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例中,云平台获取目标应用程序生成的目标应用画面,将所述目标应用画面存储至显卡缓存中;云平台通过显卡内置的抓屏工具从所述显卡缓存中抓取所述目标应用画面,并通过所述抓屏工具对所述目标应用画面进行编码;云平台获取所述编码后的目标应用画面,并将所述编码后的目标应用画面发送至终端。这样,一方面直接在内置有抓屏工具的显卡缓存中抓取应用画面,并通过显卡的抓屏工具直接在显卡内部对应用画面进行编码,可以有效提高抓屏效率,进而有效提高响应速度,提高用户体验;另一方面,直接从显卡缓存中抓取应用画面并直接在显卡内部进行编码,还可以有效减少系统的CPU资源和内存资源的占用率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种云应用抓屏方法流程图;
图2是本发明实施例提供的一种云应用抓屏方法的执行流程图;
图3是本发明实施例提供的一种云应用抓屏装置的结构示意图;
图4是本发明实施例提供的一种云平台的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种云应用抓屏方法,该方法的执行主体可以是云服务商提供的部署有大量应用程序的云平台。云平台可以安装有内置有抓屏工具的显卡及其对应的驱动程序。在提供云服务时,云平台中运行的应用程序可以基于终端发送的操作信息和应用程序的执行逻辑生成应用程序的应用画面,之后云平台的操作系统可以获取应用画面,并将应用画面交由显卡进行渲染显示。在此过程中,云平台可以通过显卡内置的抓屏工具在显卡内部进行应用画面的抓取和编码,再将编码后的应用画面发送至终端,以实现针对应用程序的云服务。上述云平台中可以包括处理器、存储器和收发器,处理器可以用于进行下述流程中的云应用抓屏方法,存储器可以用于存储下述处理过程中需要的数据及产生的数据,收发器可以用于接收和发送下述处理过程中的相关数据。
本实施例中所使用的显卡可为英伟达显卡,对应的抓屏工具可以为英伟达显卡内置的抓屏工具(可称为NvFBC),在本发明的其他实施例中,也可使用其他类型的显卡及其内置的抓屏工具来实现本发明实施例所提供的方法。
步骤101:云平台获取目标应用程序生成的目标应用画面,将目标应用画面存储至显卡缓存中。
在实施中,云平台可以安装大量应用程序,用户可以通过终端远程触发云平台运行目标应用程序,进而云平台可以将目标应用程序生成的应用画面实时传输给终端,以实现目标应用程序的云运行模式。以目标应用程序是云游戏为例,云平台在运行云游戏程序时,云游戏程序可以以设备描述表的形式生成游戏画面,即目标应用画面,之后云平台可以获取上述游戏画面,然后将游戏画面存储在显卡缓存中。
步骤102:云平台通过显卡内置的抓屏工具从显卡缓存中抓取目标应用画面,并通过抓屏工具对所述目标应用画面进行编码。
在实施中,云平台将目标应用画面存储在显卡缓存中之后,可以通过显卡内置的抓屏工具,从显卡缓存中抓取上述目标应用画面,通过上述显卡内置的抓屏工具在显卡内部直接对抓取的目标应用画面进行编码。
可选的,云平台抓取使用显卡内置抓屏工具抓取应用画面之前,需要先进行多步预处理,具体可以如下:云平台安装内置有抓屏工具的显卡的驱动程序,通过驱动程序启动抓屏工具,并将抓屏工具的句柄加载至云平台的操作系统。
在实施中,云服务商的技术人员可以预先在云平台中安装内置有抓屏工具的显卡的驱动程序。然后云平台可以通过该驱动程序启动上述抓屏工具,并将该抓屏工具句的柄加载到云平台的操作系统,如云平台可以调用LoadLibraryA将动态链接库文件所提供的抓屏工具的句柄加载到云平台的操作系统中。
可选的,云平台在将抓屏工具的句柄加载至操作系统之后,还可以进行如下处理:云平台通过抓屏工具的句柄创建抓屏上下文,并配置抓屏上下文的抓屏区域和编码参数;相应的,上述步骤102的具体处理可以如下:云平台通过显卡内置的抓屏工具的句柄,在抓屏上下文中基于抓屏区域从显卡缓存中抓取目标应用画面;云平台通过显卡内置的抓屏工具的句柄,在抓屏上下文中基于编码参数对目标应用画面进行编码。
在实施中,云平台在将显卡内置的抓屏工具的句柄加载到云应用平台的操作系统之后,可以通过该抓屏工具的句柄的创建接口,即NvFBC的句柄的create接口,创建抓屏上下文,并为该抓屏上下文配置抓屏区域和编码参数。然后,云平台可以通过抓屏工具的句柄的加载接口,即NvFBC的句柄的NvFBCHWEncSetUp接口,加载上述抓屏区域和编码参数以使上述设置生效。进而,云平台在抓取应用画面时,可以通过显卡内置的抓屏工具的句柄,在上述创建的抓屏上下文中调用抓屏工具的句柄的抓屏接口,即NvFBC的句柄的NvFBCHWEncGrabFrame接口,基于上述抓屏区域,从上述显卡缓存中按照桌面分辨率抓取目标应用画面,并将抓取的目标应用画面暂存在上述显卡内置的抓屏工具的缓存区域中。然后,云平台还可以通过上述显卡内置的抓屏工具的句柄,在上述抓屏上下文中调用抓屏工具的句柄的编码接口基于上述编码参数,对上述抓屏工具缓存区域的目标应用画面进行编码,并将编码后的目标应用画面暂存在上述显卡内置的抓屏工具的缓存区域中。
可选的,云平台可以按照显卡的帧率抓取目标应用画面,相应的,上述步骤102中抓取目标应用画面的处理可以如下:云平台按照显卡的帧率通过显卡内置的抓屏工具从显卡缓存中抓取目标应用画面。
在实施中,云平台可以按照显卡的帧率抓取目标应用画面。以显卡的帧率为每秒100帧为例,则云平台每隔10毫秒通过显卡内置的抓屏工具从显卡缓存中抓取一次应用画面,假设云平台首次通过显卡内置的抓屏工具从显卡缓存中抓取应用画面的时间为10:12:00.0,则云平台下一次通过显卡内置的抓屏工具从显卡缓存中抓取应用画面的抓取时间为10:12:00.10。
可选的,云平台可以根据显卡的资源实时占用率,确定是否通过显卡内置的抓屏工具抓取目标应用画面,相应的,上述步骤102中抓取目标应用画面的处理可以如下:云平台获取内置有抓屏工具的显卡的资源实时占用率,并确定资源实时占用率是否小于预设占用率;如果是,云应用平台则通过显卡内置的抓屏工具从显卡缓存中抓取目标应用画面,否则调用系统接口从系统缓存中抓取目标应用画面。
在实施中,考虑到上述内置有抓屏工具的显卡可能因负载过大而不能正常运行的问题,云平台可以在显卡的资源实时占用率较高时调用系统接口从系统缓存中抓取目标应用画面。具体的,云平台可以按照一定的周期,如每隔一分钟计算一次显卡的资源实时占用率,并对该资源实时占用率进行存储,从而云平台可以获取显卡的资源实时占用率,并根据显卡的资源实时占用率和预设的最高占用率(可称为预设占用率)确定是否通过显卡内置的抓屏工具抓取目标应用画面。以显卡的资源实时占用率为60%为例,假设预设占用率为65%,此时云平台可以确定显卡的资源实时占用率小于预设占用率,然后,云平台则可以通过显卡内置的抓屏工具从显卡缓存中抓取目标应用画面;假设预设占用率为55%,此时云平台可以确定显卡的资源实时占用率大于预设占用率,然后,云平台则可以调用系统接口从系统缓存中抓取目标应用画面,然后将抓取的目标应用画面传输至云平台的编码单元进行编码,再将编码后的目标应用画面反馈至终端进行显示。
步骤103:云平台获取编码后的目标应用画面,并将编码后的目标应用画面发送至终端。
在实施中,云平台通过上述抓屏工具对目标应用画面进行编码之后,可以获取上述编码后的目标应用画面,进而可以将该编码后的目标应用画面发送至终端进行显示,以响应用户的应用操作。
可选的,云平台可以从抓屏工具的缓存区域获取编码后的目标应用画面,相应的,上述步骤103的处理可以如下:云平台从抓屏工具的缓存区域获取编码后的目标应用画面,并通过网卡将编码后的目标应用画面发送至终端。
在实施中,显卡内置的抓屏工具中可以配置有缓存区域,该缓存区域可以用来存储抓屏工具从显卡缓存中抓取的应用画面,并用于支持抓屏工具对应用画面的编码处理。故而,抓屏工具从显卡缓存中抓取目标应用画面后,可以将目标应用画面存储在上述抓屏工具的缓存区域中,然后可以对目标应用画面进行编码,再将编码后的目标应用画面存储在抓屏工具的缓存区域中。进而,云平台可以从上述抓屏工具的缓存区域中获取上述编码后的目标应用画面。然后,云平台可以调用网卡将获取的编码后的目标应用画面发送至终端进行显示,以对用户的应用操作进行响应。
为了便于理解,下面给出一种本发明实施例提供的云应用抓屏方法完整的执行流程图,如图2所示,以上述目标应用程序为云游戏程序、对目标应用画面进行H264编码为例,首先,云平台可以安装上述英伟达显卡对应的驱动程序。然后,云平台可以调用显卡驱动程序启动上述NvFBC。
然后,云平台可以将NvFBC的句柄加载到操作系统中,通过调用该NvFBC的句柄的create接口创建抓屏上下文并配置上述抓屏区域和H264编码参数,并调用NvFBC的句柄的NvFBCHWEncSetUp接口使设置生效。
之后,云应用平台可以在抓屏上下文中调用NvFBC的句柄的NvFBCHWEncGrabFrame接口,基于上述抓屏区域从显卡缓存中抓取目标应用画面(即目标游戏画面),并基于上述H264编码参数对抓取的目标游戏画面进行编码,再将编码后的目标游戏画面存储在NvFBC缓存区域中。
然后,云平台可以从NvFBC缓存区域获取上述编码后的目标游戏画面,并通过网卡将该编码后的目标游戏画面发送至终端进行显示。
可以理解,本发明实施例提供的云应用抓屏方法也可以适用于其他应用程序,本实施例以上述应用程序为游戏程序进行说明,其他情况与之类似,不再一一赘述。
本发明实施例中,云平台获取目标应用程序生成的目标应用画面,将目标应用画面存储至显卡缓存中;云平台通过显卡内置的抓屏工具从显卡缓存中抓取目标应用画面,并通过抓屏工具对目标应用画面进行编码;云平台获取编码后的目标应用画面,并将编码后的目标应用画面发送至终端。这样,一方面直接在内置有抓屏工具的显卡缓存中抓取应用画面,并通过显卡的抓屏工具直接在显卡内部对应用画面进行编码,可以有效提高抓屏效率,进而有效提高响应速度,提高用户体验;另一方面,直接从显卡缓存中抓取应用画面并直接在显卡内部进行编码,还可以有效减少系统的CPU资源和内存资源的占用率。
基于相同的技术构思,本发明实施例还提供了一种云应用抓屏装置,如图3所示,所述装置包括获取模块301、处理模块302和发送模块303,其中:
所述获取模块301,用于获取目标应用程序生成的目标应用画面,将所述目标应用画面存储至显卡缓存中;
所述处理模块302,用于通过显卡内置的抓屏工具从所述显卡缓存中抓取所述目标应用画面,并通过所述抓屏工具对所述目标应用画面进行编码;
所述发送模块303,用于获取所述编码后的目标应用画面,并将所述编码后的目标应用画面发送至终端。
可选的,所述装置还包括加载模块,用于:
安装内置有所述抓屏工具的显卡的驱动程序,通过所述驱动程序启动所述抓屏工具,并将所述抓屏工具的句柄加载至所述云平台的操作系统。
可选的,所述装置还包括配置模块,用于:
通过所述抓屏工具的句柄创建抓屏上下文,并配置所述抓屏上下文的抓屏区域和编码参数;
所述处理模块302,还用于:
通过所述显卡内置的抓屏工具的句柄,在所述抓屏上下文中基于所述抓屏区域从所述显卡缓存中抓取所述目标应用画面;
通过所述显卡内置的抓屏工具的句柄,在所述抓屏上下文中基于所述编码参数对所述目标应用画面进行编码。
可选的,所述处理模块302,还用于:
按照所述显卡的帧率通过所述显卡内置的抓屏工具从所述显卡缓存中抓取所述目标应用画面。
可选的,所述装置还包括确定模块,用于:
获取内置有抓屏工具的显卡的资源实时占用率,并确定所述资源实时占用率是否小于预设占用率;
所述处理模块302,还用于:
如果是,则通过显卡内置的抓屏工具从所述显卡缓存中抓取所述目标应用画面,否则调用系统接口从系统缓存中抓取所述目标应用画面。
可选的,所述处理模块302,还用于:
将所述编码后的目标应用画面存储在所述抓屏工具的缓存区域;
所述发送模块303,还用于:
从所述抓屏工具的缓存区域获取所述编码后的目标应用画面,并通过网卡将所述编码后的目标应用画面发送至所述终端。
本发明实施例中,云平台获取目标应用程序生成的目标应用画面,将目标应用画面存储至显卡缓存中;云平台通过显卡内置的抓屏工具从显卡缓存中抓取目标应用画面,并通过抓屏工具对目标应用画面进行编码;云平台获取编码后的目标应用画面,并将编码后的目标应用画面发送至终端。这样,一方面直接在内置有抓屏工具的显卡缓存中抓取应用画面,并通过显卡的抓屏工具直接在显卡内部对应用画面进行编码,可以有效提高抓屏效率,进而有效提高响应速度,提高用户体验;另一方面,直接从显卡缓存中抓取应用画面并直接在显卡内部进行编码,还可以有效减少系统的CPU资源和内存资源的占用率。
需要说明的是:上述实施例提供的云应用抓屏装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的云应用抓屏装置与云应用抓屏方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图4是本发明实施例提供的云平台的结构示意图。该云平台400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器422(例如,一个或一个以上处理器)和存储器432,一个或一个以上存储应用程序442或数据444的存储介质430(例如一个或一个以上海量存储设备)。其中,存储器432和存储介质430可以是短暂存储或持久存储。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对云平台400中的一系列指令操作。更进一步地,中央处理器422可以设置为与存储介质430通信,在云平台400上执行存储介质430中的一系列指令操作。
云平台400还可以包括一个或一个以上电源426,一个或一个以上有线或无线网络接口450,一个或一个以上输入输出接口458,一个或一个以上键盘456,和/或,一个或一个以上操作系统441,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD等等。
云平台400可以包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行上述云应用抓屏的指令。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种云应用抓屏方法,其特征在于,所述方法包括:
云平台获取目标应用程序生成的目标应用画面,将所述目标应用画面存储至显卡缓存中;
所述云平台通过显卡内置的抓屏工具从所述显卡缓存中抓取所述目标应用画面,并通过所述抓屏工具对所述目标应用画面进行编码;
所述云平台获取所述编码后的目标应用画面,并将所述编码后的目标应用画面发送至终端。
2.根据权利要求1所述的方法,其特征在于,所述云平台通过显卡内置的抓屏工具从所述显卡缓存中抓取所述目标应用画面之前,还包括:
所述云平台安装内置有所述抓屏工具的显卡的驱动程序,通过所述驱动程序启动所述抓屏工具,并将所述抓屏工具的句柄加载至所述云平台的操作系统。
3.根据权利要求2所述的方法,其特征在于,所述将所述抓屏工具的句柄加载至所述云平台的操作系统之后,还包括:
所述云平台通过所述抓屏工具的句柄创建抓屏上下文,并配置所述抓屏上下文的抓屏区域和编码参数;
所述云平台通过显卡内置的抓屏工具从所述显卡缓存中抓取所述目标应用画面,并通过所述抓屏工具对所述目标应用画面进行编码,包括:
所述云平台通过所述显卡内置的抓屏工具的句柄,在所述抓屏上下文中基于所述抓屏区域从所述显卡缓存中抓取所述目标应用画面;
所述云平台通过所述显卡内置的抓屏工具的句柄,在所述抓屏上下文中基于所述编码参数对所述目标应用画面进行编码。
4.根据权利要求1所述的方法,其特征在于,所述云平台通过显卡内置的抓屏工具从所述显卡缓存中抓取所述目标应用画面,包括:
所述云平台按照所述显卡的帧率通过所述显卡内置的抓屏工具从所述显卡缓存中抓取所述目标应用画面。
5.根据权利要求1所述的方法,其特征在于,所述云平台通过显卡内置的抓屏工具从所述显卡缓存中抓取所述目标应用画面,包括:
所述云平台获取内置有抓屏工具的显卡的资源实时占用率,并确定所述资源实时占用率是否小于预设占用率;
如果是,所述云平台则通过显卡内置的抓屏工具从所述显卡缓存中抓取所述目标应用画面,否则调用系统接口从系统缓存中抓取所述目标应用画面。
6.根据权利要求1所述的方法,其特征在于,所述通过所述抓屏工具对所述目标应用画面进行编码之后,还包括:
所述云平台将所述编码后的目标应用画面存储在所述抓屏工具的缓存区域;
所述将所述编码后的目标应用画面发送至终端,包括:
所述云平台从所述抓屏工具的缓存区域获取所述编码后的目标应用画面,并通过网卡将所述编码后的目标应用画面发送至所述终端。
7.一种云应用抓屏装置,其特征在于,所述装置包括获取模块、处理模块、和发送模块,其中:
所述获取模块,用于获取目标应用程序生成的目标应用画面,将所述目标应用画面存储至显卡缓存中;
所述处理模块,用于通过显卡内置的抓屏工具从所述显卡缓存中抓取所述目标应用画面,并通过所述抓屏工具对所述目标应用画面进行编码;
所述发送模块,用于获取所述编码后的目标应用画面,并将所述编码后的目标应用画面发送至终端。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括加载模块,用于:
安装内置有所述抓屏工具的显卡的驱动程序,通过所述驱动程序启动所述抓屏工具,并将所述抓屏工具的句柄加载至所述云平台的操作系统。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括配置模块,用于:
通过所述抓屏工具的句柄创建抓屏上下文,并配置所述抓屏上下文的抓屏区域和编码参数;
所述处理模块,还用于:
通过所述显卡内置的抓屏工具的句柄,在所述抓屏上下文中基于所述抓屏区域从所述显卡缓存中抓取所述目标应用画面;
通过所述显卡内置的抓屏工具的句柄,在所述抓屏上下文中基于所述编码参数对所述目标应用画面进行编码。
10.根据权利要求7所述的装置,其特征在于,所述处理模块,用于:
按照所述显卡的帧率通过所述显卡内置的抓屏工具从所述显卡缓存中抓取所述目标应用画面。
11.根据权利要求7所述的装置,其特征在于,所述装置还包括确定模块,用于:
获取内置有抓屏工具的显卡的资源实时占用率,并确定所述资源实时占用率是否小于预设占用率;
所述处理模块,还用于:
如果是,则通过显卡内置的抓屏工具从所述显卡缓存中抓取所述目标应用画面,否则调用系统接口从系统缓存中抓取所述目标应用画面。
12.根据权利要求7所述的装置,其特征在于,所述处理模块,还用于:
将所述编码后的目标应用画面存储在所述抓屏工具的缓存区域;
所述发送模块,还用于:
从所述抓屏工具的缓存区域获取所述编码后的目标应用画面,并通过网卡将所述编码后的目标应用画面发送至所述终端。
13.一种云平台,其特征在于,所述云平台包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1-6任一项所述的云应用抓屏方法。
14.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1-6任一项所述的云应用抓屏方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2019102222593 | 2019-03-22 | ||
CN201910222259 | 2019-03-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110012003A true CN110012003A (zh) | 2019-07-12 |
CN110012003B CN110012003B (zh) | 2022-04-22 |
Family
ID=67168941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910251978.8A Active CN110012003B (zh) | 2019-03-22 | 2019-03-29 | 一种云应用抓屏方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110012003B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113207030A (zh) * | 2021-04-02 | 2021-08-03 | 苏州开心盒子软件有限公司 | 一种屏幕录制方法及装置、存储介质 |
CN115695857A (zh) * | 2022-12-29 | 2023-02-03 | 北京海誉动想科技股份有限公司 | 云应用的视频编码方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819449A (zh) * | 2012-07-04 | 2012-12-12 | 深圳市京华科讯科技有限公司 | 一种显卡重定向方法及系统 |
CN104660687A (zh) * | 2015-02-02 | 2015-05-27 | 上海视聪网络信息技术有限公司 | 虚拟桌面显示的实现方法和系统 |
EP3076630A4 (en) * | 2013-12-26 | 2016-11-02 | Huawei Tech Co Ltd | METHOD AND DEVICE FOR SENDING DATA IN A VDI ENVIRONMENT |
CN106648634A (zh) * | 2016-12-08 | 2017-05-10 | 武汉斗鱼网络科技有限公司 | 一种屏幕截屏的方法及装置 |
CN107729095A (zh) * | 2017-09-13 | 2018-02-23 | 深信服科技股份有限公司 | 图像处理方法、虚拟化平台及计算机可读存储介质 |
-
2019
- 2019-03-29 CN CN201910251978.8A patent/CN110012003B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819449A (zh) * | 2012-07-04 | 2012-12-12 | 深圳市京华科讯科技有限公司 | 一种显卡重定向方法及系统 |
EP3076630A4 (en) * | 2013-12-26 | 2016-11-02 | Huawei Tech Co Ltd | METHOD AND DEVICE FOR SENDING DATA IN A VDI ENVIRONMENT |
CN104660687A (zh) * | 2015-02-02 | 2015-05-27 | 上海视聪网络信息技术有限公司 | 虚拟桌面显示的实现方法和系统 |
CN106648634A (zh) * | 2016-12-08 | 2017-05-10 | 武汉斗鱼网络科技有限公司 | 一种屏幕截屏的方法及装置 |
CN107729095A (zh) * | 2017-09-13 | 2018-02-23 | 深信服科技股份有限公司 | 图像处理方法、虚拟化平台及计算机可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113207030A (zh) * | 2021-04-02 | 2021-08-03 | 苏州开心盒子软件有限公司 | 一种屏幕录制方法及装置、存储介质 |
CN115695857A (zh) * | 2022-12-29 | 2023-02-03 | 北京海誉动想科技股份有限公司 | 云应用的视频编码方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110012003B (zh) | 2022-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH08235091A (ja) | クライアント・ステーションへのアプリケーション送出方法及びシステム | |
CN105516086B (zh) | 业务处理方法及装置 | |
KR102589876B1 (ko) | 단계 지원 작업 흐름을 위한 방법 및 장치 | |
CN110694267A (zh) | 一种云游戏实现方法及装置 | |
CN106454354B (zh) | 一种avs2并行编码处理系统及方法 | |
CN113079216B (zh) | 一种云应用的实现方法、装置、电子设备及可读存储介质 | |
CN103873886B (zh) | 一种处理图像信息的方法、装置及系统 | |
CN110020046B (zh) | 一种数据抓取方法及装置 | |
KR102601576B1 (ko) | 단계 지원 작업 흐름을 위한 방법 및 장치 | |
CN108496198A (zh) | 一种图像处理方法及设备 | |
CN110012003A (zh) | 一种云应用抓屏方法和装置 | |
CN111200606A (zh) | 深度学习模型任务处理方法、系统、服务器及存储介质 | |
CN115248692A (zh) | 一种支持多种深度学习框架模型云端部署的装置及方法 | |
CN107092507A (zh) | 应用程序的换肤方法、装置及系统 | |
Lee et al. | iedge: An iot-assisted edge computing framework | |
CN109918140A (zh) | 一种云应用操作控制方法和装置 | |
US10033781B2 (en) | Streaming data on data processes | |
CN113556387A (zh) | 边缘网关控制方法及系统、装置、电子设备、存储介质 | |
CN112769788A (zh) | 计费业务数据处理方法、装置、电子设备及存储介质 | |
CN111190731A (zh) | 基于权重的集群任务调度系统 | |
CN115437810A (zh) | 渲染任务处理方法、装置、设备和介质 | |
EP3872630B1 (en) | Request processing method and apparatus, electronic device, and computer storage medium | |
CN117093292A (zh) | 云桌面的图像处理方法、装置、服务器和存储介质 | |
KR101932130B1 (ko) | 원격 디스플레이의 체감 품질을 향상하는 영상 처리 장치 및 방법 | |
CN114006902B (zh) | 云手机重启方法、装置、设备以及存储介质 |
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 |