CN113926185A - 一种数据处理方法、装置、设备及存储介质 - Google Patents

一种数据处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN113926185A
CN113926185A CN202111200195.0A CN202111200195A CN113926185A CN 113926185 A CN113926185 A CN 113926185A CN 202111200195 A CN202111200195 A CN 202111200195A CN 113926185 A CN113926185 A CN 113926185A
Authority
CN
China
Prior art keywords
game
target
cloud
video stream
live
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.)
Pending
Application number
CN202111200195.0A
Other languages
English (en)
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202111200195.0A priority Critical patent/CN113926185A/zh
Publication of CN113926185A publication Critical patent/CN113926185A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/85Providing additional services to players
    • A63F13/86Watching games played by other players
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/407Data transfer via internet
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/534Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/57Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of game services offered to the player
    • A63F2300/572Communication between players during game play of non game information, e.g. e-mail, chat, file transfer, streaming of audio and streaming of video

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请实施例公开了一种数据处理方法、装置、设备及存储介质,包括:确定与目标云端设备具有绑定关系的目标流代理服务,目标云端设备用于运行与第一对象相关联的云游戏;通过目标流代理服务向目标云端设备发送视频流获取请求,以使目标云端设备在为第一对象配置虚拟房间时,通过目标流代理服务返回游戏直播视频流,游戏直播视频流是目标云端设备在获取到第一对象触发的业务操控指令流时所生成的;获取游戏直播视频流的封装策略,基于封装策略确定游戏直播视频流对应的封装视频流,封装视频流用于通过内容分发服务下发至虚拟房间中的第二对象对应的观看终端。采用本申请实施例,可以实现大规模的直播能力,并降低云游戏在直播过程中的延迟。

Description

