数据处理方法及装置、计算机可读存储介质、终端与流程

文档序号:33752901发布日期:2023-04-18 13:39阅读:58来源:国知局
数据处理方法及装置、计算机可读存储介质、终端与流程

本发明实施例涉及数据处理领域,尤其涉及一种数据处理方法及装置、计算机可读存储介质、终端。


背景技术:

1、随着移动端的游戏越来越重度化,很多用户的终端(手机、电视等)的配置如图形处理器(graphics processing unit,gpu)等性能无法满足需求,在玩游戏时出现卡顿不流畅等问题。将游戏放在云端基本是未来的趋势。

2、然而,目前云端游戏主要采用虚拟机或者采用类似docker方案实现,其中docker为一种应用容器引擎。然而,目前采用虚拟机或者docker方案实现的云端游戏,所支持的并发路数少,且每路的成本较高。


技术实现思路

1、本发明实施例解决的技术问题是如何提高游戏的并发路数以及降低每路的成本。

2、为解决上述技术问题,本发明实施例提供一种数据处理方法,由边缘服务器执行,所述数据处理方法包括:当接收到游戏客户端发送的游戏启动请求时,为所述游戏客户端创建对应的进程;将动态链接库注入所述进程并启动所述动态链接库,以将钩子函数注入至所述进程,通过所述钩子函数对目标游戏所用到的系统api全部进行钩子操作,以接管所述系统api,所述系统api包括:画面api和/或音频api;对画面api进行接管后,采集画面数据,并对所述画面数据进行编码,得到编码后的视频数据;对音频api进行接管后,采集音频数据,并对所述音频数据进行音频编码,得到编码后的音频数据;将所述编码后的视频数据以及所述编码后的音频数据分发至所述游戏客户端,使得所述游戏客户端根据接收到的所述编码后的视频数据以及所述编码后的音频数据进行渲染并呈现。

3、可选的,所述系统api还包括控制方式api,所述方法还包括:对控制方式api进行接管后,获取所述游戏客户端通过触发各控制方式产生的控制指令,所述控制方式包括以下至少一种:键盘、手柄、鼠标;根据所述控制指令控制预先构造的虚拟控制方式执行对应的操作,响应于所述虚拟控制方式执行的操作,得到所述画面数据以及所述音频数据。

4、可选的,所述根据所述控制指令控制预先构造的底层虚拟控制方式执行对应的操作,包括:当所述游戏客户端所使用的操作系统与所述边缘服务器的操作系统不同时,根据预设的键值映射信息,将所述游戏客户端所使用的系统对应的键值映射至所述边缘服务器的操作系统对应的键值;结合映射至所述边缘服务器的操作系统对应的键值,根据所述控制指令控制所述虚拟控制方式执行对应的操作。

5、可选的,所述数据处理方法还包括:为所述游戏客户端创建对应的进程后,根据目标游戏的预配置控制方式,为所述进程创建相应数目及相应类型的虚拟控制方式;获取所述游戏客户端的用户标识,将所述用户标识与创建的虚拟控制方式进行绑定。

6、可选的,所述数据处理方法还包括:根据所述目标游戏的游戏类型确定所述目标游戏支持多人组队时,参与所述目标游戏的多个游戏客户端共用同一进程,在所述进程内,分别为每个游戏客户端创建相应数目及相应类型的虚拟控制方式;针对每个游戏客户端,根据各游戏客户端对应的用户标识,分别将各用户标识与对应的虚拟控制方式进行绑定。

7、可选的,所述数据处理方法还包括:根据所述目标游戏的游戏类型,当所述目标游戏支持观看直播时,将所述编码后的视频数据以及所述编码后的音频数据分发至参与观看直播的游戏客户端。

8、可选的,所述系统api还包括存档api,所述方法还包括:对存档api进行接管后,隔离存档路径,并将存档路径定位至指定位置。

9、可选的,所述将存档路径定位至指定位置,包括:将所述存档路径定位至nas。

10、可选的,所述对所述画面数据进行编码,得到编码后的视频数据,包括:每获取一帧画面数据,则对获取的画面数据进行编码,得到编码后的视频数据。

11、可选的,所述对所述画面数据进行编码,得到编码后的视频数据,包括:通过预设的画面api系统库共享gpu内存,将多种不同类型的画面api转换成指定类型的画面api;采用所述指定类型的画面api对应的渲染方式对所述画面数据进行编码,得到所述编码后的视频数据。

12、可选的,所述对所述音频数据进行音频编码,得到编码后的音频数据,包括:将所述目标游戏的声音渲染类型转换成指定声音渲染类型;基于创建的声音缓存通道环境,采用所述指定类型的声音渲染类型对所述音频数据进行音频编码,得到所述编码后的音频数据。