一种数据处理方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法、装置、设备及存储介质。
背景技术
在目标云游戏直播场景中,云玩用户可以在玩云游戏的过程中创建虚拟房间来进行直播。现有的云游戏直播服务架构中的运行云游戏的云服务器,需要拥有强大的图形运算和数据处理能力。这样,在云玩用户通过云玩终端触发业务操控指令流时,云服务可以根据云玩终端发送的业务操控指令流,对相应的游戏场景进行渲染,以得到用于下发至云玩用户和观看用户的音视频流。显然,对于云玩用户接收到的音视频流和观看用户接收到的音视频流而言,均是由同一云服务渲染得到。这意味着对于现有的云游戏直播服务架构而言,将存在用于运行云游戏的云服务器的运行负担过重的现象,从而使得云游戏直播场景受限于小规模的虚拟房间,且在直播过程中受限于用户的设备、平台等方面的配置,从而导致直播延迟较高。
发明内容
本申请实施例提供一种数据处理方法、装置、设备及存储介质,可以实现大规模的直播能力,并降低云游戏在直播过程中的延迟。
本申请实施例一方面提供一种数据处理方法,包括:
确定与目标云端设备具有绑定关系的目标流代理服务,目标云端设备用于运行与第一对象相关联的云游戏;
通过目标流代理服务向目标云端设备发送视频流获取请求,以使目标云端设备在为第一对象配置虚拟房间时,通过目标流代理服务返回与第一对象相关联的游戏直播视频流,游戏直播视频流是目标云端设备在获取到第一对象触发的业务操控指令流时所生成的;
获取游戏直播视频流的封装策略,基于封装策略确定游戏直播视频流对应的封装视频流,封装视频流用于通过内容分发服务下发至虚拟房间中的第二对象对应的观看终端。
本申请实施例一方面提供一种数据处理方法,包括:
通过与目标云端设备具有绑定关系的目标流代理服务,获取直播流服务发送的视频流获取请求,目标云端设备用于运行于第一对象相关联的云游戏;
在为第一对象配置虚拟房间时,确定与第一对象相关联的游戏直播视频流,游戏直播视频流是在获取到第一对象触发的业务操控指令流时所生成的;
将游戏直播视频流通过目标流代理服务返回至直播流服务,直播流服务用于获取游戏直播流的封装策略,且基于封装策略确定游戏直播视频流对应的封装视频流,封装视频流用于通过内容分发服务下发至虚拟房间中的第二对象对应的观看终端。
本申请实施例一方面提供一种数据处理装置,包括:
目标流代理服务确定模块,用于确定与目标云端设备具有绑定关系的目标流代理服务,目标云端设备用于运行与第一对象相关联的云游戏;
视频流获取请求发送模块,用于通过目标流代理服务向目标云端设备发送视频流获取请求,以使目标云端设备在为第一对象配置虚拟房间时,通过目标流代理服务返回与第一对象相关联的游戏直播视频流,游戏直播视频流是目标云端设备在获取到第一对象触发的业务操控指令流时所生成的;
封装视频流确定模块,用于获取游戏直播视频流的封装策略,基于封装策略确定游戏直播视频流对应的封装视频流,封装视频流用于通过内容分发服务下发至虚拟房间中的第二对象对应的观看终端。
其中,该方法由直播流服务器执行,直播流服务器中存储有与N个流代理服务器相关联的地址列表,N为正整数,一个流代理服务器对应一个地址,N个流代理服务器包含用于运行目标流代理服务的目标流代理服务器;
目标流代理服务器确定模块包括:
启动通知接收单元,用于基于直播流服务器与目标云端设备之间的通信关系,接收目标云端设备发送的启动通知,启动通知是目标云端设备基于目标云端设备的目标设备标识符所生成的;
候选流代理服务器获取单元,用于从N个流代理服务器中获取候选流代理服务器,且从地址列表中获取候选流代理服务器的地址;
业务查询请求发送单元,用于基于目标设备标识符生成业务查询请求,通过地址向候选流代理服务器发送业务查询请求,以使候选流代理服务器对目标设备标识符以及与候选流代理服务器所绑定的云端设备的候选设备标识符进行匹配,得到匹配结果;
目标流代理服务器确定单元,用于接收候选流代理服务器返回的匹配结果,在匹配结果指示匹配成功时,将候选流代理服务器作为与目标云端设备具有绑定关系的目标流代理服务器。
其中,方法由直播流服务器执行;
该装置还包括:
标识符获取模块,用于在接收到目标云端设备发送的启动通知时,获取启动通知中的游戏安全标识符以及目标设备标识符;
设备类型获取模块,用于基于目标设备标识符,获取目标云端设备的设备类型;
标识符校验模块,用于通过目标流代理服务,对游戏安全标识符进行校验,得到标识符校验结果;
映射关系建立模块,用于在标识符校验结果指示校验成功时,建立游戏安全标识符、目标设备标识符以及目标云端设备的设备类型之间的映射关系,映射关系用于通过数据库服务存储至与直播流服务器具有数据交互关系的数据库服务器。
其中,该设备类型获取模块包括:
设备查询请求生成单元,用于基于目标设备标识符,生成用于查询目标云端设备的设备类型的设备查询请求;
设备查询请求发送单元,用于将设备查询请求发送至数据库服务器,以使数据库服务器基于设备查询请求,获取目标设备标识符对应的目标云端设备的设备类型;
设备类型接收单元,用于接收数据库服务器返回的目标云端设备的设备类型。
其中,标识符校验模块包括:
校验标识符获取单元,用于通过目标流代理服务,获取目标云端设备所运行的云游戏的安全标识符,将获取到的安全标识符确定为校验安全标识符;
标识符比对单元,用于对游戏安全标识符与校验安全标识符进行比对,得到比对结果;
第一校验结果确定单元,用于若比对结果指示游戏安全标识符与校验安全标识符相匹配,则得到用于指示校验成功的标识符校验结果;
第二校验结果确定单元,用于若比对结果指示游戏安全标识符与校验安全标识符不匹配,则得到用于指示校验失败的标识符校验结果。
其中,内容分发服务用于部署在内容分发服务器上;
该装置还包括:
连接关系建立模块,用于在标识符校验结果指示校验成功时,建立直播流服务器与内容分发服务器之间的连接关系。
其中,该连接关系建立模块包括:
建立连接规则获取单元,用于在标识符校验结果指示校验成功时,获取通过互斥锁所保护的建立连接规则;
套接字变更单元,用于将与内容分发服务器建立的套接字由阻塞套接字变更为非阻塞套接字;
连接关系建立单元,用于基于非阻塞套接字以及建立连接规则,建立直播流服务器与内容分发服务器之间的连接关系。
其中,该装置还包括:
封装视频流发送模块,用于基于直播流服务器与内容分发服务器之间的连接关系,将封装视频流发送至内容分发服务器,以使内容分发服务器将封装视频流发送至第二对象对应的观看终端。
其中,该封装视频流确定模块包括:
封装策略获取单元,用于获取游戏直播流的封装策略,封装策略包括目标云端设备的设备类型以及传输协议;
解析处理单元,用于确定与设备类型相匹配的封装格式,基于封装格式对游戏直播视频流进行解析处理,得到原始游戏视频流;
封装处理单元,用于基于传输协议对原始游戏视频流进行封装处理,得到游戏直播视频流对应的封装视频流。
本申请实施例一方面提供一种数据处理装置,包括:
视频流获取请求接收模块,用于通过与目标云端设备具有绑定关系的目标流代理服务,获取直播流服务发送的视频流获取请求,目标云端设备用于运行于第一对象相关联的云游戏;
游戏直播视频流确定模块,用于在为第一对象配置虚拟房间时,确定与第一对象相关联的游戏直播视频流,游戏直播视频流是在获取到第一对象触发的业务操控指令流时所生成的;
游戏直播视频流返回模块,用于将游戏直播视频流通过目标流代理服务返回至直播流服务,直播流服务用于获取游戏直播流的封装策略,且基于封装策略确定游戏直播视频流对应的封装视频流,封装视频流用于通过内容分发服务下发至虚拟房间中的第二对象对应的观看终端。
其中,该装置还包括:
启动操控指令流获取模块,用于通过接入服务与推流服务,获取第一对象触发的启动操控指令流,启动操控指令流是第一对象在云玩终端的第一游戏界面上针对云游戏所触发的;
游戏启动视频流生成模块,用于基于启动操控指令流,将目标云端设备的业务状态确定为运行状态,且生成与云游戏相关联的游戏启动视频流,运行状态用于指示运行云游戏;
游戏启动视频流返回模块,用于通过接入服务以及推流服务,将游戏启动视频流返回至云玩终端,以使云玩终端将终端界面由第一游戏界面切换至第二游戏界面,且在第二游戏界面上显示游戏启动视频流对应的游戏画面帧。
其中,直播流服务器用于部署在直播流服务器上;
该装置还包括:
标识符分配模块,用于在接收到启动操控指令流时,为云游戏分配游戏安全标识符,游戏安全标识符是基于启动操控指令流所指示的启动时间戳、目标云端设备的机器地址标识符以及目标云端设备确定的随机参数所生成的;
启动通知生成模块,用于获取目标云端设备的目标设备标识符,基于游戏安全标识符以及目标设备标识符,生成用于指示云游戏启动的启动通知;
启动通知发送模块,用于基于直播流服务器与目标云端设备之间的通信关系,将启动通知发送至直播流服务器,以使直播流服务器确定与目标云端设备具有绑定关系的目标流代理服务。
本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;
处理器与存储器相连,其中,存储器用于存储计算机程序,计算机程序被处理器执行时,使得该计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例提供的方法。
在本申请实施例中,第一对象(即云玩用户)在使用云玩终端进行云游戏直播时,可以采用目标云端设备运行云游戏,以在接收到第一对象触发的业务操控指令流时,生成与第一对象相关联的游戏直播视频流。此外,在运行有直播流服务的计算机设备(即直播流服务器或流代理推流服务器)确定与目标云端设备具有绑定关系的目标流代理服务时,该运行有直播流服务的计算机设备可以通过目标流代理服务,获取到与第一对象相关联的游戏直播视频流,进而可以通过游戏直播视频流的封装策略,得到游戏直播视频流对应的封装视频流,以便于后续通过内容分发服务下发至虚拟房间中的第二对象对应的观看终端。由此可见,用于运行云游戏的计算机设备(即目标云端设备)与用于拉取游戏直播视频流的计算机设备(即直播流服务所部署的计算机设备)属于两个不同的计算机设备,而并非是同一个计算机设备,进而可以在云游戏直播场景下,实现大规模的直播能力,且在云游戏直播场景中降低了目标云端设备的运行负担,从而降低了云游戏在直播过程中的延迟。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构的结构示意图;
图2是本申请实施例提供的一种进行数据交互的场景示意图;
图3是本申请实施例提供的一种数据处理方法的流程示意图;
图4是本申请实施例提供的一种启动云游戏的场景示意图;
图5是本申请实施例提供的一种第二对象进入虚拟房间的场景示意图;
图6是本申请实施例提供的一种数据处理方法的流程示意图;
图7是本申请实施例提供的一种直播流服务的流程示意图;
图8是本申请实施例提供的一种数据处理装置的结构示意图;
图9是本申请实施例提供的一种数据处理装置的结构示意图;
图10是本申请实施例提供的一种计算机设备的示意图;
图11是本申请实施例提供的一种数据处理系统的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例中的云游戏服务架构涉及云技术(cloud technology),云计算(cloud computing)和云游戏(cloud gaming),可以应用于云游戏直播场景。其中,第一对象(例如,云玩用户)在自己进行游玩云游戏的同时,还可以通过创建虚拟房间,与其他进入该虚拟房间中第二对象(例如,观看用户)进行互动,从而增加了第一对象在云游戏直播过程中的代入感和成就感。
其中,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云计算是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
云游戏又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thin client)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端(即云玩终端),而是在云端服务器(即云端设备)中运行,并由云端服务器将游戏场景渲染为音视频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。
请参见图1,图1是本申请实施例提供的一种网络架构的结构示意图。如图1所示,该网络架构可以包括云玩终端110a、云端设备100Y、接入服务器1100F、推流服务器1200F、与云端设备100Y具有绑定关系的流代理服务器1300F、直播流服务器1400F、内容分发服务器1500F以及观看终端集群。其中,该观看终端集群可以包括一个或者多个观看终端,这里将不对观看终端的数量进行限制。如图1所示,该观看终端集群具体可以包括观看终端120a、观看终端120b、…、观看终端120n。其中,观看终端120a、观看终端120b、…、观看终端120n可以分别与上述内容分发服务器1500F进行网络连接,以便于每个观看终端可以通过该网络连接与内容分发服务器1500F进行网络交互。
其中,本申请实施例可以将云玩终端110a和观看终端集群中的每个观看终端均称之为用户终端,该用户终端均可以包括:智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端、智能电视等具有数据处理功能的智能终端。应当理解,用户终端均可以安装有目标应用(即应用客户端,例如,云游戏客户端)。该云游戏客户端(又称云游戏平台)中包括M个云游戏,这里的M为正整数,但这M个云游戏的游戏包均无需安装在用户终端中。
其中,这里的云玩终端110a可以为云玩用户对应的用户终端,这里的云玩用户可以在云游戏客户端中,启动M个云游戏中的任意一个云游戏,且该云玩用户还可以在玩云游戏的过程中,创建用于直播该云游戏的虚拟房间。其中,本申请实施例可以将云玩终端110a对应的云玩用户称之为第一对象。应当理解,该云玩终端110a无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力以及获取第一对象的操控指令流并发送给云端设备100Y的能力即可。例如,该云玩终端在获取到业务操控指令流或者启动操控指令流这样的操控指令流时,可以通过图1所示的接入服务器1100F和推流服务器1200F,发送给云端设备100Y,以使该云端设备100Y返回与第一对象相关联的音视频流。
其中,这里的云端设备100Y(即目标云端设备)可以为实际运行云游戏的计算机设备(例如,提供云计算服务的云服务器),该云端设备100Y的设备类型可以包括板卡类型、容器类型等。其中,板卡是指云游戏的主机设备,类似于单独的手机,表现为一个硬件主板。容器是指云游戏的主机设备,类似于单独的手机,通常由一个虚拟机划分多个容器,每个容器均有独立的操作系统以及软件运行环境。
其中,本申请实施例中的接入服务器1100F、推流服务器1200F、流代理服务器1300F、直播流服务器1400F以及内容分发服务器1500F均可以为运行有不同业务服务的计算机设备(例如,服务器)。可以理解的是,本申请实施例中的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器,在此不做限定。
可以理解的是,本申请实施例可以将接入服务和推流服务分别部署在单独的计算机设备上。比如,该推流服务器1200F可以为运行有推流服务(relaysvr)的计算机设备,这里的推流服务可以用于传输云端设备100Y的音视频流以及云玩用户的操控指令流。该接入服务器1100F可以为运行有接入服务(relayproxy)的计算机设备,这里的接入服务可以用于提供云游戏对外的同一接入,与对应的推流服务一同传输云端设备的音视频流和云玩用户的操控指令流。可选的,本申请实施例还可以将接入服务和推流服务共同部署在同一计算机设备,在此不做限定。其中,操控指令是指用户在玩云游戏过程中执行触发操作的触控事件。
可以理解的是,本申请实施例可以将流代理服务(streamsvr)和直播流服务(又称CDN直播流服务器,cdnlivesvr)分别部署在单独的计算机设备上。其中,本申请实施例可以将与云端设备100Y具有绑定关系的流代理服务称之为目标流代理服务。比如,该流代理服务器1300F可以为运行有目标流代理服务的计算机设备,这里的流代理服务器可以在云端设备100Y向云玩终端110a传输音视频流的同时,从云端设备100Y中拉取另一路音视频流进行直播。该直播流服务器1400F可以为运行有直播流服务的计算机设备,该直播流服务可以用于从流代理服务中获取用于进行直播的音视频流(即游戏直播视频流),进而可以通过封装策略中的传输协议(例如,实时消息传输协议),对游戏直播视频流进行封装处理,以将封装处理后的游戏直播视频流发送至内容分发服务器1500F。该传输协议可以实时消息传输协议(Real Time Messaging Protocol,简称RTMP协议)可以基于传输控制协议(Transmission Control Protocol,简称TCP,),是一个协议族,用于音视频流的传输。可选的,由于流代理服务用于回源合流,向外界输出一路裸音视频流,而直播流服务也可以用于回源合流,所有与云游戏直播场景相关联的音视频流都由直播流服务输出和管理,因此,本申请实施例还可以将流代理服务和直播流服务进行合并处理,得到对外提供的一个统一的流代理推流服务,进而可以将流代理推流服务部署在某一计算机设备(即流代理推流服务器)上,即本申请实施例可以将流代理服务和直播流服务共同部署在同一计算机设备,在此不做限定。
其中,内容分发服务器1500F可以为运行有内容分发服务(又称云直播服务)的计算机设备,该内容分发服务可以将封装后的游戏直播视频流通过CDN分发出去。其中,CDN(Content Delivery Network)是指内容分发网络,也称为内容传送网络,构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。可以理解的是,推流端(即部署有流代理服务的计算机设备)可以通过RTMP协议向内容分发服务器1500F推流,播放端(即观看终端)可以通过网页即时通信,播放低延迟的直播视频流。其中,这里的网页即时通信(Web Real-TimeCommunication,简称WebRTC)是一个支持网页浏览器进行实时语音对话或视频对话的应用程序接口(Application Programming Interface,简称API)。
如图1所示,这里的观看终端集群中的观看终端可以包括第二对象对应的观看终端,以及第三对象对应的观看终端,在此不做限定。可以理解的是,这里的第二对象与第一对象处于同一虚拟房间,即可以与第一对象在虚拟房间中进行互动。而该第三对象可以是指在第一对象结束直播后,从与第一对象关联的直播视频流的视频地址中进行观看的用户,而并非是处于虚拟房间中的用户。
应当理解,第一对象(即云玩用户)在使用云玩终端110a进行直播云游戏场景时,可以采用云端设备100Y运行云游戏,以在接收到第一对象触发的业务操控指令流时,生成游戏直播视频流。此外,由于云端设备100Y与目标流代理服务具有绑定关系,因此,运行有直播流服务的计算机设备(即直播流服务器或流代理推流服务器器)可以通过目标流代理服务,获取到与第一对象相关联的游戏直播视频流对应的封装视频流,以便于后续通过内容分发服务下发至观看终端。由此可见,用于运行云游戏的计算机设备(即云端设备100Y)与用于拉取游戏直播视频流的计算机设备(即直播流服务所部署的服务器)属于两个不同的计算机设备,而并非是同一个计算机设备,以至于在直播云游戏场景中降低了目标云端设备的运行负担,从而降低了云游戏在直播过程中的延迟。
为便于理解,进一步地,请参见图2,图2是本申请实施例提供的一种进行数据交互的场景示意图。如图2所示,本申请实施例中的云玩终端210a为第一对象(例如,云玩用户)在玩云游戏(例如,竞赛类游戏)时所使用的用户终端,该云玩终端210a可以为上述图1所对应实施例中的云玩终端110a。本申请实施例中的云端设备200Y可以用于运行与第一对象相关联的云游戏,该云端设备200Y可以为上述图1所对应实施例中的云端设备100Y。本申请实施例中的流代理推流服务器2000F可以运行有流代理推流服务的计算机设备,其中,这里的流代理推流服务是对流代理服务和直播流服务进行合并处理后所得到的。这里的流代理服务的数量可以为N个,N为正整数,这N个流代理服务中包括与云端设备200Y具有绑定关系的目标流代理服务。其中,一个流代理服务所绑定的云端设备的数量可以为一个,也可以为多个,这里将不对其进行限定。
如图2所示,第一对象在玩云游戏的过程中,可以在云玩终端210a执行触发操作,以使云玩终端210a生成与触发操作相关联的业务操控指令流。其中,这里的触发操作可以包括点击、长按等接触性操作,也可以包括语音、手势等非接触性操作,这里将不对其进行限定。进一步地,该云玩终端210a可以将业务操控指令流发送至云端设备200Y,以使该云端设备200Y生成与第一对象相关联的游戏直播视频流(例如,图2所示的游戏直播视频流21z)。此外,当第一对象在玩云游戏的过程中,可以针对云玩终端210a执行房间创建操作(例如,针对房间创建控件执行触发操作),以生成用于发送至云端设备200Y的房间创建指令流,进而使得该云端设备200Y为该第一对象配置虚拟房间。
应当理解,流代理推流服务器2000F在触发视频流获取机制时,可以从N个流代理服务中确定与云端设备200Y具有绑定关系的目标流代理服务。其中,这里的视频流获取机制的触发条件可以是指流代理推流服务器2000F接收云端设备200Y发送的启动通知(即用于指示云游戏启动的业务通知),也可以是指流代理推流服务器2000F接收云端设备200Y发送的房间配置通知(即为第一对象配置虚拟房间的业务通知),还可以是指流代理推流服务器2000F接收云端设备200Y发送的对象访问通知(即第二对象进入虚拟房间的业务通知),这里将不对其进行限定。
进一步地,该流代理推流服务器2000F可以通过目标流代理服务,向云端设备200Y发送视频流获取请求,以使云端设备200Y在为第一对象配置虚拟房间时,获取与第一对象相关联的游戏直播视频流21z。此时,该云端设备200Y可以通过目标流代理服务,将该游戏直播视频流21z返回至流代理推流服务器2000F。进一步地,该流代理推流服务器2000F可以获取该游戏直播视频流21z的封装策略,进而可以基于该封装策略,对游戏直播视频流21进行封装处理,以得到封装视频流(例如,图2所示的封装视频流22z)。其中,该封装视频流22z可以用于通过内容分发服务下发至与第一对象处于同一虚拟房间的第二对象对应的观看终端。
由此可见,用于运行云游戏的云端设备200Y与用于拉取游戏直播视频流的流代理推流服务器2000F属于两个不同的计算机设备,而并非是部署在同一计算机设备上,不仅可以实现大规模的直播能力,还可以降低云端设备200Y的运行负担,以至于降低云游戏在直播过程中的延迟。
其中,运行有直播流服务的计算机设备在确定与目标云端设备具有绑定关系的目标流代理服务之后,通过目标流代理服务获取目标云端设备返回的与第一对象相关联的游戏直播视频流的具体实现方式可以参见下述图3-图7所对应的实施例。
进一步地,请参见图3,图3是本申请实施例提供的一种数据处理方法的流程示意图。如图3所示,该方法可以由运行有直播流服务的计算机设备执行,该计算机设备可以为单独运行有直播流服务的直播流服务器(例如,上述图1所示的直播流服务器1300F),该计算机设备也可以为运行有流代理推理服务的流代理推流服务器(例如,上述图2所示的流代理推流服务器2000F),在此不做限定。其中,这里的流代理推流服务是对流代理服务和直播流服务进行合并处理后所得到的。为便于理解,本申请实施例以该方法由直播流服务器执行为例进行说明,该方法至少可以包括以下步骤S101-步骤S103:
步骤S101,确定与目标云端设备具有绑定关系的目标流代理服务。
其中,直播流服务器中存储有与N个流代理服务器相关联的地址列表,N为正整数,一个流代理服务器对应一个地址,N个流代理服务器包含用于运行目标流代理服务的目标流代理服务器。具体地,该直播流服务器在需要获取与第一对象相关联的游戏直播视频流时,需要事先从N个流代理服务器中确定与目标云端设备具有绑定关系的目标流代理服务器,即该直播流服务器在触发视频流获取机制时,可以从N个流代理服务器中确定与目标云端设备具有绑定关系的目标流代理服务器。这里的目标云端设备可以为用于运行与第一对象(例如,云玩用户)相关联的云游戏。
其中,这里的视频流获取机制的触发条件(例如,触发条件1)可以是指直播流服务器接收目标云端设备发送的启动通知(即用于指示云游戏启动的业务通知)。可选的,该视频流获取机制的触发条件(例如,触发条件2)可以是指直播流服务器接收目标云端设备发送的房间配置通知(即为第一对象配置虚拟房间的业务通知)。可选的,该视频流获取机制的触发条件(例如,触发条件3)可以是指直播流服务器接收目标云端设备发送的对象访问通知(即第二对象进入虚拟房间的业务通知),这里将不对其进行限定。
应当理解,该目标云端设备可以通过接入服务与推流服务,获取第一对象触发的启动操控指令流。其中,这里的启动操控指令流是第一对象在云玩终端的第一游戏界面上针对云游戏所触发的。进一步地,该目标云端设备可以基于启动操控指令流,将目标云端设备的业务状态确定为运行状态,且生成与云游戏相关联的游戏启动视频流。其中,该运行状态可以用于指示目标云端设备正在运行云游戏。此时,该目标云端设备可以通过接入服务以及推流服务,将游戏启动视频流返回至云玩终端,以使云玩终端将终端界面由第一游戏界面切换至第二游戏界面,且在第二游戏界面上显示游戏启动视频流对应的游戏画面帧。
可以理解的是,目标云端设备在接收到启动操控指令流时,还可以为云游戏分配游戏安全标识符(Security Identifiers,简称SID)。其中,这里的游戏安全标识符是基于启动操控指令流所指示的启动时间戳、目标云端设备的机器地址标识符以及目标云端设备确定的随机参数所生成的。进一步地,该目标云端设备可以获取目标云端设备的目标设备标识符,进而可以基于游戏安全标识符以及目标设备标识符,生成用于指示云游戏启动的启动通知。
为便于理解,进一步地,请参见图4,图4是本申请实施例提供的一种启动云游戏的场景示意图。如图4所示,本申请实施例中的云玩终端410a可以为第一对象(例如,对象A)在玩云游戏时所使用的用户终端,该云玩终端410a可以为上述图1所对应实施例中的云玩终端110a。本申请实施例中的云端设备400Y可以用于运行与对象A相关联的云游戏,该云端设备400Y可以为上述图1所对应实施例中的云端设备200Y。
如图4所示,对象A在需要玩云游戏时,可以针对云玩终端410a中的云游戏客户端执行触发操作,以使该云玩终端410a可以显示与M个云游戏相关联的第一游戏界面(例如,图4所示的游戏界面410J),其中,这里的M为正整数。如图4所示,游戏界面410J中的云游戏的数量可以以4个为例,具体可以包括云游戏1、云游戏2、云游戏3以及云游戏4。进一步地,对象A可以从游戏界面410J中的4个云游戏中选择一个云游戏(例如,云游戏4),即该对象A可以针对图4所示的控件41K(例如,与云游戏4相关联的“秒玩”控件)执行触发操作,从而使得云玩终端410a可以生成用于启动云游戏4的启动操控指令流(例如,图4所示的启动操控指令流4c)。进一步地,该云玩终端410a可以通过接入服务和推流服务,将启动操控指令流4c发送至图4所示的云端设备400Y。其中,可以理解的是,云玩终端410a可以将启动操控指令流4c发送至运行有接入服务的接入服务器,进而可以通过接入服务器将启动操控指令流4c传输至运行有推流服务的推流服务器,以使推流服务器将启动操控指令流4c发送至云端设备400Y。
此时,该云端设备400Y可以基于该启动操控指令流,将云端设备400Y的业务状态确定为运行状态,这里的运行状态可以用于指示云端设备400Y正在运行云游戏4。与此同时,该云端设备400Y还可以生成与云游戏4相关联的游戏启动视频流(例如,图4所示的游戏启动视频流40z)。进一步地,该云端设备400Y可以通过推流服务和接入服务将游戏启动视频流40z返回至云玩终端410a。其中,可以理解的是,云端设备400Y可以将游戏启动视频流40z发送至推流服务器,进而可以通过推流服务器将游戏启动视频流40z传输至接入服务器,以使接入服务器将游戏启动视频流40z返回至云玩终端410a。
应当理解,在云玩终端410a接收到游戏启动视频流40z时,该云玩终端410a可以将云玩终端410a的终端界面由游戏界面410J切换至第二游戏界面(例如,图4所示的游戏界面420J),进而可以在游戏界面420J上显示游戏启动视频流40z对应的游戏画面帧。其中,该游戏界面420J上还可以包括控件42K,该控件42K可以用于指示对象A创建虚拟房间的房间创建控件。
可以理解的是,云端设备400Y在接收到对象A发送的启动操控指令流4c时,还可以为云游戏4分配游戏安全标识符。其中,该云端设备400Y可以获取启动操控指令流4c所指示的启动时间戳。进一步地,该云端设备400Y可以获取云端设备400Y的机器地址标识符(例如,媒体存取控制位址),并为该云游戏4生成一个随机参数。其中,媒体存取控制位址(Media Access Control Address,简称MAC地址)也称为局域网地址(LAN Address),以太网地址(Ethernet Address)或物理地址(Physical Address),它是一个用来确认网络设备(即云端设备400Y)位置的位址。
此时,该云端设备400Y可以基于启动时间戳、机器地址标识符以及随机参数生成用于指示对象A本次玩云游戏4的通用唯一识别码,进而可以将该通用唯一识别码作为为云游戏4分配的游戏安全标识符。进一步地,该云端设备400Y还可以获取云端设备400Y的目标设备标识符,进而可以基于游戏安全标识符以及目标设备标识符,生成用于指示云游戏4启动的启动通知。
此外,当对象A在玩云游戏的过程中,可以针对游戏界面420J中的控件42K执行房间创建操作,以使云玩终端410a生成用于发送至云端设备400Y的房间创建指令流,进而该云玩终端410a可以通过接入服务和推流服务,将房间创建指令流发送至云端设备400Y,以使该云端设备400Y为该对象A配置虚拟房间。其中,云玩终端410a发送房间创建指令流的具体实施方式,可以参见上述云玩终端410a发送启动操控指令流的具体实施方式,这里将不再继续进行赘述。这样该云游戏客户端的其他对象在需要观看与对象A相关联的游戏直播视频流时,可以在其他对象对应的观看终端中针对与对象A相关联的虚拟房间执行触发操作,从而可以进入该对象A的虚拟房间。与此同时,云端设备400Y在接收到对象A触发的房间创建指令流时,可以生成用于指示为对象A创建虚拟房间的房间配置通知。
为便于理解,进一步地,请参见图5,图5是本申请实施例提供的一种第二对象进入虚拟房间的场景示意图。如图5所示,本申请实施例中的游戏界面510J可以为云游戏客户端的其他对象(例如,对象B)的终端界面所显示的第一游戏界面,即首页所在游戏界面。其中,该游戏界面510J中的显示区域5Q1(即热门接力房间所在显示区域)可以用于显示热度参数较高的虚拟房间。由于显示区域5Q1的显示界面有限,因此,对象B可以针对显示区域5Q1执行触发操作(例如,左滑操作)来查看其他虚拟房间。
可以理解的是,对象B可以在云游戏客户端中确定第一对象(例如,对象A)的虚拟房间,进而可以进入该第一对象的虚拟房间,以获取与对象A相关联的游戏直播视频流。若目标云端设备为对象A配置的虚拟房间属于第一房间类型(例如,非热门房间类型),则游戏界面510J的显示区域5Q1中显示的游戏房间不包括对象A的虚拟房间。此时,对象B可以针对游戏界面510J中的控件51K(例如,“房间”控件)执行触发操作,从而对象B对应的用户终端将终端界面由游戏界面510J切换至游戏界面520J。其中,游戏界面520J的显示区域5Q2中可以用于显示与云游戏客户端相关联的所有虚拟房间。在对象B需要进入对象A的虚拟房间,以虚拟房间中的观看用户时,对象B可以针对显示区域5Q2所显示的对象A的虚拟房间执行触发操作,进而使得对象B的用户终端生成房间进入指令流。此时,对象B的用户终端可以通过接入服务和推流服务,将房间进入指令流发送至目标云端设备,以使目标云端设备生成用于指示对象B进入对象A的虚拟房间的对象访问通知。其中,本申请实施例可以将进入对象A的虚拟房间的对象B称之为该虚拟房间中的第二对象,将对象B的用户终端称之为第二对象对应的观看终端。进一步地,在对象B成功进入至对象A的虚拟房间时,该对象B对应的观看终端可以直接将终端界面由游戏界面520J切换至游戏界面530J。
可选的,若目标云端设备为对象A配置的虚拟房间属于第二房间类型(例如,热门房间类型),则游戏界面510J的显示区域5Q1中显示的游戏房间可以包括对象A的虚拟房间。此时,对象B可以直接针对显示区域5Q1中的对象A的虚拟房间执行触发操作,从而可以进入该对象A的虚拟房间,以成为该虚拟房间中的观看用户。可以理解的是,在对象B成功进入至对象A的虚拟房间时,该对象B对应的观看终端可以直接将终端界面由游戏界面510J切换至游戏界面530J。
其中,游戏界面530J可以包括控件52K,这里的控件52K可以用于指示第二对象代替第一对象在云游戏中触发业务操控指令流。其中,游戏界面530J可以用于显示与对象A的虚拟房间相关联的显示数据。比如,游戏界面530J中的显示区域5Q3可以用于显示目标云端设备在获取到对象A触发的业务操控指令流时所产生的与云游戏相关联的音视频数据。游戏界面530J中的显示区域5Q4用于显示云端设备获取到的在对象A直播过程中,对象A与虚拟房间中的第二对象进行互动时所产生的音视频数据或者文本数据等。游戏界面530J中的显示区域5Q5中用于指示对象B输入文本数据或者音频数据等。
应当理解,为便于阐述,本申请实施例中的该直播流服务器触发的视频流获取机制可以以触发条件1为例,用以阐述直播流服务器从N个流代理服务器中确定与目标云端设备具有绑定关系的目标流代理服务器。其中,可以理解的是,由于直播流服务器与目标云端设备可以通过消息队列进行通信,因此,直播流服务器可以基于直播流服务器与目标云端设备之间的通信关系,接收目标云端设备发送的启动通知,以使直播流服务器可以确定与目标云端设备具有绑定关系的目标流代理服务器。
其中,流代理服务可以用于中转业务服务(例如,直播服务)以及与其所绑定的云端设备之间的网络请求和数据响应,并带有一定的回源收敛功能。比如,目标流代理服务不仅可以提供代理功能,即业务侧(观看终端)无需知道目标云端设备的存在,此外,该目标流代理服务还可以提供回源收敛功能,即多个业务方(例如,多个观看终端)请求游戏直播视频流,目标流代理服务仅需从云端设备100Y仅需提供一路视频流,以实现全局收敛,进而将获取到的这路视频流发送至直播流服务器,以使直播流服务器保存并下发当前这路视频流。
进一步地,该直播流服务器可以从N个流代理服务器中获取候选流代理服务器,且从地址列表中获取候选流代理服务器的地址,此时,该直播流服务器可以基于目标设备标识符生成业务查询请求,进而可以通过地址向候选流代理服务器发送业务查询请求,以使候选流代理服务器对目标设备标识符以及与候选流代理服务器所绑定的云端设备的候选设备标识符进行匹配,得到匹配结果。进一步地,该直播流服务器可以接收候选流代理服务器返回的匹配结果,在匹配结果指示匹配成功时,将候选流代理服务器作为与目标云端设备具有绑定关系的目标流代理服务器。
为便于理解,进一步地,请参见表1,表1是本申请实施例提供的一种与N个流代理服务器相关联的地址列表。其中,一个流代理服务器对应一个地址。
表1
流代理服务器 地址
流代理服务器F<sub>1</sub> 地址D<sub>1</sub>
流代理服务器F<sub>2</sub> 地址D<sub>2</sub>
流代理服务器F<sub>N</sub> 地址D<sub>N</sub>
如表1所示,流代理服务器F1对应的地址为地址D1,流代理服务器F2对应的地址为地址D2,依次类推,流代理服务器FN对应的地址为地址DN。可以理解的是,一个流代理服务器可以对应一个云端设备,即一个流代理服务器与一个云端设备具有绑定关系。可选的,一个流代理服务器还可以对应多个云端设备,即一个流代理服务器与多个云端设备中的每个云端设备分别具有绑定关系。其中,与流代理服务器具有绑定关系的云端设备的数量在此不做限定。比如,与流代理服务器F1具有绑定关系的云端设备可以包括:云端设备Y11、云端设备Y12以及云端设备Y13;与流代理服务器F2具有绑定关系的云端设备可以包括:云端设备Y21;…;与流代理服务器F3具有绑定关系的云端设备可以包括:云端设备YN1以及云端设备YN2
应当理解,本申请实施例中的直播流服务器可以从表1所示的N个流代理服务器中获取候选流代理服务器,比如,该直播流服务器可以将流代理服务器F1确定为候选流代理服务器,进而可以从地址列表中获取该候选流代理服务器的地址(例如,表1所示的地址D1)。可以理解的是,直播流服务器可以从目标云端设备发送的启动通知中,确定目标云端设备的目标设备标识符(例如,设备标识符S)。进一步地,该直播流服务器可以基于目标设备标识符,生成用于发送至流代理服务器F1的业务查询请求,进而可以通过地址D1向流代理服务器F1发送业务查询请求。
可以理解的是,流代理服务器F1在接收到业务查询请求时,可以确定与流代理服务器F1具有绑定关系的云端设备的候选设备标识符(例如,云端设备Y11的设备标识符S11、云端设备Y12的设备标识符S12、云端设备Y13的设备标识符S13),进而可以将业务查询请求中的目标设备标识符(例如,设备标识符S)与这3个候选设备标识符分别进行匹配,从而得到匹配结果。其中,若候选设备标识符中存在与业务查询请求中的目标设备标识符相匹配的候选设备标识符,则得到用于指示匹配成功的匹配结果。可选的,若候选设备标识符不存在与目标设备标识符相匹配的候选设备标识符,则得到用于指示匹配失败的匹配结果。
应当理解,该直播流服务器可以接收流代理服务器F1返回的匹配结果,在匹配结果指示匹配成功时,该直播流服务器可以将流代理服务器F1作为与目标云端设备具有绑定关系的目标流代理服务器。可选的,在匹配结果指示匹配失败时,该直播流服务器可以确定流代理服务器F1与目标云端设备不具有绑定关系,此时,该直播流服务器可以继续从N个流代理服务器中获取流代理服务器F2作为候选流代理服务器,进而可以查询流代理服务器F2所绑定的云端设备的候选设备标识符是否与目标设备标识符相匹配,以此类推,直到确定与目标云端设备具有绑定关系的目标流代理服务器。
步骤S102,通过目标流代理服务向目标云端设备发送视频流获取请求,以使目标云端设备在为第一对象配置虚拟房间时,通过目标流代理服务返回与第一对象相关联的游戏直播视频流。
具体地,直播流服务器在获取到与目标云端设备具有绑定关系的目标流代理服务器时,可以生成用于向目标云端设备发送的视频流获取请求。可以理解的是,在目标云端设备通过目标流代理服务器运行的目标流代理服务,接收到该视频流获取请求时,该目标云端设备可以在为第一对象配置虚拟房间时,确定与第一对象相关联的游戏直播视频流,进而可以通过该目标流代理服务,将游戏直播视频流返回至直播流服务器。
如图1所示,由于云端设备100Y与直播流服务器1400F可以通过消息队列进行通信,因此,直播流服务器1400f在接收到云端设备100Y发送的启动通知时,可以确定与云端设备100Y具有绑定关系的流代理服务器1300F。此时,该直播流服务器1400F可以通过流代理服务器1300F,将生成的视频流获取请求发送至云端设备100Y,进而使得云端设备100Y在为第一对象配置虚拟房间时,获取与第一对象相关联的原始游戏视频流。其中,这里的原始游戏视频流可以第一音视频流、第二音视频流以及文本数据流。其中,这里的第一音视频流可以包括云端设备100Y在获取到第一对象触发的业务操控指令流时所生成的与云游戏相关联的音视频流,这里的第二音视频流可以包括云端设备100Y获取到的在第一对象直播过程中,虚拟房间中的所有对象进行互动时所产生的音视频流。这里的文本数据流可以包括云端设备100Y获取到虚拟房间中的所有对象进行互动时所产生的文本数据。
可以理解的是,云端设备的设备类型不同,云端设备向直播流服务器返回的游戏直播视频流的封装格式就不同。比如,若云端设备100Y的设备类型为容器类型,则本申请实施例可以将该云端设备100Y对原始游戏视频流进行封装处理时所采用的封装格式称之为第一封装格式。若云端设备100Y的设备类型为板卡类型,则本申请实施例可以将该云端设备100Y对原始游戏视频流进行封装处理时所采用的封装格式称之为第二封装格式。其中,这里的第一封装格式不同于第二封装格式,可以理解的是,该第一封装格式与第二封装格式都保存有具有视频压缩格式(例如,H246)的视频数据以及具有高级音频解码格式(Advanced Audio Coding,简称AAC)的音频数据,也保存有音视频时间戳、音视频帧类型的等参数,但由于封装过程中各个参数的保存顺序不同,以至于导致封装格式存在差异。另外,第一封装格式还会增添一些冗余数据,例如,开头增加0000这样的字符串。
因此,该云端设备100Y在基于云端设备100Y的设备类型,对原始游戏视频流进行封装处理之后,能够得到与第一对象相关联的游戏直播视频流。此时,该云端设备100Y可以将游戏直播视频流发送至流代理服务器1300F,以使该流代理服务器1300F将游戏直播视频流返回至直播流服务器1400F。此外,该云端设备100Y在确定与第一对象相关联的游戏直播视频流时,还可以通过推流服务和接入服务,将游戏直播视频流返回至云玩终端110a。
步骤S103,获取游戏直播视频流的封装策略,基于封装策略确定游戏直播视频流对应的封装视频流。
具体地,该直播流服务器可以获取游戏直播流的封装策略。其中,这里的封装策略可以包括目标云端设备的设备类型以及传输协议(例如,RTMP协议)。应当理解,该直播流服务器可以确定与设备类型相匹配的封装格式,进而可以基于该封装格式对游戏直播视频流进行解析处理,以得到原始游戏视频流,此时,该直播视频流可以基于传输协议对原始游戏视频流进行封装处理,从而得到游戏直播视频流对应的封装视频流。其中,这里的封装视频流用于通过内容分发服务下发至虚拟房间中的第二对象对应的观看终端。
在本申请实施例中,第一对象(即云玩用户)在使用云玩终端进行云游戏直播时,可以采用目标云端设备运行云游戏,以在接收到第一对象触发的业务操控指令流时,生成与第一对象相关联的游戏直播视频流。此外,在运行有直播流服务的计算机设备(即直播流服务器或流代理推流服务器)确定与目标云端设备具有绑定关系的目标流代理服务时,该运行有直播流服务的计算机设备可以通过目标流代理服务,获取到与第一对象相关联的游戏直播视频流,进而可以通过游戏直播视频流的封装策略,得到游戏直播视频流对应的封装视频流,以便于后续通过内容分发服务下发至观看终端。由此可见,用于运行云游戏的计算机设备(即目标云端设备)与用于拉取游戏直播视频流的计算机设备(即直播流服务所部署的计算机设备)属于两个不同的计算机设备,而并非是同一个计算机设备,进而可以在云游戏直播场景下,实现大规模的直播能力,且在云游戏直播场景中降低了目标云端设备的运行负担,从而降低了云游戏在直播过程中的延迟。
进一步地,请参见图6,图6是本申请实施例提供的一种数据处理方法的流程示意图。如图6所示,该方法可以由第一对象对应的云玩终端、运行有云游戏的目标云端设备、运行有直播流服务的计算机设备交互执行,以及第二对象对应的观看终端。其中,该云玩终端可以为上述图1所对应实施例中的云玩终端110a,该目标云端设备可以为上述图1所对应实施例中的云端设备100Y。该运行有直播流服务的计算机设备可以为上述图1所对应实施例中的直播流服务器1300F,也可以为上述图2所对应实施例中的流代理推流服务器2000F,在此不做限定。该第二对象对应的观看终端可以为上述图1所对应实施例中的观看终端集群中的任意一个观看终端,例如,观看终端120a。该方法至少可以包括以下步骤S201-步骤S207:
步骤S201,第一对象的云玩终端在获取到第一对象针对云游戏触发的启动操控指令流时,通过接入服务和推流服务,将启动指令流发送至目标云端设备。
具体地,第一对象可以在云玩终端的第一游戏界面中,针对与云游戏相关联的控件执行触发操作,从而使得云玩终端可以生成用于启动云游戏的启动操控指令流。进一步地,该云玩终端可以将启动操控指令流发送至运行有接入服务的接入服务器,进而可以通过接入服务器将启动操控指令流传输至运行有推流服务的推流服务器,以使推流服务器将启动操控指令流发送至目标云端设备。
步骤S202,目标云端设备在接收到启动操控指令流时,生成用于指示云游戏启动的启动通知,将启动通知发送至运行有直播流服务的计算机设备。
具体地,目标云端设备在接收到启动操控指令流时,可以为云游戏分配游戏安全标识符。其中,这里的游戏安全标识符是基于启动操控指令流所指示的启动时间戳、目标云端设备的机器地址标识符以及目标云端设备确定的随机参数所生成的。进一步地,该目标云端设备可以获取目标云端设备的目标设备标识符,进而可以基于游戏安全标识符以及目标设备标识符,生成用于指示云游戏启动的启动通知。此时,该目标云端设备可以将启动通知发送至运行有直播流服务的计算机设备。
步骤S203,运行有直播流服务的计算机设备确定与目标云端设备具有绑定关系的目标流代理服务。
具体地,运行有直播流服务的计算机设备(例如,直播流服务器)中存储有与N个流代理服务器相关联的地址列表,N为正整数,一个流代理服务器对应一个地址,N个流代理服务器包含用于运行目标流代理服务的目标流代理服务器。具体地,该直播流服务器在需要获取与第一对象相关联的游戏直播视频流时,需要事先从N个流代理服务器中确定与目标云端设备具有绑定关系的目标流代理服务器,即该直播流服务器在触发视频流获取机制时,可以从N个流代理服务器中确定与目标云端设备具有绑定关系的目标流代理服务器。这里的目标云端设备可以为用于运行与第一对象(例如,云玩用户)相关联的云游戏。
步骤S204,运行有直播流服务的计算机设备通过目标流代理服务向目标云端设备发送视频流获取请求。
具体地,运行有直播流服务的计算机设备在确定到与目标云端设备具有绑定关系的目标流代理服务时,可以生成用于向目标云端设备发送的视频流获取请求。进一步地,该运行有直播流服务的计算机设备可以通过目标流服务,将视频流获取请求发送至目标云端设备。
步骤S205,目标云端设备在为第一对象配置虚拟房间时,确定与第一对象相关联的游戏直播视频流,且通过目标流代理服务,将游戏直播视频流返回至运行有直播流服务的计算机设备。
具体地,在目标云端设备为第一对象配置虚拟房间时,目标云端设备可以与云游戏相关联的音视频流,进而可以将获取到的与云游戏相关联的音视频流确定为第一音视频流。其中,这里的第一音视频流是指目标云端设备在接收到第一对象触发的业务操控指令流时所生成的。与此同时,该目标云端设备还可以在第一对象直播过程中,获取虚拟房间中的所有对象进行互动时所产生的音视频流,进而可以将获取到的音视频流确定为第二音视频流。此外,该目标云端设备还可以在第一对象直播过程中,获取虚拟房间中的所有对象进行互动时所产生的文本数据流。进一步地,该目标云端设备可以基于第一音视频流、第二音视频流以及文本数据流,确定与第一对象相关联的原始游戏视频流,进而可以获取目标云端设备的设备类型,并基于设备类型所确定的封装格式,对原始游戏视频流进行封装处理,从而得到与第一对象相关联的游戏直播视频流。进一步地,该目标云端设备可以通过目标流代理服务,将游戏直播视频流返回至运行有直播流服务的计算机设备。
步骤S206,运行有直播流服务的计算机设备获取游戏直播视频流的封装策略,基于封装策略确定游戏直播视频流对应的封装视频流。
具体地,运行有直播流服务的计算机设备可以获取游戏直播流的封装策略。其中,这里的封装策略可以包括目标云端设备的设备类型以及传输协议(例如,RTMP协议)。应当理解,运行有直播流服务的计算机设备可以确定与设备类型相匹配的封装格式,进而可以基于该封装格式对游戏直播视频流进行解析处理,以得到原始游戏视频流,此时,该运行有直播流服务的计算机设备可以基于传输协议对原始游戏视频流进行封装处理,从而得到游戏直播视频流对应的封装视频流。
其中,该步骤S201-步骤S206的具体实施方式可参见上述图3所对应实施例中对步骤S101-步骤S103的描述,这里将不再赘述。
步骤S207,运行有直播流服务的计算机设备通过内容分发服务,将封装视频流下发至虚拟房间中的第二对象对应的观看终端。
具体地,在运行有直播流服务的计算机设备(例如,直播流服务器)与运行有内容分发服务的计算机设备(即内容分发服务器)之间的连接关系建立成功时,该直播流服务器可以基于该连接关系,将封装视频流发送至内容分发服务器。进一步地,该内容分发服务器可以通过内容分发服务,将封装视频流下发至虚拟房间中的第二对象对应的观看终端,进而使得观看终端通过WebRTC这一应用程序接口,来播放封装视频流。
应当理解,在第一对象直播过程中,虚拟房间中的某一第二对象还可以代替第一对象针对云游戏触发业务操控指令流,此时,可以将这一第二对象称之为目标对象。可以理解的是,目标对象对应的观看终端可以通过接入服务和推流服务,将目标对象触发的业务操控指令流发送至目标云端设备,此时,该目标云端设备可以生成与目标对象相关联的游戏直播视频流,进而可以通过目标流代理服务发送至直播流服务器,且在直播流服务器确定与目标对象相关联的封装视频流时,通过内容分发服务将与目标对象相关联的封装视频流下发至虚拟房间中除目标对象之外的其他对象。这里的其他对象可以包括第一对象以及其他第二对象。
如图5所示,若对象B针对控件52K执行触发操作,对象B对应的观看终端将会生成代替操控指令流,进而可以将该代替操控指令流通过接入服务和推流服务发送至目标云端设备,以使目标云端设备向对象A对应的云玩终端返回代替通知。当对象A对应的云玩终端接收到代替通知,并授予对象B代替权限时,这意味着对象B可以代替对象A玩该云游戏。此时,目标云端设备可以通过接入服务和推流服务接收对象B触发的业务操控指令流,进而可以生成与对象B相关联的游戏直播视频流。其中,目标云端设备在生成与对象B相关联的游戏直播视频流时,可以通过推流服务和接入服务,将与对象B相关联的游戏直播视频流返回至对象B对应的观看终端。可选的,该目标云端设备还可以通过目标流代理服务,将与对象B相关联的游戏直播视频流发送至直播流服务器,以使直播流服务器在确定与对象B相关联的封装视频流时,通过内容分发服务将与对象B相关联的封装视频流下发至虚拟房间中除对象B之外的其他对象。
为便于理解,进一步地,请参见图7,图7是本申请实施例提供的一种直播流服务的流程示意图。如图7所示,本申请实施例中的直播流服务可以应用于云游戏后台服务架构,其中,该云游戏后台服务架构可以包括直播流服务、目标流代理服务、数据库服务以及内容分发服务。其中,流媒体代理和流代理服务可以理解为同一个服务的不同的角色。
由于运行有直播流服务的计算机设备(例如,直播流服务器)并不知晓与目标云端设备具有绑定关系的流代理服务运行于哪一个计算机设备上,因此,直播流服务器需要事先执行步骤S71,根据自身存储的与N个流代理服务相关联的地址列表,随机选取一个流媒体代理,来确定其流代理服务是否为与目标云端设备具有绑定关系的目标流代理服务。
应当理解,直播流服务器在接收到目标云端设备发送的启动通知时,可以获取启动通知中的游戏安全标识符以及目标设备标识符。该直播流服务器可以执行步骤S72,以基于目标设备标识符以及数据库服务,获取目标云端设备的设备类型。其中,可以理解的是,该直播流服务器可以基于目标设备标识符,生成用于查询目标云端设备的设备类型的设备查询请求,进而可以将该设备查询请求发送至运行有数据库服务的计算机设备(即数据库服务器),以使数据库服务器基于设备查询请求,获取目标设备标识符对应的目标云端设备的设备类型。进一步地,该直播流服务器可以接收数据库服务器返回的目标云端设备的设备类型。
与此同时,该直播流服务器还可以执行步骤S73,通过目标流代理服务,对游戏安全标识符进行校验,得到标识符校验结果。其中,可以理解的是,直播流服务可以通过目标流代理服务,获取目标云端设备所运行的云游戏的安全标识符,进而可以将获取到的安全标识符确定为校验安全标识符。进一步地,该直播流服务器可以对游戏安全标识符与校验安全标识符进行比对,从而得到比对结果。若比对结果指示游戏安全标识符与校验安全标识符相匹配,则该直播流服务器可以得到用于指示校验成功的标识符校验结果。可选的,若比对结果指示游戏安全标识符与校验安全标识符不匹配,则该直播流服务器可以得到用于指示校验失败的标识符校验结果。
可以理解的是,在标识符校验结果指示校验成功时,该直播流服务器可以建立游戏安全标识符、目标设备标识符以及目标云端设备的设备类型之间的映射关系。其中,这里的映射关系可以用于通过数据库服务,存储至与直播流服务器具有数据交互关系的数据库服务器。可选的,这里的映射关系还可以通过数据库服务,存储至直播流服务器自身的本地数据库,这里将不对其进行限定。
其中,该云游戏后台服务架构中的直播流服务,可以使用一个用于封装原始游戏视频流的服务器库(例如,librtmpC库,一个用于将H264编码格式和AAC编码格式封装为RTMP传输协议的C库),对原始游戏视频流进行封装处理,以得到与第一游戏相关联的封装视频流。为了能够提升直播流服务的并发,并降低直播推流过程中的延迟,本申请实施例可以将librtmpC库由同步改造成异步。其中,这里的并发是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。这里的同步是指整个处理过程顺序执行,当各个过程都执行完毕,并返回结果。应当理解,同步是一种线性执行的方式,执行的流程不能跨越。一般用于流程性比较强的程序。而异步是只发送了调用的指令,调用者无需等待被调用的方法完全执行完毕,而是继续执行下面的流程。异步是一种并行处理的方式,不必等待一个程序执行完,可以执行其它的任务。
比如,本申请实施例可以使用互斥锁来避免librtmpC库中的建立连接规则(即建立连接函数)的冲突访问。即当需要建立直播流服务器与内容分发服务器之间的连接关系(即TCP链接)时,该直播流服务器需要新起一个线程建立连接,而在建立连接的过程中,由于librtmpC库中的建立连接函数被互斥锁保护,这意味着同一时刻只有一个线程可以访问该建立连接函数,这样将可以有效保证librtmpC库中的建立连接函数不会因公共资源的冲突访问而造成程序崩溃的问题,从而可以有效确保游戏直播视频流在后续推送中的流畅性。
此外,本申请实施例还可以将与内容分发服务器建立的套接字由阻塞套接字变更为非阻塞套接字,并为每一个链接的非阻塞套接字新建立一个应用层的数据包缓冲区,这意味着每个链接不仅包括内核的发送缓冲区,还包括了应用层的数据包缓冲区。由于直播流服务器的中央处理器(CPU)操作为非阻塞套接字,当发送缓冲区的数据存储达到数据存储阈值时,虽然该直播流服务器会返回失败,但该CPU不会被闲置,而会切换至另一路流进行处理,换言之,在将套接字变更为非阻塞套接字之后,librtmpC库可以在一个线程中传输多路音视频流,即在其中一路流即将阻塞时,该直播流服务器可以切换传输另一路流,以使直播流服务器可以继续拉取新的游戏直播视频流,以存储至应用层的数据包缓冲区,这样可以有效提高这个系统的并发数,从而减少系统资源的浪费,以至于降低了直播推流的延迟。
与此同时,在标识符校验结果指示校验成功时,该直播流服务器还可以执行步骤S74,建立直播流服务与运行有内容分发服务的计算机设备(即内容分发服务器)之间的连接关系。其中,可以理解的是,该直播流服务器在标识符校验结果指示校验成功时,可以获取通过互斥锁所保护的建立连接规则,进一步地,该直播流服务器可以将与内容分发服务器建立的套接字(socket)由阻塞套接字变更为非阻塞套接字,进而可以基于非阻塞套接字以及建立连接规则,建立直播流服务器与内容分发服务器之间的连接关系。
进一步地,该直播流服务器可以执行步骤S75,通过目标流代理服务,获取与第一对象相关联的游戏直播视频流,进而可以获取游戏直播视频流的封装策略,基于封装策略确定游戏直播视频流对应的封装视频流。此时,该直播流服务器可以执行步骤S76,将封装视频流通过内容分发服务,下发至虚拟房间中的第二对象对应的观看终端。
在本申请实施例中,第一对象(即云玩用户)在使用云玩终端进行云游戏直播时,可以采用目标云端设备运行云游戏,以在接收到第一对象触发的业务操控指令流时,生成与第一对象相关联的游戏直播视频流。此外,在运行有直播流服务的计算机设备(即直播流服务器或流代理推流服务器)确定与目标云端设备具有绑定关系的目标流代理服务时,该运行有直播流服务的计算机设备可以通过目标流代理服务,获取到与第一对象相关联的游戏直播视频流,进而可以通过游戏直播视频流的封装策略,得到游戏直播视频流对应的封装视频流,以便于后续通过内容分发服务下发至观看终端。由此可见,用于运行云游戏的计算机设备(即目标云端设备)与用于拉取游戏直播视频流的计算机设备(即直播流服务所部署的计算机设备)属于两个不同的计算机设备,而并非是同一个计算机设备,进而可以在云游戏直播场景下,实现大规模的直播能力,且在云游戏直播场景中降低了目标云端设备的运行负担,从而降低了云游戏在直播过程中的延迟。
进一步地,请参见图8,图8是本申请实施例提供的一种数据处理装置的结构示意图。该数据处理装置1可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如,该数据处理装置1为一个应用软件;该数据处理装置1可以用于执行本申请实施例提供的方法中的相应步骤。如图8所示,该数据处理装置1可以运行于部署有直播流服务的计算机设备,该计算机设备可以为单独部署有直播流服务的计算机设备(即直播流服务器),该计算机设备也可以为部署有流代理推流服务(即对流代理服务和直播流服务进行合并处理后所得到的业务服务)的计算机设备(即流代理推流服务器)。该数据处理装置1可以包括:目标流代理服务确定模块11,视频流获取请求发送模块12,封装视频流确定模块13,标识符获取模块14,设备类型获取模块15,标识符校验模块16,映射关系建立模块17,连接关系建立模块18以及封装视频流发送模块19。
该目标流代理服务确定模块11,用于确定与目标云端设备具有绑定关系的目标流代理服务,目标云端设备用于运行与第一对象相关联的云游戏。
其中,该方法由直播流服务器执行,直播流服务器中存储有与N个流代理服务器相关联的地址列表,N为正整数,一个流代理服务器对应一个地址,N个流代理服务器包含用于运行目标流代理服务的目标流代理服务器;
该目标流代理服务器确定模块11包括:启动通知接收单元111,候选流代理服务器获取单元112,业务查询请求发送单元113以及目标流代理服务器确定单元114。
该启动通知接收单元111,用于基于直播流服务器与目标云端设备之间的通信关系,接收目标云端设备发送的启动通知,启动通知是目标云端设备基于目标云端设备的目标设备标识符所生成的;
该候选流代理服务器获取单元112,用于从N个流代理服务器中获取候选流代理服务器,且从地址列表中获取候选流代理服务器的地址;
该业务查询请求发送单元113,用于基于目标设备标识符生成业务查询请求,通过地址向候选流代理服务器发送业务查询请求,以使候选流代理服务器对目标设备标识符以及与候选流代理服务器所绑定的云端设备的候选设备标识符进行匹配,得到匹配结果;
该目标流代理服务器确定单元114,用于接收候选流代理服务器返回的匹配结果,在匹配结果指示匹配成功时,将候选流代理服务器作为与目标云端设备具有绑定关系的目标流代理服务器。
其中,该启动通知接收单元111,候选流代理服务器获取单元112,业务查询请求发送单元113以及目标流代理服务器确定单元114的具体实现方式可以参见上述图3所对应实施例中对步骤S101的描述,这里将不再继续进行赘述。
该视频流获取请求发送模块12,用于通过目标流代理服务向目标云端设备发送视频流获取请求,以使目标云端设备在为第一对象配置虚拟房间时,通过目标流代理服务返回与第一对象相关联的游戏直播视频流,游戏直播视频流是目标云端设备在获取到第一对象触发的业务操控指令流时所生成的;
该封装视频流确定模块13,用于获取游戏直播视频流的封装策略,基于封装策略确定游戏直播视频流对应的封装视频流,封装视频流用于通过内容分发服务下发至虚拟房间中的第二对象对应的观看终端。
其中,该封装视频流确定模块13包括:封装策略获取单元131,解析处理单元132以及封装处理单元133。
该封装策略获取单元131,用于获取游戏直播流的封装策略,封装策略包括目标云端设备的设备类型以及传输协议;
该解析处理单元132,用于确定与设备类型相匹配的封装格式,基于封装格式对游戏直播视频流进行解析处理,得到原始游戏视频流;
该封装处理单元133,用于基于传输协议对原始游戏视频流进行封装处理,得到游戏直播视频流对应的封装视频流。
其中,该封装策略获取单元131,解析处理单元132以及封装处理单元133的具体实现方式可以参见上述图3所对应实施例中对步骤S103的描述,这里将不再继续进行赘述。
其中,方法由直播流服务器执行;
该标识符获取模块14,用于在接收到目标云端设备发送的启动通知时,获取启动通知中的游戏安全标识符以及目标设备标识符;
该设备类型获取模块15,用于基于目标设备标识符,获取目标云端设备的设备类型。
其中,该设备类型获取模块15包括:设备查询请求生成单元151,设备查询请求发送单元152以及设备类型接收单元153。
该设备查询请求生成单元151,用于基于目标设备标识符,生成用于查询目标云端设备的设备类型的设备查询请求;
该设备查询请求发送单元152,用于将设备查询请求发送至数据库服务器,以使数据库服务器基于设备查询请求,获取目标设备标识符对应的目标云端设备的设备类型;
该设备类型接收单元153,用于接收数据库服务器返回的目标云端设备的设备类型。
其中,该设备查询请求生成单元151,设备查询请求发送单元152以及设备类型接收单元153的具体实现方式可以参见上述图7所对应实施例中对步骤S72的描述,这里将不再继续进行赘述。
该标识符校验模块16,用于通过目标流代理服务,对游戏安全标识符进行校验,得到标识符校验结果。
其中,标识符校验模块16包括:校验标识符获取单元161,标识符比对单元162,第一校验结果确定单元163以及第二校验结果确定单元164。
该校验标识符获取单元161,用于通过目标流代理服务,获取目标云端设备所运行的云游戏的安全标识符,将获取到的安全标识符确定为校验安全标识符;
该标识符比对单元162,用于对游戏安全标识符与校验安全标识符进行比对,得到比对结果;
该第一校验结果确定单元163,用于若比对结果指示游戏安全标识符与校验安全标识符相匹配,则得到用于指示校验成功的标识符校验结果;
该第二校验结果确定单元164,用于若比对结果指示游戏安全标识符与校验安全标识符不匹配,则得到用于指示校验失败的标识符校验结果。
其中,该校验标识符获取单元161,标识符比对单元162,第一校验结果确定单元163以及第二校验结果确定单元164的具体实现方式可以参见上述图7所对应实施例中对步骤S73的描述,这里将不再继续进行赘述。
该映射关系建立模块17,用于在标识符校验结果指示校验成功时,建立游戏安全标识符、目标设备标识符以及目标云端设备的设备类型之间的映射关系,映射关系用于通过数据库服务存储至与直播流服务器具有数据交互关系的数据库服务器。
其中,内容分发服务用于部署在内容分发服务器上;
该连接关系建立模块18,用于在标识符校验结果指示校验成功时,建立直播流服务器与内容分发服务器之间的连接关系。
其中,该连接关系建立模块18包括:建立连接规则获取单元181,套接字变更单元182以及连接关系建立单元183。
该建立连接规则获取单元181,用于在标识符校验结果指示校验成功时,获取通过互斥锁所保护的建立连接规则;
该套接字变更单元182,用于将与内容分发服务器建立的套接字由阻塞套接字变更为非阻塞套接字;
该连接关系建立单元183,用于基于非阻塞套接字以及建立连接规则,建立直播流服务器与内容分发服务器之间的连接关系。
其中,该建立连接规则获取单元181,套接字变更单元182以及连接关系建立单元183的具体实现方式可以参见上述图6所对应实施例中对步骤S207的描述,这里将不再继续进行赘述。
该封装视频流发送模块19,用于基于直播流服务器与内容分发服务器之间的连接关系,将封装视频流发送至内容分发服务器,以使内容分发服务器将封装视频流发送至第二对象对应的观看终端。
其中,该目标流代理服务确定模块11,视频流获取请求发送模块12,封装视频流确定模块13,标识符获取模块14,设备类型获取模块15,标识符校验模块16,映射关系建立模块17,连接关系建立模块18以及封装视频流发送模块19的具体实现方式可以参见上述图6所对应实施例中对步骤S201-步骤S207的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步地,请参见图9,图9是本申请实施例提供的一种数据处理装置的结构示意图。该数据处理装置2可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如,该数据处理装置2为一个应用软件;该数据处理装置2可以用于执行本申请实施例提供的方法中的相应步骤。如图9所示,该数据处理装置2可以运行于目标云端设备,该目标云端设备可以为运行有云游戏的计算机设备,该目标云端设备可以为上述图2所对应实施例中的云端设备200Y。该数据处理装置2可以包括:视频流获取请求接收模块100,游戏直播视频流确定模块200,游戏直播视频流返回模块300,启动操控指令流获取模块400,游戏启动视频流生成模块500,游戏启动视频流返回模块600,标识符分配模块700,启动通知生成模块800以及启动通知发送模块900。
该视频流获取请求接收模块100,用于通过与目标云端设备具有绑定关系的目标流代理服务,获取直播流服务发送的视频流获取请求,目标云端设备用于运行于第一对象相关联的云游戏;
该游戏直播视频流确定模块200,用于在为第一对象配置虚拟房间时,确定与第一对象相关联的游戏直播视频流,游戏直播视频流是在获取到第一对象触发的业务操控指令流时所生成的;
该游戏直播视频流返回模块300,用于将游戏直播视频流通过目标流代理服务返回至直播流服务,直播流服务用于获取游戏直播流的封装策略,且基于封装策略确定游戏直播视频流对应的封装视频流,封装视频流用于通过内容分发服务下发至虚拟房间中的第二对象对应的观看终端。
该启动操控指令流获取模块400,用于通过接入服务与推流服务,获取第一对象触发的启动操控指令流,启动操控指令流是第一对象在云玩终端的第一游戏界面上针对云游戏所触发的;
该游戏启动视频流生成模块500,用于基于启动操控指令流,将目标云端设备的业务状态确定为运行状态,且生成与云游戏相关联的游戏启动视频流,运行状态用于指示运行云游戏;
该游戏启动视频流返回模块600,用于通过接入服务以及推流服务,将游戏启动视频流返回至云玩终端,以使云玩终端将终端界面由第一游戏界面切换至第二游戏界面,且在第二游戏界面上显示游戏启动视频流对应的游戏画面帧。
其中,直播流服务器用于部署在直播流服务器上;
该标识符分配模块700,用于在接收到启动操控指令流时,为云游戏分配游戏安全标识符,游戏安全标识符是基于启动操控指令流所指示的启动时间戳、目标云端设备的机器地址标识符以及目标云端设备确定的随机参数所生成的;
该启动通知生成模块800,用于获取目标云端设备的目标设备标识符,基于游戏安全标识符以及目标设备标识符,生成用于指示云游戏启动的启动通知;
该启动通知发送模块900,用于基于直播流服务器与目标云端设备之间的通信关系,将启动通知发送至直播流服务器,以使直播流服务器确定与目标云端设备具有绑定关系的目标流代理服务。
其中,该视频流获取请求接收模块100,游戏直播视频流确定模块200,游戏直播视频流返回模块300,启动操控指令流获取模块400,游戏启动视频流生成模块500,游戏启动视频流返回模块600,标识符分配模块700,启动通知生成模块800以及启动通知发送模块900的具体实现方式可以参见上述图6所对应实施例中对步骤S201-步骤S207的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步地,请参见图10,图10是本申请实施例提供的一种计算机设备的示意图。如图10所示,该计算机设备3000可以为运行有直播流服务的计算机设备(例如,上述图2所对应实施例中的流代理推流服务器2000F),或运行有云游戏的目标云端设备(例如,上述图2所对应实施例中的云端设备200Y),该计算机设备3000可以包括:至少一个处理器3001,例如,CPU,至少一个网络接口3004,用户接口3003,存储器3005,至少一个通信总线3002。其中,通信总线3002用于实现这些组件之间的连接通信。其中,用户接口3003可以包括显示屏(Display)、键盘(Keyboard),网络接口3004可选地可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器3005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储3005可选地还可以是至少一个位于远离前述处理器3001的存储装置。如图10所示,作为一种计算机存储介质的存储器3005可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图10所示的计算机设备3000中,网络接口3004主要用于与进行网络通信;而用户接口3003主要用于为用户提供输入的接口;而处理器3001可以用于调用存储器3005中存储的设备控制应用程序。
应当理解,本申请实施例中所描述的计算机设备3000可执行前文图3或者图6所对应实施例中对该数据处理方法的描述,也可执行前文图8所对应实施例中对该数据处理装置1或者图9所对应实施例中对该数据处理装置2的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且该计算机可读存储介质中存储有前文提及的数据处理装置1或者数据处理装置2所执行的计算机程序,且该计算机程序包括程序指令,当该处理器执行该程序指令时,能够执行前文图3或者图6所对应实施例中对该数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行,分布在多个地点且通过通信网络互连的多个计算设备可以组成区块链系统。
本申请一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备可执行前文图3或者图6所对应实施例中对数据处理方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步的,请参见图11,图11是本申请实施例提供的一种数据处理系统的结构示意图。该数据处理系统3可以包含数据处理装置11a和数据处理装置12a。其中,数据处理装置11a可以为上述图8所对应实施例中的数据处理装置1,可以理解的是,该数据处理装置11a可以集成在运行有直播流服务的计算机设备(例如,上述图2所对应实施例中的流代理推流服务器2000F),因此,这里将不再进行赘述。其中,数据处理装置12a可以为上述图9所对应实施例中的数据处理装置2,可以理解的是,该数据处理装置12a可以集成在或运行有云游戏的目标云端设备(例如,上述图2所对应实施例中的云端设备200Y),因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的数据处理系统实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (17)

1.一种数据处理方法,其特征在于,包括:
确定与目标云端设备具有绑定关系的目标流代理服务,所述目标云端设备用于运行与第一对象相关联的云游戏;
通过所述目标流代理服务向所述目标云端设备发送视频流获取请求,以使所述目标云端设备在为所述第一对象配置虚拟房间时,通过所述目标流代理服务返回与所述第一对象相关联的游戏直播视频流,所述游戏直播视频流是所述目标云端设备在获取到所述第一对象触发的业务操控指令流时所生成的;
获取所述游戏直播视频流的封装策略,基于所述封装策略确定所述游戏直播视频流对应的封装视频流,所述封装视频流用于通过内容分发服务下发至所述虚拟房间中的第二对象对应的观看终端。
2.根据权利要求1所述的方法,其特征在于,所述方法由直播流服务器执行,所述直播流服务器中存储有与N个流代理服务器相关联的地址列表,所述N为正整数,一个流代理服务器对应一个地址,所述N个流代理服务器包含用于运行所述目标流代理服务的目标流代理服务器;
所述确定与目标云端设备具有绑定关系的目标流代理服务器,包括:
基于所述直播流服务器与目标云端设备之间的通信关系,接收所述目标云端设备发送的启动通知,所述启动通知是所述目标云端设备基于所述目标云端设备的目标设备标识符所生成的;
从所述N个流代理服务器中获取候选流代理服务器,且从所述地址列表中获取所述候选流代理服务器的地址;
基于所述目标设备标识符生成业务查询请求,通过所述地址向所述候选流代理服务器发送所述业务查询请求,以使所述候选流代理服务器对所述目标设备标识符以及与所述候选流代理服务器所绑定的云端设备的候选设备标识符进行匹配,得到匹配结果;
接收所述候选流代理服务器返回的匹配结果,在所述匹配结果指示匹配成功时,将所述候选流代理服务器作为与所述目标云端设备具有绑定关系的所述目标流代理服务器。
3.根据权利要求1所述的方法,其特征在于,所述方法由直播流服务器执行;
所述方法还包括:
在接收到所述目标云端设备发送的启动通知时,获取所述启动通知中的游戏安全标识符以及目标设备标识符;
基于所述目标设备标识符,获取所述目标云端设备的设备类型;
通过所述目标流代理服务,对所述游戏安全标识符进行校验,得到标识符校验结果;
在所述标识符校验结果指示校验成功时,建立所述游戏安全标识符、所述目标设备标识符以及所述目标云端设备的设备类型之间的映射关系,所述映射关系用于通过数据库服务存储至与所述直播流服务器具有数据交互关系的数据库服务器。
4.根据权利要求3所述的方法,其特征在于,所述基于所述目标设备标识符,获取所述目标云端设备的设备类型,包括:
基于所述目标设备标识符,生成用于查询所述目标云端设备的设备类型的设备查询请求;
将所述设备查询请求发送至所述数据库服务器,以使所述数据库服务器基于所述设备查询请求,获取所述目标设备标识符对应的目标云端设备的设备类型;
接收所述数据库服务器返回的所述目标云端设备的设备类型。
5.根据权利要求3所述的方法,其特征在于,所述通过所述目标流代理服务,对所述游戏安全标识符进行校验,得到标识符校验结果,包括:
通过所述目标流代理服务,获取所述目标云端设备所运行的所述云游戏的安全标识符,将获取到的安全标识符确定为校验安全标识符;
对所述游戏安全标识符与所述校验安全标识符进行比对,得到比对结果;
若所述比对结果指示所述游戏安全标识符与所述校验安全标识符相匹配,则得到用于指示校验成功的标识符校验结果;
若所述比对结果指示所述游戏安全标识符与所述校验安全标识符不匹配,则得到用于指示校验失败的标识符校验结果。
6.根据权利要求1所述的方法,其特征在于,所述方法由直播流服务器执行;所述内容分发服务用于部署在内容分发服务器上;
所述方法还包括:
在所述标识符校验结果指示校验成功时,建立所述直播流服务器与所述内容分发服务器之间的连接关系。
7.根据权利要求6所述的方法,其特征在于,所述在所述标识符校验结果指示校验成功时,建立所述直播流服务器与所述内容分发服务器之间的连接关系,包括:
在所述标识符校验结果指示校验成功时,获取通过互斥锁所保护的建立连接规则;
将与所述内容分发服务器建立的套接字由阻塞套接字变更为非阻塞套接字;
基于所述非阻塞套接字以及所述建立连接规则,建立所述直播流服务器与所述内容分发服务器之间的连接关系。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
基于所述直播流服务器与所述内容分发服务器之间的连接关系,将所述封装视频流发送至所述内容分发服务器,以使所述内容分发服务器将所述封装视频流发送至所述第二对象对应的观看终端。
9.根据权利要求1所述的方法,其特征在于,所述获取所述游戏直播视频流的封装策略,基于所述封装策略确定所述游戏直播视频流对应的封装视频流,包括:
获取所述游戏直播流的封装策略,所述封装策略包括所述目标云端设备的设备类型以及传输协议;
确定与所述设备类型相匹配的封装格式,基于所述封装格式对所述游戏直播视频流进行解析处理,得到原始游戏视频流;
基于所述传输协议对所述原始游戏视频流进行封装处理,得到所述游戏直播视频流对应的封装视频流。
10.一种数据处理方法,其特征在于,包括:
通过与目标云端设备具有绑定关系的目标流代理服务,获取直播流服务发送的视频流获取请求,所述目标云端设备用于运行于第一对象相关联的云游戏;
在为所述第一对象配置虚拟房间时,确定与所述第一对象相关联的游戏直播视频流,所述游戏直播视频流是在获取到所述第一对象触发的业务操控指令流时所生成的;
将所述游戏直播视频流通过所述目标流代理服务返回至所述直播流服务,所述直播流服务用于获取所述游戏直播流的封装策略,且基于所述封装策略确定所述游戏直播视频流对应的封装视频流,所述封装视频流用于通过内容分发服务下发至所述虚拟房间中的第二对象对应的观看终端。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
通过接入服务与推流服务,获取所述第一对象触发的启动操控指令流,所述启动操控指令流是所述第一对象在云玩终端的第一游戏界面上针对所述云游戏所触发的;
基于所述启动操控指令流,将所述目标云端设备的业务状态确定为运行状态,且生成与所述云游戏相关联的游戏启动视频流,所述运行状态用于指示运行所述云游戏;
通过所述接入服务以及所述推流服务,将所述游戏启动视频流返回至所述云玩终端,以使所述云玩终端将终端界面由所述第一游戏界面切换至第二游戏界面,且在所述第二游戏界面上显示所述游戏启动视频流对应的游戏画面帧。
12.根据权利要求10所述的方法,其特征在于,所述直播流服务器用于部署在直播流服务器上;
所述方法还包括:
在接收到启动操控指令流时,为所述云游戏分配游戏安全标识符,所述游戏安全标识符是基于所述启动操控指令流所指示的启动时间戳、所述目标云端设备的机器地址标识符以及所述目标云端设备确定的随机参数所生成的;
获取所述目标云端设备的目标设备标识符,基于所述游戏安全标识符以及所述目标设备标识符,生成用于指示所述云游戏启动的启动通知;
基于所述直播流服务器与所述目标云端设备之间的通信关系,将所述启动通知发送至所述直播流服务器,以使所述直播流服务器确定与所述目标云端设备具有绑定关系的目标流代理服务。
13.一种数据处理装置,其特征在于,包括:
目标流代理服务确定模块,用于确定与目标云端设备具有绑定关系的目标流代理服务,所述目标云端设备用于运行与第一对象相关联的云游戏;
视频流获取请求发送模块,用于通过所述目标流代理服务向所述目标云端设备发送视频流获取请求,以使所述目标云端设备在为所述第一对象配置虚拟房间时,通过所述目标流代理服务返回与所述第一对象相关联的游戏直播视频流,所述游戏直播视频流是所述目标云端设备在获取到所述第一对象触发的业务操控指令流时所生成的;
封装视频流确定模块,用于获取所述游戏直播视频流的封装策略,基于所述封装策略确定所述游戏直播视频流对应的封装视频流,所述封装视频流用于通过内容分发服务下发至所述虚拟房间中的第二对象对应的观看终端。
14.一种数据处理装置,其特征在于,包括:
视频流获取请求接收模块,用于通过与目标云端设备具有绑定关系的目标流代理服务,获取直播流服务发送的视频流获取请求,所述目标云端设备用于运行于第一对象相关联的云游戏;
游戏直播视频流确定模块,用于在为所述第一对象配置虚拟房间时,确定与所述第一对象相关联的游戏直播视频流,所述游戏直播视频流是在获取到所述第一对象触发的业务操控指令流时所生成的;
游戏直播视频流返回模块,用于将所述游戏直播视频流通过所述目标流代理服务返回至所述直播流服务,所述直播流服务用于获取所述游戏直播流的封装策略,且基于所述封装策略确定所述游戏直播视频流对应的封装视频流,所述封装视频流用于通过内容分发服务下发至所述虚拟房间中的第二对象对应的观看终端。
15.一种计算机设备,其特征在于,包括:处理器和存储器;
所述处理器与存储器相连,其中,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1-12任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1-12任一项所述的方法。
17.一种计算机程序产品或计算机程序,其特征在于,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中,所述计算机指令适于由处理器读取并执行,以使得具有所述处理器的计算机设备执行权利要求1-12任一项所述的方法。
CN202111200195.0A 2021-10-14 2021-10-14 一种数据处理方法、装置、设备及存储介质 Pending CN113926185A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111200195.0A CN113926185A (zh) 2021-10-14 2021-10-14 一种数据处理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111200195.0A CN113926185A (zh) 2021-10-14 2021-10-14 一种数据处理方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN113926185A true CN113926185A (zh) 2022-01-14