13、可选的,所述将所述编码后的视频数据以及所述编码后的音频数据分发至所述游戏客户端,包括:获取所述游戏客户端所支持的视频解码类型,采用所述游戏客户端所支持的视频解码类型对所述编码后的视频数据进行打包封装,采用所述游戏客户端支持的传输协议,将封装后的视频数据发送至所述游戏客户端;获取所述游戏客户端所支持的音频解码类型,采用所述游戏客户端所支持的音频解码类型对所述编码后的音频数据进行打包封装,采用所述游戏客户端支持的传输协议,将封装后的音频数据发送至所述游戏客户端。

14、可选的,采用如下方式确定所述边缘服务器:当检测到所述游戏客户端打开所述目标游戏时,各候选边缘服务器分别向所述游戏客户端发送测试数据,并记录各候选边缘服务器发送所述测试数据到达所述游戏客户端的时间;根据各候选边缘服务器发送所述测试数据到达所述游戏客户端的时间,确定各候选边缘服务器将所述测试数据传输至所述游戏客户端的数据传输耗时,选取数据传输耗时最短的候选边缘服务器作为所述游戏客户端对应的所述边缘服务器。

15、可选的,所述数据处理方法还包括:定期接收所述游戏客户端反馈的数据消费消息;将当前编码的帧数与所述数据消费消息中反馈的消费帧数进行差比;根据差比结果确定所述编码后的视频数据的分发情况。

16、可选的,所述根据差比结果确定所述视频数据的分发情况,包括:当差比大于设定第一阈值时,暂停向所述游戏客户端分发所述编码后的视频数据,直至所述差比不超过所述设定第一阈值,恢复向所述游戏客户端分发所述编码后的视频数据。

17、可选的,所述数据处理方法还包括:根据所述差比与设定第二阈值之间的关系,在对所述视频数据进行编码时,动态调整所述视频数据的编码方式、比特率以及分辨率中的至少一种。

18、本发明实施例还提供一种数据处理装置,包括:进程创建单元,用于当接收到游戏客户端发送的游戏启动请求时,为所述游戏客户端创建对应的进程;进程虚拟化单元,用于将动态链接库注入所述进程并启动所述动态链接库,以将钩子函数注入至所述进程,通过所述钩子函数对目标游戏所用到的系统api全部进行钩子操作,以接管所述系统api,所述系统api包括:画面api和/或音频api;视频编码单元,用于对画面api进行接管后,采集画面数据,并对所述画面数据进行编码,得到编码后的视频数据;音频编码单元,用于对音频api进行接管后,采集音频数据,并对所述音频数据进行音频编码,得到编码后的音频数据;分发单元,用于将所述编码后的视频数据以及所述编码后的音频数据分发至所述游戏客户端,使得所述游戏客户端根据接收到的所述编码后的视频数据以及所述编码后的音频数据进行渲染并呈现。

19、本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质为非易失性存储介质或非瞬态存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述任一种数据处理方法的步骤。

20、本发明实施例还提供一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述任一种数据处理方法的步骤。

21、与现有技术相比,本发明实施例的技术方案具有以下有益效果:

22、当接收到游戏客户端发送的游戏启动请求时,为所述游戏客户端创建对应的进程。同时将动态链接库注入所述进程并启动所述动态链接库,以将钩子函数注入至所述进程,通过所述钩子函数对目标游戏所用到的系统api全部进行钩子操作,以接管系统api。通过对画面api进行接管后,采集画面数据,并对所述画面数据进行编码,得到编码后的视频数据。对音频api进行接管后,采集音频数据,并对所述音频数据进行音频编码,得到编码后的音频数据。将所述编码后的视频数据以及所述编码后的音频数据分发至所述游戏客户端,使得所述游戏客户端根据接收到的所述编码后的视频数据以及所述编码后的音频数据进行渲染并呈现。在边缘服务器上,通过将钩子函数注入至所述进程,从而可以对系统api进行钩子操作,让目标游戏认为自身运行在一个正常的操作系统(如window os)上面,通过对系统api进行钩子操作,以采集游戏的音频数据和/或画面数据,并将采集到音频数据以及画面数据进行编码,并传输至游戏客户端即可。如此,可以有效地将降低性能损耗,基本上没有额外的性能损耗,从而可以提高游戏的并发路数以及降低每路的成本。此外,游戏客户端只需对收到的编码的视频数据以及所述编码后的音频数据进行渲染并呈现即可,游戏相关的数据处理均是在边缘服务器上实现,游戏客户端相当于充当一个播放器角色,故还可以降低对游戏客户端的配置性能要求。

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