Family

ID=79279545

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111200195.0A Pending CN113926185A (zh) 2021-10-14 2021-10-14 一种数据处理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113926185A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114268613A (zh) * 2022-03-02 2022-04-01 阿里巴巴(中国)有限公司 数据传输系统、方法、设备、存储介质及程序产品
CN115174569A (zh) * 2022-06-27 2022-10-11 普联技术有限公司 一种视频流传输的控制方法、装置、服务器及存储介质
CN116521260A (zh) * 2023-04-21 2023-08-01 启朔(深圳)科技有限公司 应用启动方法、应用运行方法、移动端、云端和存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114268613A (zh) * 2022-03-02 2022-04-01 阿里巴巴(中国)有限公司 数据传输系统、方法、设备、存储介质及程序产品
CN115174569A (zh) * 2022-06-27 2022-10-11 普联技术有限公司 一种视频流传输的控制方法、装置、服务器及存储介质
CN115174569B (zh) * 2022-06-27 2024-03-19 普联技术有限公司 一种视频流传输的控制方法、装置、服务器及存储介质
CN116521260A (zh) * 2023-04-21 2023-08-01 启朔(深圳)科技有限公司 应用启动方法、应用运行方法、移动端、云端和存储介质

Similar Documents

Publication Publication Date Title
US11712622B2 (en) Gaming system
US11213743B2 (en) Method, system and electronic device for achieving remote control of computer game by game controller
CN113926185A (zh) 一种数据处理方法、装置、设备及存储介质
US9486706B2 (en) Voice overlay
US12095880B2 (en) Data processing method and apparatus, device and medium
CN112073758B (zh) 一种云桌面投屏方法、装置、计算机设备、计算机可读存储介质及云桌面投屏交互系统
CN113209632B (zh) 一种云游戏的处理方法、装置、设备及存储介质
CN112073754B (zh) 一种云游戏投屏方法、装置、计算机设备、计算机可读存储介质及云游戏投屏交互系统
GB2517102A (en) Qualified video delivery
KR20200037415A (ko) 정보 푸싱 방법, 저장 매체, 단말기 디바이스, 및 서버
CN112911320B (zh) 一种直播方法、装置、计算机设备和存储介质
WO2016074326A1 (zh) 一种频道切换的方法、装置和系统
WO2024066828A1 (zh) 一种数据处理方法、装置、设备、计算机可读存储介质及计算机程序产品
WO2024037110A1 (zh) 数据处理方法、装置、设备以及介质
Kim et al. Cloud‐based gaming service platform supporting multiple devices
CN116233209A (zh) 一种gpu云渲染服务远程管理调度方法
KR101480140B1 (ko) 멀티 인젝션 서버 및 그 방법
CN115802007A (zh) 基于rtsp协议的监控系统控制方法、设备及可读存储介质
US8973082B2 (en) Interactive program system
CN114071170B (zh) 一种网络直播互动方法及设备
US11013995B2 (en) Qualified video delivery methods
KR20130109904A (ko) 멀티스크린 기반의 다차원 게임 서비스 방법 및 그 장치
CN113381864B (zh) 数字视听场所控制方法、系统和存储介质
CN118741188A (zh) 虚拟手柄的识别方法、装置、电子设备及计算机程序产品
CN116962482A (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