WO2022227938A1 - 一种云游戏的处理方法、装置、设备及存储介质 - Google Patents

一种云游戏的处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
WO2022227938A1
WO2022227938A1 PCT/CN2022/082147 CN2022082147W WO2022227938A1 WO 2022227938 A1 WO2022227938 A1 WO 2022227938A1 CN 2022082147 W CN2022082147 W CN 2022082147W WO 2022227938 A1 WO2022227938 A1 WO 2022227938A1
Authority
WO
WIPO (PCT)
Prior art keywords
client
cloud game
stream processing
game instance
processing resource
Prior art date
Application number
PCT/CN2022/082147
Other languages
English (en)
French (fr)
Inventor
包增辉
龚志鹏
马斌
Original Assignee
腾讯科技(深圳)有限公司
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 腾讯科技(深圳)有限公司 filed Critical 腾讯科技(深圳)有限公司
Priority to EP22794414.7A priority Critical patent/EP4223379A4/en
Priority to JP2023548745A priority patent/JP2024509060A/ja
Publication of WO2022227938A1 publication Critical patent/WO2022227938A1/zh
Priority to US18/072,632 priority patent/US20230096900A1/en

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/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
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • 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/55Controlling game characters or game objects based on the game progress
    • 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/70Game security or game management aspects
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • 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/80Special adaptations for executing a specific game genre or game mode
    • A63F13/847Cooperative playing, e.g. requiring coordinated actions from several players to achieve a common goal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • H04N21/25825Management of client data involving client display capabilities, e.g. screen resolution of a mobile phone
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25866Management of end-user data
    • H04N21/25875Management of end-user data involving end-user authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • 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/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4781Games
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6582Data stored in the client, e.g. viewing habits, hardware capabilities, credit card number
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • 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/55Details of game data or player data management
    • A63F2300/552Details of game data or player data management for downloading to client devices, e.g. using OS version, hardware or software profile of the client device
    • 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/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images

Definitions

  • the present application relates to the field of computer technology, in particular to the field of cloud game technology, and in particular to the processing of cloud games.
  • Cloud gaming refers to a game method based on cloud computing.
  • the general process of cloud gaming is as follows: a user requests to start a cloud game using a terminal, and a cloud game starts a cloud game instance in the cloud, and the user logs in to the cloud game instance through the terminal.
  • the instance is operated, that is, the play of the cloud game is realized.
  • cloud game server compresses the rendered game screen and transmits it to the user's terminal through the network for presentation; when the terminal detects the user operation events, such as touch screen events, keyboard and mouse events, etc., then transmit the operation events to the cloud game server through the network to achieve the purpose of operating the cloud game.
  • user operation events such as touch screen events, keyboard and mouse events, etc.
  • the embodiments of the present application provide a cloud game processing method, apparatus, device, and storage medium, which can improve the flexibility and diversity of cloud game operation modes.
  • an embodiment of the present application provides a method for processing a cloud game, and the method for processing a cloud game includes:
  • the cloud game instance is created according to the play request of the first client for the cloud game.
  • the first client is bound to the first stream processing resources of the cloud game instance. and the data transmission between the cloud game instance and the first client is realized through the first stream processing resource;
  • a second stream processing resource of the cloud game instance is created, and the first stream processing resource and the second stream processing resource are independent of each other;
  • an embodiment of the present application provides a processing device for a cloud game, and the processing device for a cloud game includes a media encoding module and a media transmission module; wherein:
  • the media transmission module is used to receive an access request from the second client for the cloud game instance.
  • the cloud game instance is created according to the play request of the first client for the cloud game.
  • the first client and the cloud game instance are the first
  • the channel stream processing resources are bound, and the data transmission between the cloud game instance and the first client is realized through the first channel stream processing resources;
  • the media encoding module and the media transmission module are both used for creating the second stream processing resources of the cloud game instance in response to the access request of the second client, the first stream processing resources and the second stream processing resources Independent;
  • the media transmission module is further configured to bind the second stream processing resource with the second client; and implement data transmission between the second client and the cloud game instance through the second stream processing resource.
  • an embodiment of the present application provides a processing device for a cloud game, and the processing device for a cloud game includes:
  • a processor adapted to implement a computer program
  • a computer-readable storage medium where the computer-readable storage medium stores a computer program, and the computer program is adapted to be loaded by the processor and execute the above-mentioned cloud game processing method.
  • an embodiment of the present application provides a computer-readable storage medium, where a computer program is stored in the computer-readable storage medium, and when the computer program is read and executed by a processor of a computer device, the computer device executes the above-mentioned cloud How the game is handled.
  • an embodiment of the present application provides a computer program product or computer program, where the computer program product or computer program includes computer instructions, and the computer instructions are stored in a computer-readable storage medium.
  • the processor of the computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes the above-mentioned cloud game processing method.
  • the first client when a first client initiates a play request for a cloud game and creates a cloud game instance, the first client will be allocated the first stream processing resources of the cloud game instance, and the first client and the cloud game instance will be allocated to the first client.
  • the first channel of stream processing resources is bound, and the data transmission between the cloud game instance and the first client is realized through the first channel of stream processing resources; the second client can request access to the created by the first client request.
  • the second client in response to the access request of the second client, the second client will be allocated the second stream processing resources of the cloud game instance, and the second stream processing resources will be bound to the second client.
  • the data transmission between the second client and the cloud game instance may be implemented through the second stream processing resource.
  • the embodiment of the present application supports multiple operations on the same cloud game instance, that is, allows multiple clients (such as the first client and the second client) to access and operate the same cloud game instance, which effectively improves the The flexibility and diversity of cloud game operation modes.
  • each client connected to the same cloud game instance is bound to a separate stream processing resource of the cloud game instance, and realizes data transmission through the separate stream processing resources bound to each other, which is beneficial to Targeted and independent encoding flow control and quality control are performed on each client based on each stream processing resource, and since each stream processing resource is independent and does not affect each other, the client and the cloud can communicate with each other. Efficient and stable data transfer between game instances.
  • FIG. 1 shows a schematic diagram of a processing solution of a cloud game provided by an exemplary embodiment of the present application
  • FIG. 2 shows a schematic diagram of a processing solution of a cloud game provided by another exemplary embodiment of the present application
  • FIG. 3 shows a schematic diagram of the architecture of a cloud game processing system provided by an exemplary embodiment of the present application
  • FIG. 4 shows a schematic flowchart of a method for processing a cloud game provided by an exemplary embodiment of the present application
  • FIG. 5 shows a schematic flowchart of a process of responding to an access request of a client provided by an exemplary embodiment of the present application
  • FIG. 6 shows a schematic flowchart of a method for processing a cloud game provided by another exemplary embodiment of the present application
  • Fig. 7a shows a schematic flowchart of a resolution setting process provided by an exemplary embodiment of the present application
  • Fig. 7b shows a schematic flowchart of a flow control process provided by an exemplary embodiment of the present application
  • FIG. 7c shows a schematic flowchart of a media frame discarding process provided by an exemplary embodiment of the present application
  • FIG. 7d shows a schematic flowchart of an authorization control process provided by an exemplary embodiment of the present application.
  • FIG. 7e shows a schematic flowchart of a multi-user operation cloud game instance provided by an exemplary embodiment of the present application
  • FIG. 8a shows a schematic interface diagram of a cloud game play operation provided by an exemplary embodiment of the present application
  • FIG. 8b shows a schematic interface diagram of a cloud game sharing operation provided by an exemplary embodiment of the present application
  • Fig. 8c shows a schematic flowchart of an access process of a cloud game instance provided by an exemplary embodiment of the present application
  • FIG. 9 shows a schematic structural diagram of a processing apparatus for a cloud game provided by an exemplary embodiment of the present application.
  • FIG. 10 shows a schematic structural diagram of a cloud game processing device provided by an exemplary embodiment of the present application.
  • Cloud gaming also known as Gaming on Demand, is a game method based on cloud computing technology.
  • Cloud games enable light-end devices (Thin Clients) with relatively limited graphics processing and data computing capabilities to run high-quality games.
  • the cloud game server compresses and encodes the game screen and game audio in the cloud game instance into a media stream , and then transmit the media stream to the terminal used by the user through the network, and the media stream may include video stream and audio stream.
  • the terminal used by the user does not need to have powerful graphics processing and data computing capabilities, but only needs to have basic streaming media playback capabilities and the ability to obtain and send the operation instructions input by the user to the server.
  • Cloud game instance Cloud games are deployed and run on cloud game instances.
  • Cloud game instances represent virtual computing resources.
  • Virtual computer resources can include: CPU (Central Processing Unit, central processing unit), operating system, network, disk, GPU (Graphics Processing Unit, A collection of basic computing components such as a graphics processor); that is, a cloud game instance is a cloud game that is successfully launched and can be operated in practice.
  • the cloud game instance can use OpenGL ES technology to render the game interface; OpenGL ES (OpenGL for Embedded Systems) is an OpenGL (Open Graphics Library) three-dimensional graphics API (Application Programming Interface). , a subset of application programming interfaces); OpenGL ES may include APIs for graphics rendering.
  • Containers are a lightweight virtualization solution in cloud games. Cloud game instances run in containers.
  • a cloud game server can run multiple containers, and each container corresponds to a cloud game instance.
  • the container may include an ARM server or a Docker container in a Linux environment; Docker is an open source application container engine that allows developers to package their applications and dependent packages into a portable image, and then publish them to any Virtualization can be realized on popular Linux (an operating system) or Windows (an operating system) machine;
  • ARM (Advanced RISC Machine) server is a RISC (Reduced Instruction Set Computing) microprocessor, It has the characteristics of small size, low power consumption, low cost and high performance.
  • Cloud games are based on cloud computing technology, which provides powerful graphics processing capabilities and data computing capabilities for cloud games.
  • Cloud computing is a computing model that distributes computing tasks on a resource pool composed of a large number of computers, enabling various application systems to obtain computing power, storage space and information services as needed.
  • the network that provides the resources is called the "cloud”.
  • the resources in the "cloud” are infinitely scalable from the point of view of the user, and can be acquired at any time, used on demand, expanded at any time, and paid for use.
  • a cloud computing resource pool (referred to as a cloud platform) will be established, generally referred to as an IaaS (Infrastructure as a Service, infrastructure as a service) platform, and various types of virtual machines will be deployed in the cloud computing resource pool. Resources for external customers to choose and use.
  • the cloud computing resource pool mainly includes: computing devices (which are virtualized machines, including operating systems), storage devices, and network devices.
  • the PaaS (Platform as a Service) layer can be deployed on the IaaS layer
  • the SaaS (Software as a Service) layer can be deployed on the PaaS layer, or the SaaS can be directly deployed on the on IaaS.
  • PaaS is a platform on which software (eg, databases, web containers, etc.) runs.
  • SaaS is a variety of business software (such as web portals, SMS group senders, etc.).
  • SaaS and PaaS are upper layers relative to IaaS.
  • Cloud computing can refer to the delivery and use mode of IT (Internet Technology) infrastructure, which refers to obtaining the required resources through the network in an on-demand and easy-to-expand manner; cloud computing in a broad sense refers to the delivery and use mode of services, which refers to the The network obtains the required services in an on-demand and easily scalable manner.
  • Such services can be IT and software, Internet-related, or other services.
  • Cloud computing is grid computing (Grid Computing), distributed computing (Distributed Computing), parallel computing (Parallel Computing), utility computing (Utility Computing), network storage (Network Storage Technologies), virtualization (Virtualization), load balancing ( Load Balance) and other traditional computer and network technology development and integration products.
  • Cloud computing has grown rapidly with the development of the Internet, real-time data streaming, the diversity of connected devices, and the need for search services, social networking, mobile commerce, and open collaboration. Different from the parallel distributed computing in the past, the emergence of cloud computing will promote revolutionary changes in the entire Internet model and enterprise management model.
  • Blockchain technology is a new application mode of computer technologies such as distributed data storage, P2P (Peer to Peer, peer-to-peer) transmission, consensus mechanism, and encryption algorithm.
  • the blockchain is essentially a decentralized database, which is a series of data blocks associated with cryptographic methods. Each data block contains a batch of network transaction information to verify the validity of its information. (anti-counterfeiting) and generate the next block.
  • Blockchain cryptographically guarantees that data cannot be tampered with and cannot be forged.
  • the implementation principles of cloud games generally include: 1.
  • a terminal such as a mobile phone, PC (personal computer), etc.
  • the server of cloud games allocates and runs a container for each client participating in cloud games; running a container starts a cloud game instance, that is to say, one cloud game instance corresponds to one cloud game instance played by a user; for example, a user Use the client of the cloud game to enter the cloud game to play.
  • the server of the cloud game will start and run a container in the cloud, that is, start and run a cloud game instance, then the cloud game instance and the client used by the user
  • the cloud game instance provides the game interface of the cloud game for the client of the cloud game.
  • the client of the cloud game displays the game interface returned by its corresponding cloud game instance; when the user performs various operations in the game interface, the client of the cloud game will report the operation data generated by these operations to the server of the cloud game,
  • the server of the cloud game refreshes the game interface of the cloud game according to the operation data in the corresponding cloud game instance, and then returns the refreshed game interface to the client of the cloud game for display.
  • the cloud game instance created in the cloud game server is automatically destroyed.
  • the operations performed by the user in the game interface may include moving operations, selection operations, etc.; for example, the user moves a game character in the game interface from a first position in the game interface to a second position in the game interface; another example , the user selects (such as single-click, double-click, long-press, etc.) a game control in the game interface.
  • the operation data generated by the operation may include the coordinates of the operation touch screen; for example, if the user moves the game character in the game interface from the first position in the game interface to the second position in the game interface, then the operation data may include the first position at this time The coordinates in the game interface and the coordinates of the second position in the game interface; for another example, if the user selects a game control in the game interface, then the operation data may include the coordinates of the game control in the game interface.
  • FIG. 1 shows a schematic diagram of a processing solution for a cloud game provided by an exemplary embodiment of the present application.
  • multiple (two or more) clients can be accessed in the same cloud game instance of a cloud game.
  • accessing a first client and a second client is used as an example Be explained.
  • the first client and the second client share the same stream processing resources, and the cloud game instance performs data transmission with the first client or the second client based on the shared stream processing resources.
  • stream processing resources refer to tools (such as hardware or software programs) for processing various types of data, such as media streams and operation data involved in the playing process of cloud games; stream processing resources may include codec resources, transmission control resources, etc.; codec resources can be used for encoding processing or decoding processing, and transmission control resources can be used for data transmission, transmission control, and so on.
  • the encoding and decoding resources can be provided by the media encoding module, and the transmission control resources can be provided by the media transmission module.
  • the data transmission process based on the shared stream processing resources between the cloud game instance and the first client or the second client may include: the cloud game server sends the media stream in the cloud game instance to the first client based on the stream processing resources and the second client; when the first client requests to operate the cloud game instance, the cloud game server receives the operation data of the first client based on the stream processing resources; when the second client requests to operate the cloud game instance, The server of the cloud game receives the operation data of the second client based on the stream processing resources.
  • the shared stream processing resources can be provided by the media encoding module and the media transmission module, the media encoding module provides one channel of encoding and decoding resources, and the media transmission module provides one channel of transmission control resources; the first client and the second client share The same channel of stream processing resources, that is, the first client and the second client share the same channel of encoding and decoding resources and the same channel of transmission control resources.
  • the media encoding module can be used to collect media data in the cloud game instance, and the media data can include game images and game audio; after collecting the media data in the cloud game instance, the media encoding module can encode the collected media data. After processing, a media stream is obtained, and the media stream may include a video stream and an audio stream.
  • the media transmission module can be used to forward the media stream to the first client and the second client.
  • the media transmission module can transmit the operation data of the first client to the media encoding module, and the media encoding module injects the operation data of the first client into the cloud game instance, so as to achieve the goal of correcting the operation data of the first client.
  • the purpose of the operation of the cloud game instance When the second client operates on the cloud game instance, the media transmission module can transmit the operation data of the second client to the media encoding module, and the media encoding module injects the operation data of the second client into the cloud game instance, so as to achieve the correct operation of the cloud game instance.
  • the purpose of the operation of the cloud game instance is the purpose of the cloud game instance.
  • the solution shown in Figure 1 can support multiple clients accessing the same cloud game instance of cloud games, and support multiple operations on the same cloud game instance, which improves the flexibility of cloud game operation modes to a certain extent and diversity.
  • multiple clients accessing a cloud game instance share the same stream processing resources, and the stream processing resources are shared by multiple clients.
  • the stream processing resources are shared by multiple clients.
  • multiple clients are prone to preempt resources from each other, resulting in media stream disruptions. There is a delay in the transmission process, and the definition of the media stream is low.
  • FIG. 2 shows a solution provided by another exemplary embodiment of the present application.
  • a schematic diagram of the processing scheme of cloud games as shown in Figure 2, cloud games can also support multiple (two or more) clients to access the same cloud game instance of cloud games, and support the same cloud game instance.
  • the embodiments of the present application take accessing the first client and the second client as an example for description.
  • each client connected to the same cloud game instance is bound to a separate stream processing resource of the cloud game instance, and data transmission is performed based on the individually bound separate stream processing resources.
  • the first client accessing the cloud game instance is bound to the first stream processing resources, and the first stream processing resource bound to the first client can be used between the cloud game instance and the first client.
  • resources for data transmission; the first channel of stream processing resources may include separate encoding and decoding resources and separate transmission control resources, the encoding and decoding resources in the first channel of stream processing resources may be provided by the first video encoding sub-module, and the first channel of stream processing resources may include separate encoding and decoding resources and separate transmission control resources.
  • the transmission control resources in the stream processing resources may be provided by the first media stream transmission sub-module.
  • the data transmission process between the cloud game instance and the first client based on the first stream processing resources may include: the first video encoding sub-module may be used to encode the game images collected from the cloud game instance, and encode The encoded first video stream is transmitted to the first media stream transmission sub-module; the first media stream transmission sub-module can send the first media stream composed of the first video stream and the audio stream to the first client; when the first client When the terminal operates the cloud game instance, the first media stream transmission sub-module can transmit the operation data of the first client to the first video encoding sub-module, and the first video encoding sub-module injects the operation data of the first client into the cloud. in the game instance.
  • the second client connecting to the cloud game instance is bound to the second stream processing resources, and the second client can process the second stream between the cloud game instance and the second client based on the second stream bound by the second client.
  • resources for data transmission may include separate encoding and decoding resources and separate transmission control resources, the encoding and decoding resources of the second channel stream processing resources may be provided by the second video coding sub-module, and the second channel stream processing resources
  • the resource transmission control resource may be provided by the second media stream transmission sub-module.
  • the data transmission process between the cloud game instance and the second client based on the second stream processing resources may include: the second video encoding sub-module may be used to encode the game images collected from the cloud game instance, and encode The encoded second video stream is transmitted to the second media stream transmission sub-module; the second media stream transmission sub-module can send the second media stream composed of the second video stream and the audio stream to the second client; when the second client When the terminal operates the cloud game instance, the second media stream transmission sub-module can transmit the operation data of the second client to the second video encoding sub-module, and the second video encoding sub-module injects the operation data of the second client into the cloud. in the game instance.
  • FIG. 3 shows a schematic diagram of the architecture of a cloud game processing system provided by an exemplary embodiment of the present application. As shown in FIG.
  • the cloud game processing system 30 may include a first terminal 301, a second terminal 302, a Three terminals 303 and a server 304; it should be noted that, in an actual application scenario, the number of terminals included in the cloud game processing system 30 may be at least one, and in this embodiment of the present application, the cloud game processing system 30 includes the first terminal 301 , the second terminal 302 and the third terminal 303 are used as examples for description.
  • any one of the first terminal 301, the second terminal 302 or the third terminal 303 may be a smart phone, a tablet computer, a notebook computer, a desktop computer, a vehicle-mounted device, a smart speaker, a smart watch, etc., but is not limited to this ;
  • the first terminal 301 can run the first client of cloud games;
  • the second terminal 302 can run the second client of cloud games, and
  • the third terminal 303 can run the observer client;
  • the first client , the second client and the observer client can be any of the following: an independent application program, an API, or an SDK (Software Development Kit, software development kit).
  • the server 304 of the cloud game can be an independent physical server, or a server cluster or distributed system composed of multiple physical servers, or can provide cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, Cloud servers for cloud communications, middleware services, domain name services, security services, CDN (Content Delivery Network) services, and basic cloud computing services such as big data and artificial intelligence platforms.
  • the first terminal 301 , the second terminal 302 , the third terminal 303 and the cloud game server 304 may be directly or indirectly connected through wired communication or wireless communication, which is not limited in this application.
  • the server 304 may include a cloud game instance, a media encoding module, and a media transmission module. in:
  • the media encoding module may include an image capture submodule, an audio capture submodule, an audio preprocessing submodule, and at least one video encoding submodule; in this embodiment of the present application, the media encoding module includes a first video encoding submodule and a second video encoding submodule.
  • the module is described as an example.
  • the image acquisition sub-module can be used to collect the game screen in the cloud game instance.
  • the audio collection submodule can be used to collect game audio in cloud game instances.
  • the first video encoding sub-module can be used to encode the captured game picture, and transmit the encoded first video stream to the media transmission module.
  • the second video encoding sub-module can be used to encode the captured game picture, and transmit the encoded second video stream to the media transmission module.
  • the audio preprocessing sub-module can be used to perform audio preprocessing on the collected game audio, and transmit the preprocessed game audio to the media transmission module; audio preprocessing refers to the simple processing of game audio before encoding. Audio preprocessing can improve the coding efficiency of game audio, and audio preprocessing can include noise reduction processing of game audio, extraction of audio features of game audio, and so on.
  • the media transmission module may include an audio encoding sub-module, a forwarding sub-module, and at least one media stream transmission sub-module; the embodiment of the present application takes the example of the media transmission module including the first media stream transmission sub-module and the second media stream transmission sub-module as an example. illustrate.
  • the forwarding sub-module may be used for data forwarding, for example, the forwarding sub-module may be used to forward the first video stream transmitted by the first video encoding sub-module to the first media stream transmission sub-module, and the forwarding sub-module may also be used to forward The second video stream transmitted by the second video encoding submodule is forwarded to the second media stream transmission submodule, and the forwarding submodule can also be used to forward the audio preprocessed game audio transmitted by the audio preprocessing submodule to the audio encoding submodule .
  • the audio encoding sub-module can be used to encode the pre-processed game audio to obtain an audio stream, and forward the audio stream to the first media stream transmission sub-module and the second media stream transmission sub-module.
  • the first media stream transmission sub-module may be configured to transmit the first media stream composed of the first video stream and the audio stream to the first client and the observer client.
  • the second media stream transmission submodule may be configured to transmit the second media stream composed of the second video stream and the audio stream to the second client.
  • the first video encoding sub-module can provide the encoding and decoding resources of the first channel of stream processing resources
  • the first media stream transmission sub-module can provide the transmission control resources of the first channel of stream processing resources; that is, the first video encoding sub-module and
  • the first media stream transmission sub-module jointly provides the first channel of stream processing resources.
  • the first channel of stream processing resources is bound to the first client, and the cloud game instance and the first client can perform data transmission based on the first channel of stream processing resources; the cloud game instance and the first client are based on the first channel of data transmission.
  • the data transmission process of the stream processing resources may include: the first video encoding sub-module may perform encoding processing on the game screen collected from the cloud game instance, and transmit the encoded first video stream to the first media stream transmission sub-module ;
  • the first media stream transmission sub-module can send the first media stream composed of the first video stream and the audio stream to the first client.
  • the first media stream transmission sub-module can transmit the operation data of the first client to the first video encoding sub-module, and the first video encoding sub-module transmits the operation data of the first client Data is injected into cloud game instances. In this way, binding the first client to the first stream processing resource can ensure efficient and stable data transmission between the first client and the cloud game instance.
  • the second video encoding sub-module can provide the encoding and decoding resources of the second channel of stream processing resources, and the second media stream transmission sub-module can provide the transmission control resources of the second channel of stream processing resources; that is, the second video encoding sub-module and The second media stream transmission sub-module jointly provides the second stream processing resources.
  • the second stream processing resource is bound to the second client, and the cloud game instance and the second client can perform data transmission based on the second stream processing resource; the cloud game instance and the second client are based on the second
  • the data transmission process of the stream processing resources may include: the second video encoding sub-module may perform encoding processing on the acquired game screen, and transmit the encoded second video stream to the second media stream transmission sub-module; the second media The streaming submodule may send the second media stream composed of the second video stream and the audio stream to the second client.
  • the second media stream transmission sub-module can transmit the operation data of the second client to the second video encoding sub-module, and the second video encoding sub-module transmits the operation data of the second client.
  • Data is injected into cloud game instances. In this way, binding the second client and the second stream processing resources can ensure efficient and stable data transmission between the second client and the cloud game instance.
  • the first stream processing resource may perform flow control during the transmission process of the first media stream.
  • the specific process of flow control is as follows: in the process of transmitting the first media stream to the first client, the first media stream transmission sub-module may also send a network detection packet to the first client, and receive the network feedback from the first client Information; network detection package refers to a detection toolkit that can be used to detect network congestion; network information refers to description information of network congestion.
  • the first media stream transmission sub-module may send a first flow control instruction to the first video encoding sub-module, and the first flow control instruction may be used to instruct the first video encoding sub-module to improve the first video encoding
  • the media encoding code rate in the sub-module, the frame rate of the media frame in the first video encoding sub-module is increased, and so on.
  • the first media stream transmission sub-module may send a second flow control instruction to the first video encoding sub-module, and the second flow control instruction may be used to instruct the first video encoding sub-module to reduce the first
  • the media encoding bit rate in the video encoding sub-module reducing the frame rate of the media frames in the first video encoding sub-module, discarding some media frames in the first media stream, and so on.
  • the media encoding bit rate may refer to the number of bits of the media stream transmitted per unit time (for example, 1 second); the higher the media encoding bit rate, the clearer the picture quality of the game screen; the lower the media encoding bit rate, the clearer the picture quality of the game screen.
  • the frame rate of the media frame can refer to the number of media frames in the encoded media stream per unit time (for example, 1 second). The higher the frame rate of the media frame, the smoother the game screen; pause. In this way, the flow control of the first client can be carried out in a targeted and independent manner, effectively reducing the time delay in the process of transmitting the media stream to the first client, and improving the clarity and fluency of the media stream.
  • the second stream processing resource may perform flow control during the transmission process of the second media stream.
  • the specific process of flow control is as follows: in the process of transmitting the second media stream to the second client, the second media stream transmission sub-module may also send a network detection packet to the second client, and receive the network feedback from the second client. information. When the network information indicates that the network is not congested, the second media stream transmission sub-module may send a first flow control instruction to the second video encoding sub-module, and the first flow control instruction may be used to instruct the second video encoding sub-module to improve the second video encoding The media encoding bit rate in the sub-module, the frame rate of the media frame in the second video encoding sub-module is increased, and so on.
  • the second media stream transmission sub-module may send a second flow control instruction to the second video encoding sub-module, and the second flow control instruction may be used to instruct the second video encoding sub-module to reduce the second The media encoding bit rate in the video encoding sub-module, reducing the frame rate of the media frames in the second video encoding sub-module, discarding some media frames in the second media stream, and so on.
  • the flow control of the second client can be carried out in a targeted and independent manner, effectively reducing the time delay generated in the process of transmitting the media stream to the second client, and improving the clarity and fluency of the media stream.
  • the operation data of the client with the operation authority for the cloud game instance can be injected into the cloud game instance, and the operation data of the client without the operation authority for the cloud game instance can be injected into the cloud game instance.
  • the client's operation data is discarded in transit.
  • the first video encoding sub-module may discard the operation data of the first client; or, if the second client does not have the operation authority for the cloud game instance , the second video encoding sub-module may discard the operation data of the second client.
  • the rights of each client accessing the cloud game instance can be controlled by discarding the operation data, which is beneficial to the rights management and control of each client accessing the cloud game instance.
  • Cloud game instances can support real-time adjustment of transmission parameters.
  • the client connected to the cloud game instance can send a transmission parameter setting request to the media transmission module, and the media transmission module can modify the original transmission parameters in response to the transmission parameter setting request.
  • the media encoding module can use the revised transmission parameters to modify the game.
  • the picture is encoded.
  • the first media stream transmission sub-module can The requested media encoding bit rate modifies the original media encoding bit rate, and then transmits the modified media encoding bit rate to the first video encoding sub-module; the first video encoding sub-module can use the modified media encoding bit rate Encode the game screen.
  • the second client that accesses the cloud game instance sends a request for setting the frame rate of the media frame to the second media stream transmission sub-module
  • the second media stream transmission sub-module can request the frame rate setting of the media frame according to the second media stream transmission sub-module.
  • the client can adjust the transmission parameters in real time according to the requirements, and the stream processing resources bound to it can adjust or modify the transmission parameters in real time according to the adjustment requirements of the client, which is very flexible and efficient.
  • the observer client connected to the cloud game instance can share the stream processing resources in the cloud game instance.
  • the observer client may be a client used by testers of the cloud game, and the observer client is used to monitor the data transmission process based on stream processing resources.
  • it can select a stream processing resource from the existing stream processing resources of the cloud game instance, and associate the selected stream processing resource with the observer client. end to bind.
  • Selecting a stream processing resource from the existing stream processing resources of the cloud game instance may refer to randomly selecting a stream processing resource from the existing stream processing resources of the cloud game instance for binding, such as the existing stream processing resources of the cloud game instance.
  • selecting a stream processing resource from the existing stream processing resources of the cloud game instance can also refer to selecting a specified stream processing resource from the existing stream processing resources of the cloud game instance for binding.
  • the existing stream processing resources are the first stream processing resource and the second stream processing resource. Assuming that the specified stream processing resource is the first stream processing resource, the observer client can be bound to the first stream processing resource.
  • the observer client After the observer client receives the first media stream transmitted by the first media stream transmission submodule, the observer client can parse and display the game screen in the first media stream, so as to verify whether the game screen is clear and smooth. In addition, the observer client only observes the game screen and does not participate in flow control. Therefore, sharing the first stream processing resources with the first client can effectively reduce resource consumption and save transmission bandwidth.
  • the cloud game server allows multiple clients to access and operate the same cloud game instance, which effectively improves the flexibility and diversity of cloud game operation modes.
  • the cloud game server creates and binds an independent stream processing resource for each client among multiple clients that access the same cloud game instance. Any stream processing resource can be used on the client to which it is bound. Data transmission with cloud game instances enables efficient and stable data transmission.
  • any stream processing resource can control the flow of its bound clients in a targeted and independent manner, effectively reducing the delay generated during the media stream transmission process, and effectively improving the clarity and fluency of the media stream.
  • the client when the client does not have the operation authority for the cloud game instance, its bound stream processing resources can control the authority of the client by discarding the operation data, which is beneficial to each client accessing the cloud game instance. Permission control on the terminal.
  • the client can adjust the transmission parameters in real time according to the requirements, and the stream processing resources bound to it can adjust or modify the transmission parameters in real time according to the adjustment requirements of the client, which is very flexible and efficient.
  • the cloud game processing solution proposed in the embodiments of the present application may also be combined with the blockchain, for example, the client of the cloud game or the server of the cloud game may be a node in the blockchain network; the client in the embodiment of the present application
  • the binding process with stream processing resources and the data transmission process between the client and cloud game instances based on stream processing resources can all be uploaded to the blockchain for storage; Media streams, operation data, etc. can be stored in the blockchain in the form of blocks; for another example, the binding relationship between the client and stream processing resources can be stored in the blockchain in the form of blocks.
  • the binding process between the client and the stream processing resources is more secure and reliable.
  • the data transmission process is more secure and reliable.
  • the cloud game processing system described in the embodiments of the present application is for the purpose of illustrating the technical solutions of the embodiments of the present application more clearly, and does not constitute a limitation on the technical solutions provided by the embodiments of the present application. It can be seen that, with the evolution of the system architecture and the emergence of new business scenarios, the technical solutions provided in the embodiments of the present application are also applicable to similar technical problems.
  • FIG. 4 shows a schematic flowchart of a cloud game processing method provided by an exemplary embodiment of the present application.
  • the cloud game processing method may be executed by the cloud game processing device provided by the embodiment of the present application.
  • the game processing device may be the cloud game server 304 in the cloud game processing system 30 shown in FIG. 3 .
  • the processing method of the cloud game may include the following S401 to S404:
  • S401 Receive an access request from a second client for a cloud game instance.
  • the cloud game instance is created according to the play request of the first client for the cloud game.
  • the first client is bound to the first stream processing resource of the cloud game instance, and the connection between the cloud game instance and the first client is Data transmission is achieved through the first stream processing resource.
  • the server of the cloud game receives a play request for the cloud game from the first client, it can acquire the number of cloud game instances that have been created in the cloud game.
  • the cloud game server may create a cloud game instance according to the first client's play request for the cloud game, and create a first Stream processing resources, bind the first stream processing resources with the first client, and perform data transmission between the cloud game instance and the first client based on the first stream processing resources; where the instance creation threshold may refer to The upper limit of the number of cloud game instances that a cloud game can create, for example, the upper limit of the number of cloud game instances that a cloud game can create is 50,000.
  • the processor of the cloud game can return a cloud game instance creation failure notification to the first client; for the first client, receiving After the cloud game instance creation failure notification, the first client can re-initiate the play request for the cloud game; the first client can also wait in line until the number of cloud game instances created in the cloud game does not exceed (that is, less than or equal to ) instance creation threshold, the cloud game server creates a cloud game instance.
  • Implementing data transmission between the cloud game instance and the first client through the first stream processing resource may include: acquiring the media stream in the cloud game instance; ) is sent to the first client; when the first client requests to operate the cloud game instance, the operation data of the first client is received through the first stream processing resource.
  • the access request of the second client to the cloud game instance is triggered and sent by the shared password.
  • the cloud game server receives the first client's sharing request for the cloud game instance; after the cloud game server receives the first client's sharing request for the cloud game instance, it can respond to the first client's sharing request , and returns the shared password of the cloud game instance to the first client, so that the first client can share the shared password to other clients except the first client.
  • the first client after the first client receives the sharing password of the cloud game instance returned by the cloud game server, it can share the sharing password to the second client; the second client receives the shared password shared by the first client.
  • the sharing password can be input into the second client, for example, the sharing password can be input into the cloud game participation interface of the second client, thereby triggering the second client to send a connection for the cloud game instance to the cloud game server. input request.
  • the shared password may refer to a cloud game participation link, and the second client can directly click on the shared password shared by the first client to trigger the cloud game server to send a message for the cloud game instance. access request.
  • the shared password may include the ID of the cloud game instance and the login password of the cloud game instance; the ID of the cloud game instance may be used to identify the cloud game instance, that is, it can be ensured that the cloud game instance requested by the second client to access is the first cloud game instance.
  • the identity of the second client is verified by using the login password of the cloud game instance to ensure that the second client accessing the cloud game instance is credible.
  • a second stream processing resource of the cloud game instance can be created.
  • the two-way stream processing resources may be provided by the second video encoding sub-module and the second media stream transmission sub-module.
  • the second video encoding sub-module can be used to encode the collected game images of the cloud game instance, and transmit the encoded second video stream to the second media stream transmission sub-module; the second media stream transmission sub-module
  • the module can be used to transmit the second media stream composed of the second video stream and the audio stream to the second client, and the first stream processing resources and the second stream processing resources are independent of each other.
  • the access request of the second client may include a user ID (userID2) of the second client and a first access policy (Exclusive policy), and the first access policy may be used to indicate that the type of the second client is a user type.
  • creating the second stream processing resource of the cloud game instance may include: assigning an access session identifier (SDK Session ID2) to the second client according to the user identifier of the second client; and according to the first access policy , and generate the second stream processing resource and the identifier (CG Session ID2) of the second stream processing resource of the cloud game instance, and the second stream processing resource and the corresponding identifier may be generated in real time.
  • SDK Session ID2 an access session identifier
  • CG Session ID2 the second stream processing resource and the identifier
  • S403 Bind the second stream processing resource with the second client.
  • the second stream processing resource can be bound to the second client. Binding the second stream processing resource to the second client means: by establishing a binding relationship between the access session identifier of the second client and the identifier of the second stream processing resource, the second stream processing resource is bound to the second client. Binding of the road flow processing resource and the second client.
  • S404 Implement data transmission between the second client and the cloud game instance through the second stream processing resource.
  • Implementing data transmission between the second client and the cloud game instance through the second stream processing resource may include: acquiring a media stream in the cloud game instance (for example, the above-mentioned second media stream); transferring the media through the second stream processing resource The stream is sent to the second client; and when the second client requests to operate the cloud game instance, the operation data of the second client is received through the second stream processing resource.
  • a media stream in the cloud game instance for example, the above-mentioned second media stream
  • the stream is sent to the second client; and when the second client requests to operate the cloud game instance, the operation data of the second client is received through the second stream processing resource.
  • the third client may be a client other than the first client and the second client that requests to access the cloud game instance.
  • the cloud game server may receive an access request from the third client for the cloud game instance; the access request of the third client may carry the user ID (userID3) and access policy of the third client.
  • userID3 user ID
  • FIG. 5 shows a schematic flowchart of the response process of the access request of the client provided by an exemplary embodiment of the present application, as shown in FIG.
  • the server of the cloud game can create a third stream processing resource of the cloud game instance in response to the access request of the third client, The third channel stream processing resource is bound to the third client, and data transmission is performed between the third client and the cloud game instance based on the third channel stream processing resource.
  • the access policy is the second access policy (Shared policy)
  • the cloud game server can check whether there are stream processing resources created according to the first access policy in the cloud game instance; the second access policy
  • the access policy may be used to indicate that the type of the third client is an observer (for example, the third client may be the observer client mentioned in the above embodiment).
  • the cloud game instance can respond to the access request of the third client , select a stream processing resource from the first stream processing resource and the second stream processing resource; bind the selected stream processing resource with the third client; and create a connection between the third client and the cloud game instance Data transmission is performed based on the selected one stream processing resource; selecting one stream processing resource from the first stream processing resource and the second stream processing resource of the cloud game instance may refer to the first stream processing resource of the cloud game instance.
  • One stream processing resource is randomly selected from the resources and the second stream processing resource.
  • the first stream processing resource can be selected; one stream processing resource is selected from the first stream processing resource and the second stream processing resource of the cloud game instance. It can also refer to selecting a specified stream processing resource from the first stream processing resource and the second stream processing resource of the cloud game instance. Assuming that the specified stream processing resource is the first stream processing resource, then the selected stream The processing resource is the first stream processing resource. If there is no stream processing resource created according to the first access policy in the cloud game instance, then in response to the access request of the third client, a third stream processing resource of the cloud game instance can be created, and the third stream processing resource can be created. Bind with the third client, and perform data transmission between the third client and the cloud game instance based on the third stream processing resources.
  • creating the third stream processing resource of the cloud game instance and binding the third stream processing resource with the third client may refer to: assigning an access session to the third client according to the user ID of the third client identification (SDK Session ID3); and according to the first access strategy, generate the third-channel stream processing resource and the identifier (CG Session ID3) of the third-channel stream processing resource of the cloud game instance; and the access session at the third client A binding relationship is established between the identifier and the identifier of the third channel stream processing resource.
  • SDK Session ID3 the user ID of the third client identification
  • CG Session ID3 the identifier of the third-channel stream processing resource of the cloud game instance
  • binding the selected stream processing resource to the third client may refer to: in the third client A binding relationship is established between the access session identifier of the terminal and the identifier (CG Session ID1) of the first stream processing resource.
  • multiple clients can be allowed to access and operate the same cloud game instance, which effectively improves the flexibility and diversity of cloud game operation modes.
  • a separate stream processing resource can be created and bound for each of the multiple clients accessing the same cloud game instance, and any stream processing resource of the cloud game instance can be used in the stream processing resource
  • Data transmission is performed between the bound client and the cloud game instance, which is beneficial to carry out targeted and independent encoding flow control and quality control for each client based on each stream processing resource.
  • Stream processing resources are independent and independent of each other, enabling efficient and stable data transfer between clients and cloud game instances.
  • the binding relationship can be quickly determined based on the binding relationship.
  • the second channel of stream processing resources, and the operation data of the second client is injected into the cloud game instance through the second channel of stream processing resources; when the media stream of the cloud game instance is obtained, the second channel can also be quickly determined based on the binding relationship.
  • the second client to which the channel stream processing resources are bound so that the media stream can be quickly forwarded to the second client through the second channel stream processing resources, which effectively improves the accuracy of the data transmission process and reduces the delay in the data transmission process.
  • FIG. 6 shows a schematic flowchart of a cloud game processing method provided by another exemplary embodiment of the present application.
  • the cloud game processing method may be executed by the cloud game processing device provided by the embodiment of the present application.
  • the processing device of the cloud game may be the server 304 of the cloud game in the processing system 30 of the cloud game shown in FIG. 3 .
  • the processing method of the cloud game may include the following S601 to S606:
  • S601 Receive an access request from a second client for a cloud game instance.
  • the cloud game instance is created according to the play request of the first client for the cloud game.
  • the first client is bound to the first stream processing resource of the cloud game instance, and the connection between the cloud game instance and the first client is Data transmission is achieved through the first stream processing resource.
  • the access request of the second client may include the user identifier of the second client and the first access policy, and the first access policy may be used to indicate that the type of the second client is a user type.
  • creating the second stream processing resource of the cloud game instance may include: assigning an access session identifier to the second client according to the user identifier of the second client; and generating the cloud game instance according to the first access policy The second channel stream processing resource and the identifier of the second channel stream processing resource.
  • S603 Bind the second stream processing resource with the second client.
  • the second stream processing resource can be bound to the second client. Binding the second stream processing resource to the second client means: by establishing a binding relationship between the access session identifier of the second client and the identifier of the second stream processing resource, the second stream processing resource is bound to the second client. Binding of the road flow processing resource and the second client.
  • S604 Acquire the media stream in the cloud game instance.
  • S605 Send the media stream to the second client based on the second stream processing resource.
  • Cloud game instances can support real-time adjustment of transmission parameters.
  • the client connected to the cloud game instance can send a transmission parameter setting request to the cloud game server, and the cloud game server can respond to the transmission parameter setting request, revise the original transmission parameters, and use the revised transmission parameters to modify the game.
  • the picture is encoded.
  • the transmission parameters may include at least one of the following: a media coding rate, a frame rate and a resolution of a media frame.
  • the media encoding bit rate can refer to the number of bits of the media stream transmitted per unit time (for example, 1 second). The higher the media encoding bit rate, the clearer the picture quality of the game screen; Not clear.
  • the frame rate of the media frame can refer to the number of media frames in the encoded media stream per unit time (for example, 1 second).
  • Resolution can include device resolution and encoding resolution; device resolution can also be called display resolution, which refers to the number of horizontal pixels and the number of vertical pixels on all visible areas on the display screen of the device; for example, the device resolution is 720 ⁇ 960, which means that 720 pixels are displayed horizontally and 960 pixels are displayed vertically on all visible areas of the display screen of the device; once the device encoding rate is determined, it cannot be changed.
  • the encoding resolution may refer to the number of horizontal pixels and the number of vertical pixels in the encoded game screen; for example, if the encoding resolution is 720 ⁇ 960, it means that the encoded game screen displays 720 pixels horizontally and 960 pixels vertically.
  • the cloud game server can receive the device resolution sent by the first client based on the first stream processing resources; the device resolution may refer to The device resolution of the first terminal running the first client, the device resolution of the first terminal may refer to the number of horizontal pixels and the number of vertical pixels on all visible areas of the display screen of the first terminal; The device resolution is 720 ⁇ 960, which means that 720 pixels are displayed horizontally and 960 pixels are displayed vertically on all visible areas of the display screen of the first terminal.
  • the cloud game server may set the container window resolution of the cloud game instance according to the device resolution.
  • Setting the container window resolution of the cloud game instance according to the device resolution may include: setting the cloud game instance's container window resolution.
  • the first ratio of the game instance is the same as the second ratio of the first terminal.
  • the first ratio refers to the ratio between the number of horizontal pixels and the number of vertical pixels in the container window of the cloud game instance.
  • the second ratio refers to the ratio of the first terminal.
  • the ratio between the number and the number of vertical pixels is 0.75.
  • the cloud game server can also send the container window resolution to the first client based on the first stream processing resource; when the first client requests to operate the cloud game instance, it can match the device resolution with the container window resolution according to the device resolution.
  • the coordinates of the touch screen are operated to perform coordinate transformation; for example, the coordinates of the first operation touch screen under the device resolution can be converted into the coordinates of the second operation touch screen under the resolution of the container window.
  • the container window resolution of the cloud game instance is determined, it cannot be changed. If the third ratio in the encoding resolution set by the client accessing the cloud game instance is different from the first ratio, then the encoded The game screen in the media stream will be stretched and deformed, so the third ratio of the encoding resolution set by the client needs to be kept the same as the first ratio of the cloud game instance; the third ratio refers to the encoding resolution set by the client. The ratio between the number of horizontal pixels and the number of vertical pixels in the rate.
  • the cloud game server can send the container window resolution to the second client based on the second stream processing resources; when the second client requests When operating a cloud game instance, the coordinates of the touch screen can be converted according to the device resolution and the container window resolution.
  • the server of the cloud game may also receive a resolution setting request sent by the second client based on the second stream processing resource, and the resolution setting request may carry the encoding resolution requested by the second client; the server of the cloud game may The window resolution modifies the encoding resolution set by the request; and the modified encoding resolution can be used to encode the media stream transmitted based on the second stream processing resource.
  • the server of the cloud game may modify the encoding resolution set by the request according to the container window resolution, which may include: setting the third ratio of the encoding resolution set by the request to be the same as the first ratio of the cloud game instance. For example, if the encoding resolution requested by the second client is 480P, the encoding resolution set in the request can be modified according to the container window resolution of 1080 ⁇ 1440, and the modified encoding resolution is 480 ⁇ 640.
  • FIG. 7a shows a schematic flowchart of a resolution setting process provided by an exemplary embodiment of the present application.
  • the second video encoding sub-module may transmit the container window resolution of the cloud game instance to the second media streaming sub-module, for example, the container window resolution of the cloud game instance is 1080 ⁇ 1440.
  • the second media stream transmission sub-module can modify the requested encoding resolution according to the container window resolution to obtain the modified encoding Resolution, for example, the requested correction encoding resolution is 480P, and the corrected encoding resolution is 480 ⁇ 640. Then the second media stream transmission sub-module can transmit the modified encoding resolution to the second video encoding sub-module, and the second video encoding sub-module can use the modified encoding resolution to perform processing on the media stream to be transmitted to the second client encoding process.
  • the cloud game server can adjust or modify transmission parameters in real time according to the transmission parameter setting request of the client accessing the cloud game instance, so as to better meet the transmission parameters of the client accessing the cloud game instance.
  • Parameter setting requirements very flexible and efficient.
  • Cloud game instances can also support flow control during data transmission.
  • the server of the cloud game can send a network detection packet to the second client based on the second stream processing resources, and receive network information fed back by the second client; the network detection packet refers to a detection tool that can be used to detect network congestion Packet; network information refers to information describing network congestion. Then, the server of the cloud game can adjust the data volume of the network detection packet according to the network information, and adjust the transmission parameters of the second stream processing resources.
  • adjusting the data volume of the network detection packet according to the network information, and adjusting the transmission parameters of the second channel stream processing resource may include: if the network information indicates that the network has been congested, the data volume of the network detection packet may be reduced, and a The first adjustment is performed on the transmission parameters of the two-channel stream processing resources; if the network information indicates that the network is not congested, the data volume of the network detection packet can be increased, and the second adjustment is performed on the transmission parameters of the second-channel stream processing resources; the first The adjustment may include at least one of the following: reducing the media encoding bit rate in the second channel of stream processing resources, reducing the frame rate of the media frames in the second channel of stream processing resources, and discarding some media frames in the second channel of stream processing resources; The second adjustment may include at least one of the following: increasing the media encoding bit rate in the second channel of stream processing resources, and increasing the frame rate of the media frames in the second channel of stream processing resources.
  • FIG. 7b shows a schematic flowchart of a flow control process provided by an exemplary embodiment of the present application.
  • the flow control process between the second client and the cloud game instance is used as an example.
  • the flow control process between the first client and the cloud game instance is similar to the flow control process between the second client and the cloud game instance, and details are not repeated here.
  • the flow control process shown in FIG. 7b may include: after the second video encoding submodule of the second stream processing resource transmits the encoded second video stream to the second media stream transmission submodule of the second stream processing resource,
  • the second media stream transmission sub-module may transmit the second media stream including the second video stream and the audio stream to the second client.
  • the second media stream transmission submodule may also send a network detection packet to the second client, and receive network information fed back by the second client.
  • the second media stream transmission sub-module may send a flow control instruction to the second video encoding sub-module according to the network information; if the network information indicates that the network is not congested, the second media stream transmission sub-module may send the second video encoding sub-module the first A flow control instruction, the first flow control instruction can be used to instruct the second video encoding sub-module to increase the media encoding bit rate in the second video encoding sub-module, increase the frame rate of the media frame in the second video encoding sub-module, etc.; if The network information indicates that the network is congested, then the second media stream transmission sub-module may send a second flow control instruction to the second video encoding sub-module, and the second flow control instruction may be used to instruct the second video encoding sub-module to reduce the
  • the second media stream transmission sub-module may send the second media stream and the network detection packet to the second client through an unreliable transmission protocol;
  • the unreliable transmission protocol may include RTP (Real-time Transport Protocol, real-time transmission protocol). Since the reliable transmission protocol TCP (Transmission Control Protocol, Transmission Control Protocol) cannot lose packets in the case of network congestion or the packet loss and retransmission lead to increased delay, the transmission efficiency of TCP in the case of network congestion is low; based on this, this application implements
  • the unreliable transmission protocol RTP can be used to transmit media streams and network detection packets.
  • the unreliable transmission protocol RTP can actively lose packets in the case of network congestion, which is beneficial to effectively reduce the transmission delay in the case of network congestion.
  • the second media stream transmission sub-module may adopt a protocol with a feedback mechanism to receive network information fed back by the second client;
  • the protocol with a feedback mechanism may include RTCP (RTP Control Protocol, RTP control protocol), and the network information may include RTCP RR (RTCP Receiver Report, RTCP Receiver Report), the client feeds back network information every target time period, and the target time period can be, for example, 100 milliseconds.
  • Fig. 7c shows a schematic flowchart of a media frame discarding process provided by an exemplary embodiment of the present application. As shown in Fig.
  • the second media stream transmission sub-module may send a message to the second The video encoding sub-module sends a media frame discarding request; then, in response to the media frame discarding request, the second video encoding sub-module may discard some of the collected media frames according to the frame discarding policy after the image acquisition sub-module has acquired the game screen; Discarding some media frames collected by the frame dropping policy may refer to discarding some media frames collected according to the target ratio, and the target ratio may be one-third, one-tenth, or two of the number of media frames collected by the image capture sub-module. One percent and so on. When the network information indicates that the network is not congested, the above frame dropping policy can be disabled.
  • the media encoding module and the media transmission module in the cloud game server can jointly perform flow control, which can effectively reduce the transmission delay of the media stream and improve the quality of the game screen in the media stream. Efficient and stable data transmission between clients and cloud game instances.
  • Cloud game instances can also support permission control during data transmission.
  • the cloud game server can request to configure permissions for the second client according to the permission settings of the first client, and the permissions can include at least one of the following: operation permissions for cloud game instances or browsing permissions for cloud game instances;
  • the operation permission refers to the permission to operate the cloud game instance;
  • the browsing permission for the cloud game instance refers to the permission to browse the game screen of the cloud game instance, and users with the browsing permission for the cloud game instance can only browse other users. Operate the game screen of the cloud game instance, but cannot operate the cloud game instance. If the second client does not have the operation authority for the cloud game instance, when the cloud game server receives the operation data of the second client based on the second stream processing resource, the operation data of the second client may be discarded.
  • the operation data may include at least one of the following: Touch operation data (for example, the above-mentioned operation touch screen coordinates), text input data, voice input data, GPS (Global Positioning System, global positioning system) data, sensor sensing data data, etc.
  • Touch operation data for example, the above-mentioned operation touch screen coordinates
  • text input data for example, the above-mentioned operation touch screen coordinates
  • voice input data for example, the above-mentioned operation touch screen coordinates
  • GPS Global Positioning System, global positioning system
  • sensor sensing data data etc.
  • Fig. 7d shows a schematic flowchart of a permission control process provided by an exemplary embodiment of the present application.
  • the first media stream transmission sub-module provides a permission setting interface (HTTP Restful interface) to the first client
  • a permission setting request can be sent to the first media streaming sub-module through the permission setting interface of the first media streaming sub-module to request to configure permissions for the second client, so that the first media streaming sub-module can be based on the permission of the first client.
  • the setting request configures the permission for the second client, and sends the permission configuration result to the first video encoding sub-module, and the first video encoding sub-module can forward the permission configuration result to the second video encoding sub-module.
  • the second video encoding sub-module may discard the operation data of the second client. If the authority configuration result indicates that the second client has the operation authority for the cloud game instance, the second video encoding sub-module may inject the operation data of the second client into the cloud game instance to operate the cloud game instance.
  • Cloud game instances can also support simultaneous operations by multiple users.
  • two users namely the first client and the second client, operate the cloud game instance as an example.
  • the second operation control in the game instance is mapped to each other; both the first operation control and the second operation control may be joysticks in the cloud game instance.
  • FIG. 7e shows a schematic flowchart of a multi-user operation cloud game instance provided by an exemplary embodiment of the present application. As shown in FIG.
  • the processor of the cloud game can inject the operation data of the first client into the first operation control, so as to control the first operation control to operate the cloud game instance; specifically, when the first client requests to operate the cloud game instance, the first A media stream transmission sub-module can receive the operation data of the first client, and transmit the received operation data of the first client to the first video encoding sub-module, and the first video encoding sub-module can inject the operation data of the first client into the first operation control to operate the cloud game instance by controlling the first operation control.
  • the first video encoding sub-module When the first video encoding sub-module acquires the game screen of the cloud game instance, the first video encoding sub-module can encode the game screen to obtain a first video stream, and transmit the first video stream to the first media transmission sub-module , and then the first media stream including the first video stream and the audio stream is transmitted to the first client by the first media transmission sub-module.
  • the cloud game server can inject the operation data of the second client into the second operation control, so as to control the second operation control to operate the cloud game instance;
  • the second media stream transmission sub-module may receive the operation data of the second client, and transmit the received operation data of the second client to the second video encoder.
  • the second video encoding sub-module can inject the operation data of the second client into the second operation control, so as to control the second operation control to operate the cloud game instance.
  • the second video encoding sub-module can encode the game screen to obtain a second video stream, and transmit the second video stream to the second media transmission sub-module , and then the second media stream including the second video stream and the audio stream is transmitted to the first client by the second media transmission sub-module.
  • the mapping between the first client and the first operation control in the cloud game instance may include the following two situations: there is a mapping relationship between the identifier of the first stream processing resource and the identifier of the first operation control, that is, A binding relationship is established between the identifier of the first stream processing resource and the identifier of the first operation control; or, the operation data sent by the first client carries the identifier of the first operation control.
  • the mapping between the second client and the second operation control in the cloud game instance may include the following two situations: there is a mapping relationship between the identifier of the second stream processing resource and the identifier of the second operation control, that is, in the first A binding relationship is established between the identifier of the two-way stream processing resource and the identifier of the second operation control; or, the operation data sent by the second client carries the identifier of the second operation control.
  • the cloud game instance supports the simultaneous injection of operation data by multiple clients, which effectively enriches the operation mode of the cloud game.
  • the server of the cloud game can adjust or modify the transmission parameters in real time according to the transmission parameter setting request of the client accessing the cloud game instance, so as to better meet the transmission parameter setting requirements of the client accessing the cloud game instance.
  • the media encoding module and the media transmission module in the cloud game server can jointly perform flow control, which can effectively reduce the transmission delay of the media stream and improve the quality of the game screen in the media stream. Efficient and stable data transfer.
  • cloud game instances also support authority control.
  • the operation data of clients with operation authority for cloud games can be injected into cloud game instances, and the operation data of clients without operation authority for cloud games are discarded during the transmission process. Enriched the operation mode of cloud games.
  • the cloud game instance also supports simultaneous operation by multiple people, that is, multiple clients connected to the cloud game instance can inject operation data into the cloud game instance, which further enriches the operation mode of the cloud game.
  • the processing scheme of the cloud game mentioned in the above-mentioned embodiments can be applied to the two game scenarios of the anchor user's training cloud game and the arcade multi-user operation cloud game.
  • the following two game scenarios are respectively introduced:
  • the first client can be the anchor client used by the anchor user, and the second client can be the audience client used by the audience user; in the actual game scene, the audience user can Including at least one, that is to say, the audience client may include at least one, and the embodiment of the present application takes the case of including one audience user as an example for description.
  • the cloud game server can create a cloud game instance according to the play request of the streamer client for the cloud game, create the first stream processing resources of the cloud game instance, and link the streamer client with the first stream processing resource. Resources are bound, and data transmission can be performed between the cloud game instance and the host client based on the first stream processing resources.
  • the play request of the cloud game is generated on the host client in response to the cloud game play operation of the host user; as shown in FIG. 8a, FIG. 8a shows a cloud game play operation provided by an exemplary embodiment of the present application
  • a schematic diagram of the interface, the service interface 80 of the host client displays game information of multiple cloud games (such as cloud game icons, cloud game pictorial, etc.) and cloud game play controls.
  • the client of the host user can generate a play request for the cloud game 2, and send the play request of the cloud game 2 to the server of the cloud game .
  • the cloud game server can create a cloud game of cloud game 2 according to the play request of the host client for cloud game 2 instance; the cloud game instance is successfully created, and the game interface 81 of the cloud game instance of cloud game 2 can be displayed in the host client; wherein, the instance creation threshold refers to the upper limit of the number of cloud game instances allowed to be created by a cloud game.
  • the cloud game processor can return a cloud game instance creation failure notification to the host client, and the host client can According to the cloud game instance creation failure notification, a creation failure prompt message 802 is output in the service interface 80 (for example, as shown in FIG.
  • the anchor client needs to wait in line until the cloud game instance creation eligibility (that is, the number of created cloud game instances in cloud game 2 does not exceed the instance creation threshold)
  • the cloud game server can create a game instance of cloud game 2 for the play request of cloud game 2; cloud game If the instance is successfully created, the game interface 81 of the cloud game instance of the cloud game 2 can be displayed on the host client.
  • FIG. 8b shows a schematic interface diagram of a cloud game sharing operation provided by an exemplary embodiment of the present application.
  • the game interface 81 of cloud game 2 is displayed on the host client, and the game interface 81 may include the sharing control 811 of the cloud game instance; when the sharing control 811 of the cloud game instance is selected , the host client can send a sharing request for the cloud game instance to the cloud game server; after the cloud game server receives the sharing request from the host client for the cloud game instance, in response to the sharing request from the host client, send a request to the host client Returns the shared password of the cloud game instance; in one implementation, the host client can output the shared password of the cloud game instance to the game interface 81, and the shared password can include the cloud game instance identifier and the cloud game instance login password, As shown in Figure 8b, the sharing password 812 "Your account password is: 0021"; in another implementation manner, the host client can send the sharing password of the cloud game instance
  • FIG. 8c shows a schematic flowchart of an access process of a cloud game instance provided by an exemplary embodiment of the present application.
  • the audience user obtains the sharing password
  • the terminal used by the audience user does not have the client of the cloud game installed (that is, the audience client is not installed)
  • the audience user needs to download and install the login cloud game in the terminal. client.
  • the audience user can enter the sharing password in the audience client, for example, the sharing password can be entered in the game participation interface of the audience client; input the sharing password; After that, the viewer client can send an access request to the server of the cloud game.
  • the sharing password may refer to the participation link of the cloud game. If the client of the cloud game has been installed on the terminal of the audience user, the audience user can directly click the share in the live broadcast interface of the anchor displayed in the audience client. password, or the audience user can directly click the shared password shared by the host client to the audience client, which can trigger the sending of an access request to the cloud game server.
  • the cloud game server can return an access failure notification to the viewer client; after the viewer client receives the access failure notification, it can The access failure notification outputs an access failure prompt to the audience user, for example, the prompt content of the access failure prompt may be "the access location of cloud game 2 is full"; wherein, the access quantity threshold refers to the number of accesses allowed to access cloud game 2 The maximum number of clients in a cloud game instance.
  • the viewer client is allowed to access the cloud game instance; after the viewer client successfully accesses the cloud game instance, the cloud game server can create The second channel stream processing resource of the cloud game instance, and the viewer client is bound to the second channel stream processing resource, and data transmission between the cloud game instance and the viewer client can be performed based on the second channel stream processing resource.
  • the host client Before the viewer client is connected to the cloud game instance, the host client has the operation permission of the cloud game instance, that is, the host client can operate the cloud game instance.
  • the cloud game server can request to configure permissions for the viewer client according to the permission settings of the host client.
  • Permissions may include at least one of the following: operation permissions for cloud game instances or browsing permissions for cloud game instances; operation permissions for cloud game instances refer to permissions that can operate cloud game instances; browsing permissions for cloud game instances Refers to the permission to browse the game screen of the cloud game instance. Users with the browse permission of the cloud game instance can only browse the game screen of other users operating the cloud game instance, and cannot operate the cloud game instance.
  • the cloud game server requests to configure the operation authority of the cloud game instance for the viewer client according to the permission setting of the host client, the operation data of the viewer client is injected into the cloud game instance, and the viewer client can Operate the cloud game instance; the host client can browse the game screen of the cloud game instance controlled by the audience client, and output a control prompt 813 in the game interface 81 (for example, "the audience client is controlling" shown in Figure 8b ).
  • the cloud game server requests to configure the viewing permission of the cloud game instance for the viewer client according to the permission setting of the host client, the operation data of the viewer client is discarded during the transmission to the cloud game instance. , the viewer client cannot operate the cloud game instance, but can only browse the game screen of the cloud game instance controlled by the host client.
  • the process of creating a cloud game instance triggered by the first client and the process of accessing the cloud game instance by the second client are similar to the game scene in which the host trains the cloud game. It is not repeated here.
  • the difference between the arcade-type multi-user operation cloud game scene and the game scene in which the anchor trains the cloud game is that in the game scene where the anchor trains the cloud game, the second client's authority to the cloud game instance is the cloud game server.
  • the first client is mapped to the first operation control, and the first client selects the two-player mode in the game interface; then, the second client After connecting to the cloud game instance, the second client is mapped to the second operation control; the user of the first client can inject the operation data of the first client into the first operation control to control the first operation lever according to the injected operation data
  • the user of the second client can inject the operation data of the second client into the second operation stick, so as to control the second operation stick to control the operation data in the cloud game instance according to the injected operation data.
  • the second fighter performs the operation to achieve double combat.
  • the anchor client can switch and transfer operation permissions between the anchor client and the audience client by sending a permission setting request to the cloud game server, so as to meet the needs of the anchor. practice game requirements. It can be seen from the above game scenarios of arcade multi-user operating cloud games that multiple clients accessing the cloud game instance have operation rights for the cloud game instance, and can operate the cloud game instance to meet the game requirements of multi-user participation. .
  • the cloud game processing solutions mentioned in the embodiments of this application can enrich the play scenarios of cloud games; and the clients participating in cloud games all have independent one-way stream processing resources, which can ensure the data transmission process between the client and the cloud game instance Efficiently and smoothly, the game screen displayed in each client is clear and smooth, which effectively improves the user's game participation experience.
  • FIG. 9 shows a schematic structural diagram of a cloud game processing apparatus provided by an exemplary embodiment of the present application.
  • the cloud game processing apparatus 90 may be set in a cloud game processing device.
  • the processing device may be the server 304 in the cloud game processing system shown in FIG. 3 ; the cloud game processing device 90 may be used to execute the corresponding steps in the method embodiments shown in FIG. 4 or FIG. 6 .
  • the apparatus 90 may include the following units:
  • the media transmission module 901 is configured to receive an access request from the second client for the cloud game instance, the cloud game instance is created according to the play request of the first client for the cloud game, and the first client and the cloud game instance have the first access request.
  • One stream processing resource is bound, and the data transmission between the cloud game instance and the first client is realized through the first stream processing resource;
  • the media encoding module 902 and the media transmission module 901 are both configured to create the second stream processing resource of the cloud game instance in response to the access request of the second client;
  • the media transmission module 901 is further configured to bind the second stream processing resource with the second client; and implement data transmission between the second client and the cloud game instance through the second stream processing resource.
  • the access request of the second client carries the user identifier of the second client and the first access policy, and the first access policy is used to indicate that the type of the second client is the user type;
  • the media encoding module 902 and the media transmission module 901 are both configured to perform the following steps when creating the second stream processing resource of the cloud game embodiment in response to the access request of the second client:
  • the second stream processing resource and the identifier of the second stream processing resource of the cloud game instance are generated.
  • the media transmission module 901 when used to bind the second stream processing resource with the second client, it is specifically configured to perform the following steps:
  • the binding of the second stream processing resource and the second client is realized.
  • the media transmission module 901 is further configured to perform the following steps:
  • the media transmission module 901 is configured to perform the following steps when performing data transmission between the second client and the cloud game instance based on the second stream processing resource:
  • the media transmission module 901 is further configured to perform the following steps:
  • the media transmission module 901 is configured to perform the following steps when adjusting the data volume of the network detection packet and adjusting the transmission parameters of the second stream processing resource according to the network information:
  • the network information indicates that the network has been congested, reducing the data volume of the network detection packet, and performing the first adjustment on the transmission parameter of the second channel stream processing resource;
  • the data volume of the network detection packet is increased, and the second adjustment is performed on the transmission parameter of the second channel stream processing resource;
  • the first adjustment includes at least one of the following: reducing the media encoding bit rate in the second channel of stream processing resources, reducing the frame rate of media frames in the second channel of stream processing resources, and discarding part of the second channel of stream processing resources media frame;
  • the second adjustment includes at least one of the following: increasing the media encoding bit rate in the second channel of stream processing resources, and increasing the frame rate of the media frames in the second channel of stream processing resources.
  • the media transmission module 901 is further configured to perform the following steps: configure permissions for the second client according to the permission setting request of the first client, where the permissions include at least one of the following: operation permissions for cloud game instances or permissions for Browsing permissions for cloud game instances;
  • the media encoding module 902 is further configured to perform the following steps: if the second client does not have the operation authority for the cloud game instance, when the operation data of the second client is received through the second stream processing resource, discard the operation data of the second client. Manipulate data.
  • the first client is mapped with the first operation control in the cloud game instance
  • the second client is mapped with the second operation control in the cloud game instance
  • the media encoding module 902 is further configured to perform the following steps: inject the operation data of the first client into the first operation control to control The first operation control operates the cloud game instance;
  • the media encoding module 902 is further configured to perform the following steps: inject the operation data of the second client into the second operation control to control The second operation control operates the cloud game instance.
  • the media transmission module 901 is further configured to perform the following steps: receive the device resolution sent by the first client through the first stream processing resource;
  • the media encoding module 902 is further configured to perform the following steps: setting the container window resolution of the cloud game instance according to the device resolution;
  • the media transmission module 901 is further configured to perform the following steps: send the container window resolution to the first client through the first stream processing resource.
  • the media transmission module 901 is further configured to perform the following steps: after the second client accesses the cloud game instance, send the container window resolution to the second client through the second stream processing resource;
  • the media encoding module 902 is further configured to perform the following steps: encoding the transmitted media stream by using the modified encoding resolution.
  • the media transmission module 901 is further configured to perform the following steps: receiving a sharing request for the cloud game instance from the first client;
  • the sharing password includes the cloud game The ID of the instance and the login password of the cloud game instance;
  • the access request of the second client is triggered and sent by the shared password after the second client obtains the shared password.
  • each unit in the cloud game processing apparatus 90 shown in FIG. 9 may be respectively or all combined into one or several other units to form, or some unit(s) may also be formed. It is further divided into multiple units with smaller functions, which can realize the same operation without affecting the realization of the technical effects of the embodiments of the present application.
  • the above-mentioned units are divided based on logical functions.
  • the function of one unit may also be implemented by multiple units, or the functions of multiple units may be implemented by one unit.
  • the processing device 90 of the cloud game may also include other units. In practical applications, these functions may also be implemented with the assistance of other units, and may be implemented by cooperation of multiple units.
  • a general-purpose computing device including a general-purpose computer such as a central processing unit (CPU), a random access storage medium (RAM), a read-only storage medium (ROM), etc.
  • a general-purpose computer may be implemented Run a computer program (including program code) capable of executing the steps involved in the corresponding method as shown in FIG. 4 or FIG. 6 , to construct the processing device 90 of the cloud game as shown in FIG. 9 , and to realize the present invention.
  • the processing method of the cloud game of the application embodiment is provided.
  • the computer program can be recorded on, for example, a computer-readable storage medium, loaded into the above-mentioned computing device through the computer-readable storage medium, and executed therein.
  • the first client when a first client initiates a play request for a cloud game and creates a cloud game instance, the first client will be allocated the first stream processing resources of the cloud game instance, and the first client and the cloud game instance will be allocated to the first client.
  • the first stream processing resource is bound, and the cloud game instance and the first client perform data transmission based on the first stream processing resource; the second client can request to access the cloud game created by the first client request
  • the second client in response to the access request of the second client, the second client will be allocated the second stream processing resources of the cloud game instance, and the second stream processing resources will be bound to the second client.
  • Data transmission can be performed between the client and the cloud game instance based on the second stream processing resources.
  • the embodiment of the present application supports multiple operations on the same cloud game instance, that is, allows multiple clients (such as the first client and the second client) to access and operate the same cloud game instance, which effectively improves the The flexibility and diversity of cloud game operation modes.
  • each client connected to the same cloud game instance is bound to a separate stream processing resource of the cloud game instance, and performs data transmission based on the separate stream processing resources bound to each other, which is beneficial to Targeted and independent encoding flow control and quality control are performed on each client based on each stream processing resource, and since each stream processing resource is independent and does not affect each other, the client and the cloud can communicate with each other. Efficient and stable data transfer between game instances.
  • FIG. 10 shows a schematic structural diagram of a cloud game processing device provided by an exemplary embodiment of the present application.
  • the cloud game processing device 100 includes at least a processor 1001, a computer-readable storage medium 1002 and Communication interface 1003. Wherein, the processor 1001, the computer-readable storage medium 1002, and the communication interface 1003 may be connected by a bus or other means.
  • the communication interface 1003 can be used to receive the play request of the first client, the access request of the second client, the operation data of the first client, the operation data of the second client, etc.
  • the communication interface 1003 can also send media to the first client stream, send a media stream to a second client, and so on.
  • the computer readable storage medium 1002 may be stored in the memory for storing computer programs including computer instructions.
  • the processor 1001 is used to execute computer instructions.
  • the processor 1001 (or called CPU (Central Processing Unit, central processing unit)) is the computing core and the control core of the cloud game processing device 100, which is suitable for implementing one or more computer instructions, specifically suitable for loading and executing one or more computer instructions.
  • a plurality of computer instructions thus implement corresponding method processes or corresponding functions.
  • Embodiments of the present application further provide a computer-readable storage medium (Memory), where the computer-readable storage medium is a memory device in the processing device 100 of the cloud game, and is used to store programs and data.
  • the computer-readable storage medium 1002 here may include both a built-in storage medium in the processing device 100 of the cloud game, and certainly also an extended storage medium supported by the processing device 100 of the cloud game.
  • the computer-readable storage medium provides storage space in which the operating system of the processing device 100 of the cloud game is stored.
  • one or more computer instructions suitable for being loaded and executed by the processor 1001 are also stored in the storage space, and these computer instructions may be one or more computer programs (including program codes).
  • the computer-readable storage medium 1002 here can be a high-speed RAM memory, or a non-volatile memory (Non-Volatile Memory), such as at least one disk memory; optionally, at least one memory located far away from the The computer-readable storage medium of the aforementioned processor 1001 .
  • Non-Volatile Memory Non-Volatile Memory
  • the processing device 100 of the cloud game may be the server 304 in the processing system of the cloud game shown in FIG. 3 , the computer program is stored in the computer-readable storage medium 1002, and the computer program includes one or more computer instructions; 1001 loads and executes one or more computer instructions to realize the corresponding steps in the method embodiment shown in FIG. 4 or FIG. 6; in the specific implementation, the computer instructions in the computer-readable storage medium 1002 are loaded by the processor 1001 and execute the above-mentioned steps.
  • the processing methods of cloud games provided in various optional methods.
  • the first client when a first client initiates a play request for a cloud game and creates a cloud game instance, the first client will be allocated the first stream processing resources of the cloud game instance, and the first client and the cloud game instance will be allocated to the first client.
  • the first stream processing resource is bound, and the cloud game instance and the first client perform data transmission based on the first stream processing resource; the second client can request to access the cloud game created by the first client request
  • the second client in response to the access request of the second client, the second client will be allocated the second stream processing resources of the cloud game instance, and the second stream processing resources will be bound to the second client.
  • Data transmission can be performed between the client and the cloud game instance based on the second stream processing resources.
  • the embodiment of the present application supports multiple operations on the same cloud game instance, that is, allows multiple clients (such as the first client and the second client) to access and operate the same cloud game instance, which effectively improves the The flexibility and diversity of cloud game operation modes.
  • each client connected to the same cloud game instance is bound to a separate stream processing resource of the cloud game instance, and performs data transmission based on the separate stream processing resources bound to each other, which is beneficial to Targeted and independent encoding flow control and quality control are performed on each client based on each stream processing resource, and since each stream processing resource is independent and does not affect each other, the client and the cloud can communicate with each other. Efficient and stable data transfer between game instances.
  • an embodiment of the present application further provides a storage medium, where the storage medium is used to store a computer program, and the computer program is used to execute the method provided by the foregoing embodiment.
  • a computer program product or computer program comprising computer instructions stored in a computer readable storage medium.
  • the processor of the computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes the cloud game processing methods provided in the foregoing various optional manners.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本申请实施例公开了一种云游戏的处理方法、装置、设备及存储介质,云游戏的处理方法包括:接收第二客户端针对云游戏实例的接入请求,云游戏实例是根据第一客户端针对云游戏的游玩请求而创建的,第一客户端与云游戏实例的第一路流处理资源相绑定,且云游戏实例与第一客户端之间的数据传输是通过第一路流处理资源实现的;响应于第二客户端的接入请求,创建云游戏实例的第二路流处理资源,第一路流处理资源和第二路流处理资源相互独立;将第二路流处理资源与第二客户端进行绑定;以及,通过第二路流处理资源实现第二客户端与云游戏实例之间的数据传输。采用本申请实施例,可以提升云游戏操作模式的灵活性和多样性。

Description

一种云游戏的处理方法、装置、设备及存储介质
本申请要求于2021年04月28日提交中国专利局、申请号为202110463379.X、申请名称为“一种云游戏的处理方法、装置、设备及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,尤其涉及云游戏技术领域,具体涉及云游戏的处理。
背景技术
随着计算机技术的飞速发展,云游戏在游戏市场中占据着越来越重要的地位。云游戏是指以云计算为基础的游戏方式,云游戏的大致流程为:用户使用终端请求启动云游戏,云游戏则在云端启动一个云游戏实例,用户通过终端登录该云游戏实例对云游戏实例进行操作,即实现了云游戏的游玩。在云游戏的运行模式下,所有的云游戏实例都在云游戏的服务器中运行,云游戏的服务器对渲染得到的游戏画面进行压缩后通过网络传送给用户的终端进行呈现;当终端检测到用户的操作事件,例如触屏事件、键盘鼠标事件等,则将该操作事件通过网络传输给云游戏的服务器,达到操作云游戏的目的。
发明内容
本申请实施例提供了一种云游戏的处理方法、装置、设备及存储介质,可以提升云游戏操作模式的灵活性和多样性。
一方面,本申请实施例提供一种云游戏的处理方法,该云游戏的处理方法包括:
接收第二客户端针对云游戏实例的接入请求,云游戏实例是根据第一客户端针对云游戏的游玩请求而创建的,第一客户端与云游戏实例的第一路流处理资源相绑定,且云游戏实例与第一客户端之间的数据传输是通过所述第一路流处理资源实现的;
响应于第二客户端的接入请求,创建云游戏实例的第二路流处理资源,所述第一路流处理资源和所述第二路流处理资源相互独立;
将第二路流处理资源与第二客户端进行绑定;以及,通过所述第二路流处理资源实现第二客户端与云游戏实例之间的数据传输。
另一方面,本申请实施例提供一种云游戏的处理装置,该云游戏的处理装置包括媒体编码模块和媒体传输模块;其中:
媒体传输模块,用于接收第二客户端针对云游戏实例的接入请求,云游戏实例是根据第一客户端针对云游戏的游玩请求而创建的,第一客户端与云游戏实例的第一路流处理资源相绑定,且云游戏实例与第一客户端之间的数据传输是通过所述第一路流处理资源实现的;
媒体编码模块和媒体传输模块,均用于响应于第二客户端的接入请求,创建云游戏实例的第二路流处理资源,所述第一路流处理资源和所述第二路流处理资源相互独立;
媒体传输模块,还用于将第二路流处理资源与第二客户端进行绑定;以及,通过所述第二路流处理资源实现第二客户端与云游戏实例之间的数据传输。
另一方面,本申请实施例提供一种云游戏的处理设备,该云游戏的处理设备包括:
处理器,适于实现计算机程序;以及,计算机可读存储介质,计算机可读存储介质存 储有计算机程序,计算机程序适于由处理器加载并执行上述的云游戏的处理方法。
另一方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被计算机设备的处理器读取并执行时,使得计算机设备执行上述的云游戏的处理方法。
另一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的云游戏的处理方法。
本申请实施例中,第一客户端针对云游戏发起游玩请求并创建云游戏实例时,会为该第一客户端分配云游戏实例的第一路流处理资源,并且该第一客户端与该第一路流处理资源相绑定,云游戏实例与第一客户端之间的数据传输是通过第一路流处理资源实现的;第二客户端可以请求接入至由第一客户端请求创建的云游戏实例中,响应于第二客户端的接入请求,会为第二客户端分配云游戏实例的第二路流处理资源,将第二路流处理资源与第二客户端进行绑定,第二客户端与云游戏实例之间的数据传输可通过第二路流处理资源实现。由此可见,本申请实施例支持对同一个云游戏实例的多路操作,即允许多个客户端(如第一客户端和第二客户端)接入并操作同一个云游戏实例,有效提升了云游戏操作模式的灵活性与多样性。另外,接入至同一个云游戏实例的每个客户端均各自绑定云游戏实例的一路单独的流处理资源,并通过各自绑定的单独的流处理资源来实现数据传输,这样就有利于基于每路流处理资源来分别对各个客户端进行有针对性地、独立地编码流控和质量控制,并且由于各路流处理资源之间相互独立、互不影响,从而能够在客户端与云游戏实例之间进行高效且稳定地数据传输。
附图说明
图1示出了本申请一个示例性实施例提供的一种云游戏的处理方案示意图;
图2示出了本申请另一个示例性实施例提供的一种云游戏的处理方案示意图;
图3示出了本申请一个示例性实施例提供的一种云游戏的处理***的架构示意图;
图4示出了本申请一个示例性实施例提供的一种云游戏的处理方法的流程示意图;
图5示出了本申请一个示例性实施例提供的一种客户端的接入请求的响应过程的流程示意图;
图6示出了本申请另一个示例性实施例提供的一种云游戏的处理方法的流程示意图;
图7a示出了本申请一个示例性实施例提供的一种分辨率的设置过程的流程示意图;
图7b示出了本申请一个示例性实施例提供的一种流量控制过程的流程示意图;
图7c示出了本申请一个示例性实施例提供的一种媒体帧丢弃过程的流程示意图;
图7d示出了本申请一个示例性实施例提供的一种权限控制过程的流程示意图;
图7e示出了本申请一个示例性实施例提供的一种多用户操作云游戏实例的流程示意图;
图8a示出了本申请一个示例性实施例提供的一种云游戏游玩操作的界面示意图;
图8b示出了本申请一个示例性实施例提供的一种云游戏分享操作的界面示意图;
图8c示出了本申请一个示例性实施例提供的一种云游戏实例的接入过程的流程示意图;
图9示出了本申请一个示例性实施例提供的一种云游戏的处理装置的结构示意图;
图10示出了本申请一个示例性实施例提供的一种云游戏的处理设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了能够更清楚地理解本申请实施例提供的技术方案,下面对本申请实施例涉及的技术术语进行介绍。
(1)云游戏(Cloud Gaming)。云游戏又可称为游戏点播(Gaming on Demand),是一种以云计算技术为基础的游戏方式。云游戏使图形处理与数据运算能力相对有限的轻端设备(Thin Client)能运行高品质游戏。在云游戏场景下,所有的云游戏实例都不在用户使用的终端中运行,而是在云游戏的服务器中运行;云游戏的服务器将云游戏实例中的游戏画面、游戏音频压缩编码为媒体流,然后通过网络将媒体流传输给用户使用的终端,媒体流中可以包括视频流和音频流。用户使用的终端无需拥有强大的图形处理与数据运算能力,仅仅需要拥有基本的流媒体播放能力,与获取用户输入的操作指令并将用户输入的操作指令发送给服务器的能力即可。
(2)云游戏实例。云游戏部署和运行在云游戏实例上,云游戏实例代表着虚拟计算资源,虚拟计算机资源可以包括:CPU(Central Processing Unit,中央处理器)、操作***、网络、磁盘、GPU(Graphics Processing Unit,图形处理器)等基础计算组件的集合;也就是说,云游戏实例是成功启动、可实际操作的云游戏。在一种可行的实施方式中,云游戏实例可采用OpenGL ES技术进行游戏界面的渲染;OpenGL ES(OpenGL for Embedded Systems)是OpenGL(Open Graphics Library,开放式图像库)三维图形API(Application Programming Interface,应用程序编程接口)的子集;OpenGL ES中可以包括用于进行图形渲染的API。
(3)容器。容器是云游戏中的一种轻量级虚拟化方案,云游戏实例运行于容器中。云游戏的服务器中可以运行多个容器,每个容器对应一个云游戏实例。本申请实施例中,容器可以包括ARM服务器或Linux环境下Docker容器;Docker是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux(一种操作***)或Windows(一种操作***)机器上,可以实现虚拟化;ARM(Advanced RISC Machine)服务器是一种RISC(Reduced Instruction Set Computing,精简指令集)微处理器,具有体积小、低功耗、低成本、高性能等特点。
(4)云计算(Cloud Computing)。云游戏以云计算技术为基础,云计算技术为云游戏提供强大的图形处理能力与数据运算能力。云计算是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用***能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取、按需使用、随时扩展、按使用付费。作为云计算的基础能力提供商,会 建立云计算资源池(简称云平台),一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在云计算资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作***)、存储设备、网络设备。按照逻辑功能划分,在IaaS层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件(例如数据库、web容器等)运行的平台。SaaS为各式各样的业务软件(例如web门户网站、***器等)。一般来说,SaaS和PaaS相对于IaaS是上层。
云计算可以是指IT(Internet Technology,互联网技术)基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing)、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
(5)区块链技术。区块链是分布式数据存储、P2P(Peer to Peer,点对点)传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链以密码学方式保证数据不可篡改和不可伪造。
为了能够更清楚地理解本申请实施例提供的技术方案,下面云游戏的实现原理进行介绍。云游戏的实现原理大致包括:①终端(例如手机、PC(个人计算机)等)中可包含云游戏的客户端,用户可以通过云游戏的客户端进入云游戏中进行游玩。②云游戏的服务器为参与云游戏的每一个客户端分配并运行一个容器;运行一个容器即启动一个云游戏实例,也就是说,用户游玩一次云游戏对应一个云游戏实例;例如,某个用户使用云游戏的客户端进入云游戏中进行游玩,这时云游戏的服务器会在云端启动并运行一个容器,也就是启动并运行一个云游戏实例,那么该云游戏实例与用户所使用的客户端相对应,由这个云游戏实例来为云游戏的客户端提供云游戏的游戏界面。③云游戏的客户端显示其对应的云游戏实例返回的游戏界面;当用户在游戏界面中执行各种操作时,云游戏的客户端会将这些操作产生的操作数据上报给云游戏的服务器,由云游戏的服务器在对应的云游戏实例中根据操作数据而刷新云游戏的游戏界面,再将刷新后的游戏界面返回至云游戏的客户端中进行显示。④当云游戏游玩结束后,云游戏的服务器中创建的云游戏实例被自动销毁。其中,用户在游戏界面中执行的操作可以包括移动操作、选择操作等等;例如,用户将游戏界面中的游戏角色从游戏界面中的第一位置移动至游戏界面中的第二位置;又如,用户选中(例如单击、双击、长按等等)游戏界面中的某个游戏控件。操作产生的操作数据可以包括操 作触屏坐标;例如,用户将游戏界面中的游戏角色从游戏界面中的第一位置移动至游戏界面中的第二位置,那么此时操作数据可以包括第一位置在游戏界面中的坐标和第二位置在游戏界面中的坐标;又如,用户选中游戏界面中的某个游戏控件,那么此时操作数据可以包括游戏控件在游戏界面中的坐标。
目前在云游戏使用场景中,一般只允许用户操作自己所登录的云游戏实例,这使得云游戏操作模式缺乏灵活性和多样性。为了提升云游戏操作模式的灵活性和多样性,本申请实施例进行了一些实践并提出了一系列在云游戏中支持对同一个云游戏实例进行多路操作的解决方案。
其中一种解决方案可参见图1,图1示出了本申请一个示例性实施例提供的一种云游戏的处理方案示意图。如图1所示,可在云游戏的同一个云游戏实例中接入多个(两个或两个以上)客户端,本申请实施例以接入第一客户端和第二客户端为例进行说明。第一客户端和第二客户端共享同一路流处理资源,云游戏实例基于该共享的流处理资源与第一客户端或第二客户端进行数据传输。此处,流处理资源是指对云游戏的游玩过程中所涉及的媒体流与操作数据等各类数据进行处理的工具(例如硬件或软件程序);流处理资源可包括编解码资源、传输控制资源等等;编解码资源可以用于进行编码处理或解码处理,传输控制资源可以用于进行数据传输、传输控制等等。编解码资源可以由媒体编码模块提供,传输控制资源可以由媒体传输模块提供。云游戏实例与第一客户端或第二客户端之间基于共享的流处理资源的数据传输过程可以包括:云游戏的服务器基于流处理资源将云游戏实例中的媒体流发送至第一客户端和第二客户端;当第一客户端请求对云游戏实例进行操作时,云游戏的服务器基于流处理资源接收第一客户端的操作数据;当第二客户端请求对云游戏实例进行操作时,云游戏的服务器基于流处理资源接收第二客户端的操作数据。
如图1所示,共享的流处理资源可以由媒体编码模块和媒体传输模块提供,媒体编码模块提供一路编解码资源,媒体传输模块提供一路传输控制资源;第一客户端与第二客户端共享同一路流处理资源,即第一客户端与第二客户端共享同一路编解码资源和同一路传输控制资源。其中,媒体编码模块可以用于采集云游戏实例中的媒体数据,媒体数据可以包括游戏画面和游戏音频;采集到云游戏实例中的媒体数据之后,媒体编码模块可以对采集到的媒体数据进行编码处理,得到媒体流,媒体流中可以包括视频流和音频流。然后,媒体传输模块可以用于将媒体流转发至第一客户端和第二客户端。当第一客户端对云游戏实例进行操作时,媒体传输模块可以将第一客户端的操作数据传输至媒体编码模块,由媒体编码模块将第一客户端的操作数据注入至云游戏实例中,达到对云游戏实例进行操作的目的。当第二客户端对云游戏实例进行操作时,媒体传输模块可以将第二客户端的操作数据传输至媒体编码模块,由媒体编码模块将第二客户端的操作数据注入至云游戏实例中,达到对云游戏实例进行操作的目的。图1所示的解决方案可以支持多个客户端接入云游戏的同一个云游戏实例,并支持对同一个云游戏实例进行多路操作,在一定程度上提高了云游戏操作模式的灵活性和多样性。但实践发现,接入云游戏实例的多个客户端共用同一路流处理资源,流处理资源被多个客户端共享,在网络高峰期多个客户端之间容易互相抢占资源,导致媒体流的传输过程产生延迟,并且媒体流的清晰度较低。
在图1所示的解决方案的基础上,本申请实施例又提出另一种解决方案,另一种解决方案可参见图2,图2示出了本申请另一个示例性实施例提供的一种云游戏的处理方案示意图,如图2所示,云游戏同样可以支持多个(两个或两个以上)客户端接入云游戏的同一个云游戏实例,并支持对同一个云游戏实例进行多路操作,本申请实施例以接入第一客户端和第二客户端为例进行说明。除此之外,接入至同一个云游戏实例的每个客户端均各自绑定云游戏实例的一路单独的流处理资源,并基于各自绑定的单独的流处理资源来进行数据传输。
对于第一客户端,接入云游戏实例的第一客户端绑定第一路流处理资源,在云游戏实例与第一客户端之间可以基于第一客户端绑定的第一路流处理资源进行数据传输;第一路流处理资源中可以包括单独的编解码资源和单独的传输控制资源,第一路流处理资源中的编解码资源可以由第一视频编码子模块提供,第一路流处理资源中的传输控制资源可以由第一媒体流传输子模块提供。云游戏实例与第一客户端之间基于第一路流处理资源的数据传输过程可以包括:第一视频编码子模块可以用于对从云游戏实例中采集得到的游戏画面进行编码处理,并将编码得到的第一视频流传输至第一媒体流传输子模块;第一媒体流传输子模块可以将由第一视频流和音频流组成的第一媒体流发送至第一客户端;当第一客户端对云游戏实例进行操作时,第一媒体流传输子模块可以将第一客户端的操作数据传输至第一视频编码子模块,由第一视频编码子模块将第一客户端的操作数据注入至云游戏实例中。
对于第二客户端,接入云游戏实例的第二客户端绑定第二路流处理资源,在云游戏实例与第二客户端之间可以基于第二客户端绑定的第二路流处理资源进行数据传输;第二路流处理资源可以包括单独的编解码资源和单独的传输控制资源,第二路流处理资源的编解码资源可以由第二视频编码子模块提供,第二路流处理资源的传输控制资源可以由第二媒体流传输子模块提供。云游戏实例与第二客户端之间基于第二路流处理资源的数据传输过程可以包括:第二视频编码子模块可以用于对从云游戏实例中采集得到的游戏画面进行编码处理,并将编码得到的第二视频流传输至第二媒体流传输子模块;第二媒体流传输子模块可以将由第二视频流和音频流组成的第二媒体流发送至第二客户端;当第二客户端对云游戏实例进行操作时,第二媒体流传输子模块可以将第二客户端的操作数据传输至第二视频编码子模块,由第二视频编码子模块将第二客户端的操作数据注入至云游戏实例中。在此解决方案中,基于相互独立的各路流处理资源,有利于分别对各个客户端进行有针对性地、独立地编码流控和质量控制,并且由于每路流处理资源之间相互独立、互不影响,从而能够在客户端与云游戏实例之间进行高效且稳定地数据传输。
下面对适于实现本申请实施例提供的云游戏的处理方案的云游戏的处理***进行介绍,并结合云游戏的处理***对图2所示的云游戏的处理方案进行更为详细地介绍。图3示出了本申请一个示例性实施例提供的一种云游戏的处理***的架构示意图,如图3所示,云游戏的处理***30可以包括第一终端301、第二终端302、第三终端303和服务器304;需要说明的是,在实际应用场景中,云游戏的处理***30中包括的终端的数量可以为至少一个,本申请实施例以云游戏的处理***30包括第一终端301、第二终端302和第三终端303为例进行说明。其中,第一终端301、第二终端302或第三终端303中的任一个可以是智能手机、平板 电脑、笔记本电脑、台式计算机、车载设备、智能音箱、智能手表等,但并不局限于此;第一终端301中可以运行有云游戏的第一客户端;第二终端302中可以运行有云游戏的第二客户端,第三终端303中可以运行有观察者客户端;第一客户端、第二客户端和观察者客户端均可以为以下任一种:独立的应用程序、API或者SDK(Software Development Kit,软件开发工具包)。云游戏的服务器304可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)服务、以及大数据和人工智能平台等基础云计算服务的云服务器。第一终端301、第二终端302、第三终端303和云游戏的服务器304之间可以通过有线通信或无线通信方式进行直接或间接地连接,本申请在此不做限制。
服务器304可以包括云游戏实例、媒体编码模块和媒体传输模块。其中:
媒体编码模块可以包括图像采集子模块、音频采集子模块、音频预处理子模块、以及至少一个视频编码子模块;本申请实施例以媒体编码模块包括第一视频编码子模块和第二视频编码子模块为例进行说明。其中,图像采集子模块可以用于采集云游戏实例中的游戏画面。音频采集子模块可以用于采集云游戏实例中的游戏音频。第一视频编码子模块可以用于对采集到的游戏画面进行编码处理,并将编码得到的第一视频流传输至媒体传输模块。第二视频编码子模块可以用于对采集到的游戏画面进行编码处理,并将编码得到的第二视频流传输至媒体传输模块。音频预处理子模块可以用于对采集到的游戏音频进行音频预处理,并将音频预处理后的游戏音频传输至媒体传输模块;音频预处理是指在编码之前对游戏音频进行的简单处理,音频预处理可以提升游戏音频的编码效率,音频预处理可以包括对游戏音频进行降噪处理、提取游戏音频的音频特征等等。
媒体传输模块可以包括音频编码子模块、转发子模块、以及至少一个媒体流传输子模块;本申请实施例以媒体传输模块包括第一媒体流传输子模块和第二媒体流传输子模块为例进行说明。其中,转发子模块可以用于进行数据转发,例如转发子模块可以用于将第一视频编码子模块传输的第一视频流转发至第一媒体流传输子模块,转发子模块还可以用于将第二视频编码子模块传输的第二视频流转发至第二媒体流传输子模块,转发子模块还可以用于将音频预处理子模块传输的音频预处理后的游戏音频转发至音频编码子模块。音频编码子模块可以用于对音频预处理后的游戏音频进行编码处理,得到音频流,并将音频流转发至第一媒体流传输子模块和第二媒体流传输子模块。第一媒体流传输子模块可以用于将由第一视频流和音频流组成的第一媒体流传输至第一客户端和观察者客户端。第二媒体流传输子模块可以用于将由第二视频流和音频流组成的第二媒体流传输至第二客户端。
基于图2所示的云游戏的处理方案和图3所示的云游戏的处理***,在云游戏实例与客户端之间可以实现数据传输、流量控制、权限控制、实时调整传输参数、传输监测等功能。下面分别对上述功能进行介绍:
(1)数据传输。
第一视频编码子模块可以提供第一路流处理资源的编解码资源,第一媒体流传输子模块可以提供第一路流处理资源的传输控制资源;也就是说,第一视频编码子模块和第一媒 体流传输子模块共同提供第一路流处理资源。第一路流处理资源与第一客户端绑定,云游戏实例与第一客户端之间可以基于第一路流处理资源进行数据传输;云游戏实例与第一客户端之间基于第一路流处理资源的数据传输过程可以包括:第一视频编码子模块可以对从云游戏实例中采集得到的游戏画面进行编码处理,并将编码得到的第一视频流传输至第一媒体流传输子模块;第一媒体流传输子模块可以将由第一视频流和音频流组成的第一媒体流发送至第一客户端。当第一客户端对云游戏实例进行操作时,第一媒体流传输子模块可以将第一客户端的操作数据传输至第一视频编码子模块,由第一视频编码子模块将第一客户端的操作数据注入至云游戏实例中。通过这种方式,将第一客户端与第一路流处理资源绑定,能够保证第一客户端与云游戏实例之间进行高效且稳定地数据传输。
第二视频编码子模块可以提供第二路流处理资源的编解码资源,第二媒体流传输子模块可以提供第二路流处理资源的传输控制资源;也就是说,第二视频编码子模块和第二媒体流传输子模块共同提供第二路流处理资源。第二路流处理资源与第二客户端绑定,云游戏实例与第二客户端之间可以基于第二路流化处理资源进行数据传输;云游戏实例与第二客户端之间基于第二路流处理资源的数据传输过程可以包括:第二视频编码子模块可以对采集得到的游戏画面进行编码处理,并将编码得到的第二视频流传输至第二媒体流传输子模块;第二媒体流传输子模块可以将由第二视频流和音频流组成的第二媒体流发送至第二客户端。当第二客户端对云游戏实例进行操作时,第二媒体流传输子模块可以将第二客户端的操作数据传输至第二视频编码子模块,由第二视频编码子模块将第二客户端的操作数据注入至云游戏实例中。通过这种方式,将第二客户端与第二路流处理资源绑定,能够保证第二客户端与云游戏实例之间进行高效且稳定地数据传输。
(2)流量控制
第一路流处理资源可以在第一媒体流的传输过程中进行流量控制。流量控制的具体过程如下:第一媒体流传输子模块在向第一客户端传输第一媒体流的过程中,还可以向第一客户端发送网络探测包,并接收第一客户端反馈的网络信息;网络探测包是指可以用于对网络拥塞情况进行探测的探测工具包;网络信息是指对网络拥塞情况的描述信息。当网络信息指示网络未发生拥塞,则第一媒体流传输子模块可以向第一视频编码子模块发送第一流控指令,第一流控指令可以用于指示第一视频编码子模块提高第一视频编码子模块中的媒体编码码率,提高第一视频编码子模块中的媒体帧的帧率等等。当网络信息指示网络已发生拥塞,则第一媒体流传输子模块可以向第一视频编码子模块发送第二流控指令,第二流控指令可以用于指示第一视频编码子模块降低第一视频编码子模块中的媒体编码码率,降低第一视频编码子模块中的媒体帧的帧率,丢弃第一媒体流中的部分媒体帧等等。其中,媒体编码码率可以是指单位时间(例如1秒)内传送媒体流的比特数目;媒体编码码率越高,游戏画面的画质越清晰;媒体编码码率越低,游戏画面的画质越不清晰。媒体帧的帧率可以是指单位时间(例如1秒)内编码媒体流中媒体帧的数量;媒体帧的帧率越高,游戏画面越流畅;媒体帧的帧率越低,游戏画面越卡顿。通过这种方式,可以有针对性地、独立地对第一客户端进行流量控制,有效减少媒体流传输至第一客户端的过程中产生的时延,提高媒体流的清晰度和流畅度。
第二路流处理资源可以在第二媒体流的传输过程中进行流量控制。流量控制的具体过程如下:第二媒体流传输子模块在向第二客户端传输第二媒体流的过程中,还可以向第二客户端发送网络探测包,并接收第二客户端反馈的网络信息。当网络信息指示网络未发生拥塞,则第二媒体流传输子模块可以向第二视频编码子模块发送第一流控指令,第一流控指令可以用于指示第二视频编码子模块提高第二视频编码子模块中的媒体编码码率,提高第二视频编码子模块中的媒体帧的帧率等等。当网络信息指示网络已发生拥塞,则第二媒体流传输子模块可以向第二视频编码子模块发送第二流控指令,第二流控指令可以用于指示第二视频编码子模块降低第二视频编码子模块中的媒体编码码率,降低第二视频编码子模块中的媒体帧的帧率,丢弃第二媒体流中的部分媒体帧等等。通过这种方式,可以有针对性地、独立地对第二客户端进行流量控制,有效减少媒体流传输至第二客户端的过程中产生的时延,提高媒体流的清晰度和流畅度。
(3)权限控制
在接入云游戏实例的第一客户端和第二客户端中,具备针对云游戏实例的操作权限的客户端的操作数据可以被注入至云游戏实例中,不具备针对云游戏实例的操作权限的客户端的操作数据在传输过程中被丢弃。具体地,若第一客户端不具备针对云游戏实例的操作权限,则第一视频编码子模块可以丢弃第一客户端的操作数据;或者,若第二客户端不具备针对云游戏实例的操作权限,则第二视频编码子模块可以丢弃第二客户端的操作数据。在此方式下,可以通过丢弃操作数据的方式对接入云游戏实例的各个客户端进行权限控制,有利于对接入云游戏实例的各个客户端进行权限管控。
(4)实时调整传输参数
云游戏实例可以支持实时调整传输参数。接入云游戏实例的客户端可以向媒体传输模块发送传输参数设置请求,媒体传输模块响应传输参数设置请求,可以对原有的传输参数进行修正,媒体编码模块可以采用修正后的传输参数对游戏画面进行编码处理。举例来说,若接入云游戏实例的第一客户端向第一媒体流传输子模块发送媒体编码码率的设置请求,那么第一媒体流传输子模块可以根据媒体编码码率的设置请求中请求的媒体编码码率对原有的媒体编码码率进行修正,然后将修正后的媒体编码码率传输至第一视频编码子模块;第一视频编码子模块可以采用修正后的媒体编码码率对游戏画面进行编码处理。又如,若接入云游戏实例的第二客户端向第二媒体流传输子模块发送媒体帧的帧率的设置请求,那么第二媒体流传输子模块可以根据媒体帧的帧率的设置请求中请求的媒体帧的帧率对原有的媒体帧的帧率进行修正,然后将修正后的媒体帧的帧率传输至第二视频编码子模块;第二视频编码子模块可以采用修正后的媒体帧的帧率对游戏画面进行编码处理。通过这种方式,客户端可以根据需求实时调整传输参数,其绑定的流处理资源可以根据客户端的调整需求,实时调整或修正传输参数,非常灵活高效。
(5)传输监测
接入云游戏实例的观察者客户端可以共享云游戏实例中的流处理资源。观察者客户端可以是云游戏的测试人员所使用的客户端,观察者客户端用于对基于流处理资源的数据传输过程进行监测。具体来说,当接收到观察者客户端针对云游戏实例的接入请求,可以从 云游戏实例已存在的流处理资源中选择一路流处理资源,并将选择的一路流处理资源与观察者客户端进行绑定。从云游戏实例已存在的流处理资源中选择一路流处理资源可以是指从云游戏实例已存在的流处理资源中随机选择一路流处理资源进行绑定,例如云游戏实例已存在的流处理资源为第一路流处理资源和第二路流处理资源,那么可以从第一路流处理资源和第二路流处理资源中随机选择一路,例如选择第一路流处理资源与观察者客户端进行绑定;从云游戏实例已存在的流处理资源中选择一路流处理资源还可以是指从云游戏实例已存在的流处理资源中选择指定的一路流处理资源进行绑定,例如云游戏实例已存在的流处理资源为第一路流处理资源和第二路流处理资源,假设指定的流处理资源为第一路流处理资源,那么可以将观察者客户端和第一路流处理资源进行绑定。观察者客户端接收到第一媒体流传输子模块传输的第一媒体流之后,观察者客户端可以解析并显示第一媒体流中的游戏画面,从而可以验证游戏画面是否清晰、是否流畅。并且观察者客户端仅对游戏画面进行观察,不参与流量控制,因此,观察者客户端与第一客户端共享第一路流处理资源可以有效减少资源消耗,节省传输带宽。
本申请实施例中,云游戏的服务器允许多个客户端接入并操作同一个云游戏实例,有效提升云游戏操作模式的灵活性和多样性。并且,云游戏的服务器为接入同一个云游戏实例的多个客户端中的每个客户端创建并绑定一路独立的流处理资源,任意一路流处理资源均可以在其绑定的客户端与云游戏实例之间进行数据传输,能够高效稳定地进行数据传输。另外,任一路流处理资源可以有针对性地、独立地对其绑定的客户端进行流量控制,有效减少媒体流传输过程中产生的时延,有效提高媒体流的清晰度和流畅度。其次,在客户端不具备针对云游戏实例的操作权限的情况下,其绑定的流处理资源可以通过丢弃操作数据的方式对客户端进行权限控制,有利于对接入云游戏实例的各个客户端进行权限管控。此外,客户端可以根据需求实时调整传输参数,其绑定的流处理资源可以根据客户端的调整需求,实时调整或修正传输参数,非常灵活高效。
本申请实施例提出的云游戏的处理方案还可与区块链相结合,例如云游戏的客户端或云游戏的服务器等可以是区块链网络中的节点;本申请实施例中的客户端与流处理资源之间的绑定过程、客户端与云游戏实例之间基于流处理资源之间的数据传输过程均可以上传至区块链上进行存储;例如,本申请实施例中涉及的诸如媒体流、操作数据等可以区块的形式存储在区块链中;又如,客户端与流处理资源之间的绑定关系可以区块的形式存储在区块链中。基于区块链中的区块不可被篡改和不可被伪造的特点,使得客户端与流处理资源之间的绑定过程更加安全可靠,客户端与云游戏实例之间基于流处理资源之间的数据传输过程更加安全可靠。
可以理解的是,本申请实施例描述的云游戏的处理***是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着***架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
基于上述描述,图4示出了本申请一个示例性实施例提供的一种云游戏的处理方法的流程示意图,该云游戏的处理方法可以由本申请实施例提供的云游戏的处理设备执行,云游 戏的处理设备可以是图3所示的云游戏的处理***30中的云游戏的服务器304。该云游戏的处理方法可以包括以下S401至S404:
S401,接收第二客户端针对云游戏实例的接入请求。
云游戏实例是根据第一客户端针对云游戏的游玩请求而创建的,第一客户端与云游戏实例的第一路流处理资源相绑定,且云游戏实例与第一客户端之间的数据传输是通过第一路流处理资源实现的。具体来说,当云游戏的服务器接收到第一客户端针对云游戏的游玩请求时,可以获取云游戏中已创建的云游戏实例的数量。若云游戏中已创建的云游戏实例的数量未超过(即小于或等于)实例创建阈值,则云游戏的服务器可以根据第一客户端针对云游戏的游玩请求创建云游戏实例,并创建第一路流处理资源,将第一流处理资源与第一客户端进行绑定,以及在云游戏实例与第一客户端之间基于第一路流处理资源进行数据传输;其中,实例创建阈值可以是指一个云游戏允许创建的云游戏实例的数量上限,例如一个云游戏允许创建的云游戏实例的数量上限为50000个。若云游戏中已创建的云游戏实例的数量超过(即大于)实例创建阈值,则云游戏的处理器可以向第一客户端返回云游戏实例创建失败通知;对于第一客户端而言,接收到云游戏实例创建失败通知后,第一客户端可以重新发起针对云游戏的游玩请求;第一客户端也可以排队等待直到云游戏中已创建的云游戏实例的数量未超过(即小于或等于)实例创建阈值时,云游戏的服务器创建云游戏实例。
在云游戏实例与第一客户端之间通过第一路流处理资源实现数据传输可以包括:获取云游戏实例中的媒体流;通过第一路流处理资源将媒体流(例如上述第一媒体流)发送至第一客户端;当第一客户端请求对云游戏实例进行操作时,通过第一路流处理资源接收第一客户端的操作数据。
第二客户端针对云游戏实例的接入请求是通过分享口令触发发送的。具体来说,云游戏的服务器接收第一客户端针对云游戏实例的分享请求;当云游戏的服务器接收到第一客户端针对云游戏实例的分享请求之后,可以响应于第一客户端的分享请求,并向第一客户端返回云游戏实例的分享口令,以使第一客户端将分享口令分享至除第一客户端之外的其他客户端。在一种实现方式中,第一客户端接收到云游戏的服务器返回的云游戏实例的分享口令之后,可以将分享口令分享至第二客户端;第二客户端接收到第一客户端分享的分享口令之后,可以将分享口令输入第二客户端中,例如可以将分享口令输入至第二客户端的云游戏参与界面中,从而触发第二客户端向云游戏的服务器发送针对云游戏实例的接入请求。在另一种实现方式中,分享口令可以是指一个云游戏的参与链接,第二客户端可通过直接点击第一客户端分享的分享口令便可触发向云游戏的服务器发送针对云游戏实例的接入请求。其中,分享口令可以包括云游戏实例的标识和云游戏实例的登录密码;云游戏实例的标识可以用于对云游戏实例进行识别,即可以保证第二客户端请求接入的云游戏实例就是第一客户端分享的云游戏实例;云游戏实例的登录密码可以用于对第二客户端的身份进行校验,例如可以将第二客户端输入的云游戏实例的登录密码与云游戏的服务器中存储的云游戏实例的登录密码进行比对,若两者相同则校验通过,允许第二客户端接入云游戏实例,若两者不相同则校验失败,禁止第二客户端接入云游戏实例;采用云游戏实例的 登录密码对第二客户端的身份进行校验,可保证接入云游戏实例的第二客户端是可信的。
S402,响应于第二客户端的接入请求,创建云游戏实例的第二路流处理资源。
当接收到第二客户端针对云游戏实例的接入请求之后,响应于第二客户端的接入请求,可以创建云游戏实例的第二路流处理资源,如上述图2所示实施例,第二路流处理资源可以由第二视频编码子模块和第二媒体流传输子模块提供。其中,第二视频编码子模块可以用于对采集到的云游戏实例的游戏画面进行编码处理,并将编码得到的第二视频流传输至第二媒体流传输子模块;第二媒体流传输子模块可以用于将第二视频流和音频流组成的第二媒体流传输至第二客户端,第一路流处理资源和第二路流处理资源相互独立。
第二客户端的接入请求中可以包括第二客户端的用户标识(userID2)和第一接入策略(Exclusive策略),第一接入策略可以用于表示第二客户端的类型为使用者类型。在此情况下,创建云游戏实例的第二路流处理资源可以包括:根据第二客户端的用户标识,为第二客户端分配接入会话标识(SDK Session ID2);以及根据第一接入策略,生成云游戏实例的第二路流处理资源及第二路流处理资源的标识(CG Session ID2),该第二路流处理资源和对应的标识可以是实时生成的。
S403,将第二路流处理资源与第二客户端进行绑定。
创建云游戏实例的第二路流处理资源之后,可以将第二路流处理资源与第二客户端进行绑定。将第二路流处理资源与第二客户端进行绑定是指:通过在第二客户端的接入会话标识与第二路流处理资源的标识之间建立绑定关系,实现对所述第二路流处理资源与所述第二客户端的绑定。
S404,通过第二路流处理资源实现第二客户端与云游戏实例之间的数据传输。
将第二路流处理资源与第二客户端进行绑定之后,可以在第二客户端与云游戏实例之间通过第二路流处理资源实现数据传输。在第二客户端与云游戏实例之间通过第二路流处理资源实现数据传输可以包括:获取云游戏实例中的媒体流(例如上述第二媒体流);通过第二路流处理资源将媒体流发送至第二客户端;以及当第二客户端请求对云游戏实例进行操作时,通过第二路流处理资源接收第二客户端的操作数据。
第三客户端可以是除第一客户端和第二客户端之外请求接入云游戏实例的一个客户端。云游戏的服务器可以接收第三客户端针对云游戏实例的接入请求;第三客户端的接入请求中可以携带第三客户端的用户标识(userID3)和接入策略。云游戏的服务器响应第三客户端的接入请求的响应过程可参见图5,图5示出了本申请一个示例性实施例提供的一种客户端的接入请求的响应过程的流程示意图,如图5所示,在一种实现方式中,若接入策略为第一接入策略,则云游戏的服务器可以响应于第三客户端的接入请求,创建云游戏实例的第三路流处理资源,并将第三路流处理资源与第三客户端进行绑定,以及在第三客户端与云游戏实例之间基于第三路流处理资源进行数据传输。在另一种实现方式中,若接入策略为第二接入策略(Shared策略),则云游戏的服务器可以检查云游戏实例中是否存在根据第一接入策略创建的流处理资源;第二接入策略可以用于表示第三客户端的类型为观察者(例如第三客户端可以是上述实施例中提及的观察者客户端)。若云游戏实例中存在根据第一接入策略创建的流处理资源,例如云游戏实例中已存在第一路流处理资源和第二路流处理资 源,那么可以响应于第三客户端的接入请求,从第一路流处理资源和第二路流处理资源中选择一路流处理资源;将所选择的一路流处理资源与第三客户端进行绑定;以及在第三客户端与云游戏实例之间基于所选择的一路流处理资源进行数据传输;从云游戏实例的第一路流处理资源和第二路流处理资源中选择一路流处理资源可以是指从云游戏实例的第一路流处理资源和第二路流处理资源中随机选择一路流处理资源,例如可以选择第一路流处理资源;从云游戏实例的第一路流处理资源和第二路流处理资源中选择一路流处理资源还可以是指从云游戏实例的第一路流处理资源和第二路流处理资源中选择指定的一路流处理资源选择,假设指定的流处理资源为第一路流处理资源,那么选择的流处理资源为第一路流处理资源。若云游戏实例中不存在根据第一接入策略创建的流处理资源,则可以响应于第三客户端的接入请求,创建云游戏实例的第三路流处理资源,将第三路流处理资源与第三客户端进行绑定,在第三客户端与云游戏实例之间基于第三路流处理资源进行数据传输。其中,创建云游戏实例的第三路流处理资源,将第三路流处理资源与第三客户端进行绑定可以是指:根据第三客户端的用户标识,为第三客户端分配接入会话标识(SDK Session ID3);以及根据第一接入策略,生成云游戏实例的第三路流处理资源及第三路流处理资源的标识(CG Session ID3);以及在第三客户端的接入会话标识与第三路流处理资源的标识之间建立绑定关系。以从第一路流处理资源和第二路流处理资源中选择第一路流处理资源为例,将所选择的一路流处理资源与第三客户端进行绑定可以是指:在第三客户端的接入会话标识与第一路流处理资源的标识(CG Session ID1)之间建立绑定关系。
本申请实施例中,可以允许多个客户端(如第一客户端和第二客户端)接入并操作同一个云游戏实例,有效提升云游戏操作模式的灵活性与多样性。另外,可以为接入同一个云游戏实例的多个客户端中的每个客户端创建并绑定一路单独的流处理资源,云游戏实例的任一路流处理资源可以用于在该流处理资源绑定的客户端与云游戏实例之间进行数据传输,这样就有利于基于每路流处理资源来分别对各个客户端进行有针对性地、独立地编码流控和质量控制,并且由于各路流处理资源之间相互独立、互不影响,从而能够在客户端与云游戏实例之间进行高效且稳定地数据传。以第二客户端为例,通过建立第二客户端与第二路流处理资源之间的绑定关系,可以在接收到第二客户端的操作数据时,基于绑定关系快速确定其绑定的第二路流处理资源,并通过第二路流处理资源将第二客户端的操作数据注入至云游戏实例中;也可以在获取到云游戏实例的媒体流时,基于绑定关系快速确定第二路流处理资源绑定的第二客户端,从而可以通过第二路流处理资源快速地将媒体流转发至第二客户端,有效提升数据传输过程的准确性,降低数据传输过程中的延迟。
基于上述描述,图6示出了本申请另一个示例性实施例提供的一种云游戏的处理方法的流程示意图,该云游戏的处理方法可以由本申请实施例提供的云游戏的处理设备执行,云游戏的处理设备可以是图3所示的云游戏的处理***30中的云游戏的服务器304。该云游戏的处理方法可以包括以下S601至S606:
S601,接收第二客户端针对云游戏实例的接入请求。
云游戏实例是根据第一客户端针对云游戏的游玩请求而创建的,第一客户端与云游戏实例的第一路流处理资源相绑定,且云游戏实例与第一客户端之间的数据传输是通过第一 路流处理资源实现的。
S602,响应于第二客户端的接入请求,创建云游戏实例的第二路流处理资源。
第二客户端的接入请求中可以包括第二客户端的用户标识和第一接入策略,第一接入策略可以用于表示第二客户端的类型为使用者类型。在此情况下,创建云游戏实例的第二路流处理资源可以包括:根据第二客户端的用户标识,为第二客户端分配接入会话标识;以及根据第一接入策略,生成云游戏实例的第二路流处理资源及第二路流处理资源的标识。
S603,将第二路流处理资源与第二客户端进行绑定。
创建云游戏实例的第二路流处理资源之后,可以将第二路流处理资源与第二客户端进行绑定。将第二路流处理资源与第二客户端进行绑定是指:通过在第二客户端的接入会话标识与第二路流处理资源的标识之间建立绑定关系,实现对所述第二路流处理资源与所述第二客户端的绑定。
S604,获取云游戏实例中的媒体流。
S605,基于第二路流处理资源将媒体流发送至第二客户端。
S606,当第二客户端请求对云游戏实例进行操作时,通过第二路流处理资源接收第二客户端的操作数据。
云游戏实例可以支持实时调整传输参数。接入云游戏实例的客户端可以向云游戏的服务器发送传输参数设置请求,云游戏的服务器可以响应传输参数设置请求,对原有的传输参数进行修正,并可以采用修正后的传输参数对游戏画面进行编码处理。其中,传输参数可以包括以下至少一种:媒体编码率、媒体帧的帧率和分辨率。媒体编码码率可以是指单位时间(例如1秒)内传送媒体流的比特数目;媒体编码码率越高,游戏画面的画质越清晰;媒体编码码率越低,游戏画面的画质越不清晰。媒体帧的帧率可以是指单位时间(例如1秒)内编码媒体流中媒体帧的数量;媒体帧的帧率越高,游戏画面越流畅;媒体帧的帧率越低,游戏画面越卡顿。分辨率可以包括设备分辨率和编码分辨率;设备分辨率又可以称为显示分辨率,是指设备的显示屏幕上所有可视面积上水平像素的数量和垂直像素的数量;例如设备分辨率为720×960,表示设备的显示屏幕的所有可视面积上水平显示720个像素,垂直显示960个像素;设备编码率一旦确定便无法更改。编码分辨率可以是指编码后的游戏画面中水平像素的数量和垂直像素的数量;例如编码分辨率为720×960,表示编码后的游戏画面中水平显示720个像素,垂直显示960个像素。
针对传输参数中的分辨率,当第一客户端接入至云游戏实例之后,云游戏的服务器可以基于第一路流处理资源接收第一客户端发送的设备分辨率;设备分辨率可以是指运行第一客户端的第一终端的设备分辨率,第一终端的设备分辨率可以是指第一终端的显示屏幕的所有可视面积上水平像素的数量和垂直像素的数量;例如第一终端的设备分辨率为720×960,表示第一终端的显示屏幕的所有可视面积上水平显示720个像素,垂直显示960个像素。接收到第一客户端发送的设备分辨率之后,云游戏的服务器可以根据设备分辨率设置云游戏实例的容器窗口分辨率,根据设备分辨率设置云游戏实例的容器窗口分辨率可以包括:设置云游戏实例的第一比值与第一终端的第二比值相同,第一比值是指云游戏实例的容器窗口的水平像素的数量与垂直像素的数量之间比值,第二比值是指第一终端的显示屏 幕的水平像素的数量与垂直像素的数量之间的比值;例如,第一终端的设备分辨率为720×960,则可以设置云游戏实例的容器窗口分辨率为1080×1440,水平像素的数量与垂直像素的数量之间比值均为0.75。云游戏的服务器还可以将容器窗口分辨率基于第一路流处理资源发送至第一客户端;当第一客户端请求对云游戏实例进行操作时,可以根据设备分辨率与容器窗口分辨率对操作触屏坐标进行坐标转换;例如,可以将设备分辨率下的第一操作触屏坐标转换为容器窗口分辨率下的第二操作触屏坐标。
需要说明的是,云游戏实例的容器窗口分辨率一旦确定后便不能更改,如果接入云游戏实例的客户端设置的编码分辨率中的第三比值与第一比值不相同,那么编码得到的媒体流中的游戏画面会被拉伸变形,所以需要保持客户端设置的编码分辨率中的第三比值与云游戏实例的第一比值相同;其中,第三比值是指客户端设置的编码分辨率中的水平像素的数量与垂直像素的数量之间的比值。以第二客户端为例,当第二客户端接入至云游戏实例后,云游戏的服务器可以基于第二路流处理资源向第二客户端发送容器窗口分辨率;当第二客户端请求对云游戏实例进行操作时,可以根据设备分辨率与容器窗口分辨率对操作触屏坐标进行坐标转换。云游戏的服务器还可以基于第二路流处理资源接收第二客户端发送的分辨率设置请求,分辨率设置请求中可以携带第二客户端请求设置的编码分辨率;云游戏的服务器可以根据容器窗口分辨率对请求设置的编码分辨率进行修正;以及可以采用修正后的编码分辨率对基于第二路流处理资源传输的媒体流进行编码处理。云游戏的服务器可以根据容器窗口分辨率对请求设置的编码分辨率进行修正可以包括:设置请求设置的编码分辨率的第三比值与云游戏实例的第一比值相同。例如,第二客户端请求的编码分辨率为480P,那么可以根据容器窗口分辨率1080×1440对请求设置的编码分辨率进行修正,修正后的编码分辨率为480×640。
分辨率的设置过程可参见图7a,图7a示出了本申请一个示例性实施例提供的一种分辨率的设置过程的流程示意图,以第二客户端为例,当云游戏实例的容器窗口分辨率确定后,第二视频编码子模块可以将云游戏实例的容器窗口分辨率传输至第二媒体流传输子模块,例如云游戏实例的容器窗口分辨率为1080×1440。当第二媒体流传输子模块接收到第二客户端请求设置的编码分辨率后,第二媒体流传输子模块可以根据容器窗口分辨率对请求设置的编码分辨率进行修正,得到修正后的编码分辨率,例如请求修正的编码分辨率为480P,修正后的编码分辨率为480×640。然后第二媒体流传输子模块可以将修正后的编码分辨率传输至第二视频编码子模块,第二视频编码子模块便可以采用修正后的编码分辨率对待传输至第二客户端的媒体流进行编码处理。
由上述关于实时调整传输参数的描述可知,云游戏的服务器可以根据接入云游戏实例的客户端的传输参数设置请求,实时调整或修正传输参数,较好地满足接入云游戏实例的客户端的传输参数设置需求,非常灵活高效。
云游戏实例在数据传输过程中还可以支持流量控制。云游戏的服务器可以基于第二路流处理资源向第二客户端发送网络探测包,并接收第二客户端反馈的网络信息;网络探测包是指可以用于对网络拥塞情况进行探测的探测工具包;网络信息是指对网络拥塞情况的描述信息。然后,云游戏的服务器可以根据网络信息调整网络探测包的数据量,并调整第 二路流处理资源的传输参数。其中,根据网络信息调整网络探测包的数据量,并调整第二路流处理资源的传输参数可以包括:若网络信息指示网络已发生拥塞,则可以减小网络探测包的数据量,并对第二路流处理资源的传输参数进行第一调整;若网络信息指示网络未发生拥塞,则可以增加网络探测包的数据量,并对第二路流处理资源的传输参数进行第二调整;第一调整可以包括以下至少一种:降低第二路流处理资源中的媒体编码码率,降低第二路流处理资源中的媒体帧的帧率,丢弃第二路流处理资源中的部分媒体帧;第二调整可以包括以下至少一种:提高第二路流处理资源中的媒体编码码率,提高第二路流处理资源中的媒体帧的帧率。
流量控制过程可参见图7b,图7b示出了本申请一个示例性实施例提供的一种流量控制过程的流程示意图,此处以第二客户端与云游戏实例之间的流量控制过程为例进行说明,第一客户端与云游戏实例之间的流量控制过程,与第二客户端与云游戏实例之间的流量控制过程类似,在此不再赘述。图7b所示的流量控制过程可以包括:第二路流处理资源的第二视频编码子模块将编码得到的第二视频流传输至第二路流处理资源的第二媒体流传输子模块之后,第二媒体流传输子模块可以将包括第二视频流和音频流的第二媒体流传输至第二客户端。第二媒体流传输子模块在向第二客户端传输第二媒体流的过程中,还可以向第二客户端发送网络探测包,并接收第二客户端反馈的网络信息。第二媒体流传输子模块可以根据网络信息向第二视频编码子模块发送流控指令;若网络信息指示网络未发生拥塞,则第二媒体流传输子模块可以向第二视频编码子模块发送第一流控指令,第一流控指令可以用于指示第二视频编码子模块提高第二视频编码子模块中的媒体编码码率,提高第二视频编码子模块中的媒体帧的帧率等等;若网络信息指示网络已发生拥塞,则第二媒体流传输子模块可以向第二视频编码子模块发送第二流控指令,第二流控指令可以用于指示第二视频编码子模块降低第二视频编码子模块中的媒体编码码率,降低第二视频编码子模块中的媒体帧的帧率,丢弃第二媒体流中的部分媒体帧等等。
需要说明的是,第二媒体流传输子模块可以通过非可靠传输协议将第二媒体流和网络探测包发送至第二客户端;非可靠传输协议可以包括RTP(Real-time Transport Protocol,实时传输协议)。由于可靠传输协议TCP(Transmission Control Protocol,传输控制协议)在网络拥塞情况下不能丢包或者丢包重传导致延迟增大,因此TCP在网络拥塞情况下的传输效率较低;基于此本申请实施例可以采用非可靠传输协议RTP进行媒体流与网络探测包的传输,非可靠传输协议RTP可以在网络拥塞情况下主动丢包,这样有利于在网络拥塞情况下有效减少传输时延。另外,第二媒体流传输子模块可以采用带反馈机制的协议接收第二客户端反馈的网络信息;带反馈机制的协议可以包括RTCP(RTP Control Protocol,RTP控制协议),网络信息可以包括RTCP RR(RTCP Receiver Report,RTCP接收者报告),客户端每间隔目标时间段反馈一次网络信息,目标时间段例如可以为100毫秒。
由于第二视频编码子模块响应流控指令调整媒体编码码率、媒体帧的帧率等传输参数需要一段时间,因此,当网络突发拥塞,调整传输参数可能会产生一定的时延,通常采用丢弃媒体流中的部分媒体帧的方式来快速降低媒体编码码率。图7c示出了本申请一个示例性实施例提供的一种媒体帧丢弃过程的流程示意图,如图7c所示,当网络信息指示网络突 发拥塞,第二媒体流传输子模块可以向第二视频编码子模块发送媒体帧丢弃请求;然后,第二视频编码子模块响应于媒体帧丢弃请求,可以在图像采集子模块采集到游戏画面后,按照丢帧策略丢弃采集到的部分媒体帧;按照丢帧策略丢弃采集到的部分媒体帧可以是指按照目标比例丢弃采集到的部分媒体帧,目标比例可以为图像采集子模块采集到的媒体帧数量的三分之一、十分之一、二百分之一等等。当网络信息指示网络未发生拥塞时,可以关闭上述丢帧策略。
由上述关于流量控制的描述可知,云游戏的服务器中的媒体编码模块和媒体传输模块可以联合进行流量控制,能够有效降低媒体流的传输时延,提升媒体流中的游戏画面的质量,从而在客户端与云游戏实例之间进行高效且稳定地数据传输。
云游戏实例在数据传输过程中还可以支持权限控制。云游戏的服务器可以根据第一客户端的权限设置请求为第二客户端配置权限,权限可以包括以下至少一种:针对云游戏实例的操作权限或针对云游戏实例的浏览权限;针对云游戏实例的操作权限是指可以对云游戏实例进行操作的权限;针对云游戏实例的浏览权限是指对云游戏实例的游戏画面进行浏览的权限,具备针对云游戏实例的浏览权限的用户只能浏览其他用户操作云游戏实例的游戏画面,不能对云游戏实例进行操作。若第二客户端不具备针对云游戏实例的操作权限,则当云游戏的服务器基于第二路流处理资源接收到第二客户端的操作数据时,可以丢弃第二客户端的操作数据。若第二客户端具备针对云游戏实例的操作权限,则当云游戏的服务器基于第二路流处理资源接收到第二客户端的操作数据时,可以将第二客户端的操作数据注入至云游戏实例中。其中,操作数据可以包括以下至少一种:Touch操作数据(例如可以是上述的操作触屏坐标)、文本输入数据、语音输入数据、GPS(Global Positioning System,全球定位***)数据、传感器的传感数据等等。
图7d示出了本申请一个示例性实施例提供的一种权限控制过程的流程示意图,如图7d所示,第一媒体流传输子模块提供一个权限设置接口(HTTP Restful接口)第一客户端可以通过第一媒体流传输子模块的权限设置接口向第一媒体流传输子模块发送权限设置请求,请求为第二客户端配置权限,从而第一媒体流传输子模块可以根据第一客户端的权限设置请求为第二客户端配置权限,并将权限配置结果发送至第一视频编码子模块,第一视频编码子模块可以将权限配置结果转发至第二视频编码子模块。若权限配置结果指示第二客户端不具备针对云游戏实例的操作权限,则第二视频编码子模块可以丢弃第二客户端的操作数据。若权限配置结果指示第二客户端具备针对云游戏实例的操作权限,则第二视频编码子模块可以将第二客户端的操作数据注入至云游戏实例中以对云游戏实例进行操作。
由上述关于权限控制的描述可知,通过注入操作数据或丢弃操作数据,实现了云游戏实例的权限控制,具备针对云游戏的操作权限的客户端的操作数据可以注入云游戏实例中,不具备针对云游戏的操作权限的客户端的操作数据在传输过程中被丢弃,有效丰富了云游戏的操作模式。
云游戏实例还可以支持多用户同时操作。在此以两个用户即第一客户端和第二客户端对云游戏实例进行操作为例,第一客户端可以与云游戏实例中的第一操作控件相映射,第二客户端可以与云游戏实例中的第二操作控件相映射;第一操作控件和第二操作控件均可 以是云游戏实例中的操纵杆。图7e示出了本申请一个示例性实施例提供的一种多用户操作云游戏实例的流程示意图,如图7e所示,当基于第一路流处理资源接收到第一客户端的操作数据时,云游戏的处理器可以将第一客户端的操作数据注入至第一操作控件中,以控制第一操作控件操作云游戏实例;具体地,当第一客户端请求对云游戏实例进行操作时,第一媒体流传输子模块可以接收第一客户端的操作数据,并将接收到的第一客户端的操作数据传输至第一视频编码子模块,第一视频编码子模块可以将第一客户端的操作数据注入至第一操作控件中,以控制第一操作控件操作云游戏实例。当第一视频编码子模块获取到云游戏实例的游戏画面时,第一视频编码子模块可以对游戏画面进行编码处理得到第一视频流,并将第一视频流传输至第一媒体传输子模块,然后由第一媒体传输子模块将包含第一视频流和音频流的第一媒体流传输至第一客户端。当基于第二路流处理资源接收到第二客户端的操作数据时,云游戏的服务器可以将第二客户端的操作数据注入第二操作控件,以控制第二操作控件对云游戏实例进行操作;具体地,当第二客户端请求对云游戏实例进行操作时,第二媒体流传输子模块可以接收第二客户端的操作数据,并将接收到的第二客户端的操作数据传输至第二视频编码子模块,第二视频编码子模块可以将第二客户端的操作数据注入至第二操作控件中,以控制第二操作控件操作云游戏实例。当第二视频编码子模块获取到云游戏实例的游戏画面时,第二视频编码子模块可以对游戏画面进行编码处理得到第二视频流,并将第二视频流传输至第二媒体传输子模块,然后由第二媒体传输子模块将包含第二视频流和音频流的第二媒体流传输至第一客户端。
其中,第一客户端与云游戏实例中的第一操作控件相映射可以包括以下两种情况:第一路流处理资源的标识与第一操作控件的标识之间存在映射关系,也就是说,在第一路流处理资源的标识与第一操作控件的标识之间建立了绑定关系;或者,第一客户端发送的操作数据中携带第一操作控件的标识。第二客户端与云游戏实例中的第二操作控件相映射可以包括以下两种情况:第二路流处理资源的标识与第二操作控件的标识之间存在映射关系,也就是说,在第二路流处理资源的标识与第二操作控件的标识之间建立了绑定关系;或者,第二客户端发送的操作数据中携带第二操作控件的标识。
由上述多用户同时操作云游戏实例的描述可知,云游戏实例支持多客户端同时注入操作数据,有效丰富了云游戏的操作模式。
本申请实施例中,云游戏的服务器可以根据接入云游戏实例的客户端的传输参数设置请求,实时调整或修正传输参数,较好地满足接入云游戏实例的客户端的传输参数设置需求,非常灵活高效。云游戏的服务器中的媒体编码模块和媒体传输模块可以联合进行流量控制,能够有效降低媒体流的传输时延,提升媒体流中的游戏画面的质量,从而在客户端与云游戏实例之间进行高效且稳定地数据传输。另外,云游戏实例还支持权限控制,具备针对云游戏的操作权限的客户端的操作数据可以注入云游戏实例中,不具备针对云游戏的操作权限的客户端的操作数据在传输过程中被丢弃,有效丰富了云游戏的操作模式。此外,云游戏实例还支持多人同时操作,即接入云游戏实例的多个客户端均可向云游戏实例注入操作数据,进一步丰富了云游戏的操作模式。
上述各实施例中提及的云游戏的处理方案可以应用于主播用户带练云游戏以及街机类 多用户操作云游戏两个游戏场景中,下面分别对两个游戏场景进行介绍:
(1)主播用户带练云游戏
在主播带练云游戏的游戏场景中,第一客户端可以是主播用户所使用的主播客户端,第二客户端可以是观众用户所使用的观众客户端;在实际游戏场景中,观众用户可以包括至少一个,也就是说观众客户端可以包括至少一个,本申请实施例以包括一个观众用户的情况为例进行说明。
对于主播用户而言,云游戏的服务器可以根据主播客户端针对云游戏的游玩请求创建云游戏实例,并创建云游戏实例的第一路流处理资源,以及将主播客户端与第一路流处理资源进行绑定,云游戏实例与主播客户端之间可以基于第一路流处理资源进行数据传输。其中,云游戏的游玩请求是在主播客户端响应于主播用户的云游戏游玩操作生成的;如图8a所示,图8a示出了本申请一个示例性实施例提供的一种云游戏游玩操作的界面示意图,主播客户端的服务界面80中显示有多个云游戏的游戏信息(例如云游戏的图标、云游戏的画报等等)和云游戏的游玩控件。举例来说,当服务界面80中的云游戏2的游戏控件801被选中时,主播用户的客户端可以生成针对云游戏2的游玩请求,并将云游戏2的游玩请求发送至云游戏的服务器。在一种实现方式中,若云游戏2中已创建的云游戏实例的数量未超过实例创建阈值,那么云游戏的服务器可以根据主播客户端针对云游戏2的游玩请求创建云游戏2的云游戏实例;云游戏实例创建成功,则主播客户端中可以显示云游戏2的云游戏实例的游戏界面81;其中,实例创建阈值是指一个云游戏允许创建的云游戏实例的数量上限。在另一种实现方式中,若云游戏2中已创建的云游戏实例的数量已超过实例创建阈值时,云游戏的处理器可以向主播客户端返回云游戏实例创建失败通知,主播客户端可以根据云游戏实例创建失败通知,在服务界面80中输出创建失败提示消息802(例如图8a所示的“目前暂无空闲设备,排队中,请耐心等待”),主播客户端需排队等待直到具备云游戏实例的创建资格(即云游戏2中已创建的云游戏实例的数量未超过实例创建阈值)时,云游戏的服务器可以针对云游戏2的游玩请求创建云游戏2的游戏实例;云游戏实例创建成功,则主播客户端中可以显示云游戏2的云游戏实例的游戏界面81。
如图8b所示,图8b示出了本申请一个示例性实施例提供的一种云游戏分享操作的界面示意图。当云游戏2的云游戏实例创建成功后,主播客户端中显示有云游戏2的游戏界面81,游戏界面81中可以包括云游戏实例的分享控件811;当云游戏实例的分享控件811被选中时,主播客户端可以向云游戏的服务器发送针对云游戏实例的分享请求;云游戏的服务器接收到主播客户端针对云游戏实例的分享请求后,响应于主播客户端的分享请求,向主播客户端返回云游戏实例的分享口令;在一种实现方式中,主播客户端可以将云游戏实例的分享口令输出至游戏界面81中,分享口令可以包括云游戏实例的标识以及云游戏实例的登录密码,如图8b所示的分享口令812“您的账号口令为:0021”;在另一种实现方式中,主播客户端可以将云游戏实例的分享口令发送至观众客户端。
对于观众用户,观众用户的处理流程可参见图8c,图8c示出了本申请一个示例性实施例提供的一种云游戏实例的接入过程的流程示意图。如图8c所示,当观众用户获取到分享口令时,若观众用户使用的终端未安装云游戏的客户端(即未安装观众客户端),则观众用 户需要在终端中下载并安装登录云游戏的客户端。在一种实现方式中,若观众用户的终端已安装云游戏的客户端,则观众用户可以在观众客户端中输入分享口令,例如可以在观众客户端的游戏参与界面中输入分享口令;输入分享口令之后,观众客户端可以向云游戏的服务器发送接入请求。在另一种实现方式中,分享口令可以是指云游戏的参与链接,若观众用户的终端已安装云游戏的客户端,那么观众用户可以直接点击观众客户端中显示的主播直播界面中的分享口令,或者观众用户可以直接点击主播客户端分享至观众客户端中的分享口令,便可触发向云游戏的服务器发送接入请求。若已接入云游戏2的云游戏实例的客户端的数量超过接入数量阈值,则云游戏的服务器可以向观众客户端返回接入失败通知;观众客户端接收到接入失败通知之后,可以根据接入失败通知向观众用户输出接入失败提示,例如接入失败提示的提示内容可以为“云游戏2的接入位置已满”;其中,接入数量阈值是指允许接入云游戏2的云游戏实例中的客户端的数量上限。若已接入云游戏2的云游戏实例的客户端的数量未超过接入数量阈值,则观众客户端允许接入云游戏实例;观众客户端成功接入云游戏实例之后,云游戏的服务器可以创建云游戏实例的第二路流处理资源,以及将观众客户端与第二路流处理资源进行绑定,云游戏实例与观众客户端之间可以基于第二路流处理资源进行数据传输。
在观众客户端未接入云游戏实例之前,主播客户端具备云游戏实例的操作权限,即主播客户端可以对云游戏实例进行操作。在观众客户端成功接入至云游戏实例之后,云游戏的服务器可以根据主播客户端的权限设置请求为观众客户端配置权限。权限可以包括以下至少一种:针对云游戏实例的操作权限或针对云游戏实例的浏览权限;针对云游戏实例的操作权限是指可以对云游戏实例进行操作的权限;针对云游戏实例的浏览权限是指对云游戏实例的游戏画面进行浏览的权限,具备云游戏实例的浏览权限的用户只能浏览其他用户操作云游戏实例的游戏画面,不能对云游戏实例进行操作。在一种实现方式中,若云游戏的服务器根据主播客户端的权限设置请求为观众客户端配置云游戏实例的操作权限,此时观众客户端的操作数据被注入至云游戏实例中,观众客户端可以对云游戏实例进行操作;主播客户端可以对观众客户端控制的云游戏实例的游戏画面进行浏览,并在游戏界面81中输出控制提示813(例如图8b所示的“观众客户端正在控制”)。在另一种实现方式中,若云游戏的服务器根据主播客户端的权限设置请求为观众客户端配置云游戏实例的浏览权限,此时观众客户端的操作数据在传输至云游戏实例的过程中被丢弃,观众客户端不能对云游戏实例进行操作,而只能对主播客户端控制的云游戏实例的游戏画面进行浏览。
(2)街机类多用户操作云游戏
在街机类多用户操作云游戏的游戏场景中,对于第一客户端触发创建云游戏实例的过程,以及第二客户端接入云游戏实例的过程,与主播带练云游戏的游戏场景类似,在此不再赘述。而街机类多用户操作云游戏的游戏场景与主播带练云游戏的游戏场景的区别在于:在主播带练云游戏的游戏场景中,第二客户端对于云游戏实例的权限是云游戏的服务器根据第一客户端的权限设置请求配置的;主播客户端与观众客户端中,只有一个客户端具备云游戏实例的操作权限,其他客户端具备云游戏实例的浏览权限;而在街机类多用户操作云游戏的游戏场景中,接入云游戏实例的所有客户端均具备对云游戏的操作权限,都可以 对云游戏实例进行操作。例如,在双人格斗云游戏中,双人格斗云游戏的云游戏实例创建成功后,第一客户端映射到第一操作控件,第一客户端在游戏界面中选择双人模式;然后,第二客户端接入至云游戏实例之后,第二客户端映射到第二操作控件;第一客户端的用户可以通过向第一操作控件注入第一客户端的操作数据,以控制第一操作杆根据注入的操作数据对云游戏实例中的第一格斗选手进行操作,第二客户端的用户可以通过向第二操作杆注入第二客户端的操作数据,以控制第二操作杆根据注入的操作数据对云游戏实例中的第二个格斗选手进行操作,实现双人格斗。
由上述关于主播用户带练云游戏的游戏场景可知,主播客户端可以通过向云游戏的服务器发送权限设置请求,实现操作权限在主播客户端和观众客户端之间进行切换和转让,满足主播带练的游戏需求。由上述街机类多用户操作云游戏的游戏场景可知,接入云游戏实例的多个客户端均具备针对云游戏实例的操作权限,均可以对云游戏实例进行操作,满足多用户参与的游戏需求。本申请实施例提及的云游戏的处理方案可以丰富云游戏的游玩场景;并且参与云游戏的客户端均具备独立的一路流处理资源,可以保证客户端与云游戏实例之间的数据传输过程高效平稳地进行,各个客户端中显示的游戏画面清晰而流畅,有效提升了用户的游戏参与体验。
上述详细阐述了本申请实施例的方法,为了便于更好地实施本申请实施例的上述方案,相应地,下面提供了本申请实施例的装置。
请参见图9,图9示出了本申请一个示例性实施例提供的一种云游戏的处理装置的结构示意图,该云游戏的处理装置90可以设置于云游戏的处理设备中,云游戏的处理设备可以是图3所示的云游戏的处理***中的服务器304;云游戏的处理装置90可以用于执行图4或图6所示的方法实施例中的相应步骤,该云游戏的处理装置90可以包括如下单元:
媒体传输模块901,用于接收第二客户端针对云游戏实例的接入请求,云游戏实例是根据第一客户端针对云游戏的游玩请求而创建的,第一客户端与云游戏实例的第一路流处理资源相绑定,且云游戏实例与第一客户端之间的数据传输是通过第一路流处理资源实现的;
媒体编码模块902和媒体传输模块901,均用于响应于第二客户端的接入请求,创建云游戏实例的第二路流处理资源;
媒体传输模块901,还用于将第二路流处理资源与第二客户端进行绑定;以及,通过第二路流处理资源实现第二客户端与云游戏实例之间的数据传输。
在一种实现方式中,第二客户端的接入请求中携带第二客户端的用户标识和第一接入策略,第一接入策略用于表示第二客户端的类型为使用者类型;
媒体编码模块902和媒体传输模块901,均用于响应于所述第二客户端的接入请求,创建所述云游戏实施例的第二路流处理资源时,具体用于执行如下步骤:
根据第二客户端的用户标识,为第二客户端分配接入会话标识;
根据第一接入策略,生成云游戏实例的第二路流处理资源及第二路流处理资源的标识。
在一种实现方式中,媒体传输模块901,用于将第二路流处理资源与第二客户端进行绑定时,具体用于执行如下步骤:
通过在第二客户端的接入会话标识与第二路流处理资源的标识之间建立绑定关系,实 现对所述第二路流处理资源与所述第二客户端的绑定。
在一种实现方式中,媒体传输模块901,还用于执行如下步骤:
接收第三客户端针对云游戏实例的接入请求,第三客户端的接入请求中携带第三客户端的用户标识和第二接入策略,第二接入策略用于表示第三客户端的类型为观察者类型;
响应于第三客户端的接入请求,从第一路流处理资源和第二路流处理资源中选择一路流处理资源;
将所选择的一路流处理资源与第三客户端进行绑定;以及,在第三客户端与云游戏实例之间基于所选择的一路流处理资源进行数据传输。
在一种实现方式中,媒体传输模块901用于在第二客户端与云游戏实例之间基于第二路流处理资源进行数据传输时,具体用于执行如下步骤:
获取云游戏实例中的媒体流;
通过第二路流处理资源将媒体流发送至第二客户端;以及,当第二客户端请求对云游戏实例进行操作时,通过第二路流处理资源接收第二客户端的操作数据。
在一种实现方式中,媒体传输模块901还用于执行如下步骤:
基于第二路流处理资源向第二客户端发送网络探测包,并接收第二客户端反馈的网络信息;以及,根据网络信息调整网络探测包的数据量,并调整第二路流处理资源的传输参数。
在一种实现方式中,媒体传输模块901,用于根据网络信息调整网络探测包的数据量,并调整第二路流处理资源的传输参数时,具体用于执行如下步骤:
若网络信息指示网络已发生拥塞,则减小网络探测包的数据量,并对第二路流处理资源的传输参数进行第一调整;
若网络信息指示网络未发生拥塞,则增加网络探测包的数据量,并对第二路流处理资源的传输参数进行第二调整;
其中,第一调整包括以下至少一种:降低第二路流处理资源中的媒体编码码率,降低第二路流处理资源中的媒体帧的帧率,丢弃第二路流处理资源中的部分媒体帧;
第二调整包括以下至少一种:提高第二路流处理资源中的媒体编码码率,提高第二路流处理资源中的媒体帧的帧率。
在一种实现方式中,媒体传输模块901还用于执行如下步骤:根据第一客户端的权限设置请求为第二客户端配置权限,权限包括以下至少一种:针对云游戏实例的操作权限或针对云游戏实例的浏览权限;
媒体编码模块902还用于执行如下步骤:若第二客户端不具备针对云游戏实例的操作权限,则当通过第二路流处理资源接收到第二客户端的操作数据时,丢弃第二客户端的操作数据。
在一种实现方式中,第一客户端与云游戏实例中的第一操作控件相映射,第二客户端与云游戏实例中的第二操作控件相映射;
当媒体传输模块901基于第一路流处理资源接收到第一客户端的操作数据时,媒体编码模块902还用于执行如下步骤:将第一客户端的操作数据注入至第一操作控件中,以控制第 一操作控件操作云游戏实例;
当媒体传输模块901基于第二路流处理资源接收到第二客户端的操作数据时,媒体编码模块902还用于执行如下步骤:将第二客户端的操作数据注入至第二操作控件中,以控制第二操作控件操作云游戏实例。
在一种实现方式中,媒体传输模块901还用于执行如下步骤:通过第一路流处理资源接收第一客户端发送的设备分辨率;
媒体编码模块902还用于执行如下步骤:根据设备分辨率设置云游戏实例的容器窗口分辨率;
媒体传输模块901还用于执行如下步骤:将容器窗口分辨率通过第一路流处理资源发送至第一客户端。
在一种实现方式中,媒体传输模块901,还用于执行如下步骤:当第二客户端接入至云游戏实例后,通过第二路流处理资源向第二客户端发送容器窗口分辨率;
通过第二路流处理资源接收第二客户端发送的分辨率设置请求,分辨率设置请求中携带第二客户端请求设置的编码分辨率;
根据容器窗口分辨率对请求设置的编码分辨率进行修正;
媒体编码模块902,还用于执行如下步骤:采用修正后的编码分辨率对传输的媒体流进行编码处理。
在一种实现方式中,媒体传输模块901还用于执行如下步骤:接收第一客户端针对云游戏实例的分享请求;
响应于第一客户端的分享请求,向第一客户端返回云游戏实例的分享口令,以使第一客户端将分享口令分享至除第一客户端之外的其他客户端;分享口令包含云游戏实例的标识及云游戏实例的登录密码;
其中,第二客户端的接入请求是在第二客户端获得分享口令之后,通过分享口令触发发送的。
根据本申请的一个实施例,图9所示的云游戏的处理装置90中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,该云游戏的处理装置90也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。根据本申请的另一个实施例,可以通过在包括例如中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的通用计算机的通用计算设备上运行能够执行如图4或图6中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图9中所示的云游戏的处理装置90,以及来实现本申请实施例的云游戏的处理方法。计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质装载于上述计算设备中,并在其中运行。
本申请实施例中,第一客户端针对云游戏发起游玩请求并创建云游戏实例时,会为该 第一客户端分配云游戏实例的第一路流处理资源,并且该第一客户端与该第一路流处理资源相绑定,云游戏实例与第一客户端基于该第一路流处理资源进行数据传输;第二客户端可以请求接入至由第一客户端请求创建的该云游戏实例中,响应于第二客户端的接入请求,会为第二客户端分配云游戏实例的第二路流处理资源,将第二路流处理资源与第二客户端进行绑定,第二客户端与云游戏实例之间则可基于第二路流处理资源进行数据传输。由此可见,本申请实施例支持对同一个云游戏实例的多路操作,即允许多个客户端(如第一客户端和第二客户端)接入并操作同一个云游戏实例,有效提升了云游戏操作模式的灵活性与多样性。另外,接入至同一个云游戏实例的每个客户端均各自绑定云游戏实例的一路单独的流处理资源,并基于各自绑定的单独的流处理资源来进行数据传输,这样就有利于基于每路流处理资源来分别对各个客户端进行有针对性地、独立地编码流控和质量控制,并且由于各路流处理资源之间相互独立、互不影响,从而能够在客户端与云游戏实例之间进行高效且稳定地数据传输。
请参见图10,图10示出了本申请一个示例性实施例提供的一种云游戏的处理设备的结构示意图,该云游戏的处理设备100至少包括处理器1001、计算机可读存储介质1002以及通信接口1003。其中,处理器1001、计算机可读存储介质1002以及通信接口1003可通过总线或者其它方式连接。通信接口1003可以用于接收第一客户端的游玩请求、第二客户端的接入请求、第一客户端的操作数据、第二客户端的操作数据等等,通信接口1003还可以向第一客户端发送媒体流、向第二客户端发送媒体流等等。计算机可读存储介质1002可以存储在存储器中,计算机可读存储介质1002用于存储计算机程序,计算机程序包括计算机指令。处理器1001用于执行计算机指令。处理器1001(或称CPU(Central Processing Unit,中央处理器))是云游戏的处理设备100的计算核心以及控制核心,其适于实现一条或多条计算机指令,具体适于加载并执行一条或多条计算机指令从而实现相应方法流程或相应功能。
本申请实施例还提供了一种计算机可读存储介质(Memory),计算机可读存储介质是云游戏的处理设备100中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质1002既可以包括云游戏的处理设备100中的内置存储介质,当然也可以包括云游戏的处理设备100所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了云游戏的处理设备100的操作***。并且,在该存储空间中还存放了适于被处理器1001加载并执行的一条或多条的计算机指令,这些计算机指令可以是一个或多个的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质1002可以是高速RAM存储器,也可以是非不稳定的存储器(Non-Volatile Memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器1001的计算机可读存储介质。
该云游戏的处理设备100可以是图3所示的云游戏的处理***中的服务器304,该计算机可读存储介质1002中存储有计算机程序,计算机程序包括一条或多条计算机指令;由处理器1001加载并执行一条或多条计算机指令,以实现图4或图6所示方法实施例中的相应步骤;具体实现中,计算机可读存储介质1002中的计算机指令由处理器1001加载并执行上述各种可选方式中提供的云游戏的处理方法。
本申请实施例中,第一客户端针对云游戏发起游玩请求并创建云游戏实例时,会为该 第一客户端分配云游戏实例的第一路流处理资源,并且该第一客户端与该第一路流处理资源相绑定,云游戏实例与第一客户端基于该第一路流处理资源进行数据传输;第二客户端可以请求接入至由第一客户端请求创建的该云游戏实例中,响应于第二客户端的接入请求,会为第二客户端分配云游戏实例的第二路流处理资源,将第二路流处理资源与第二客户端进行绑定,第二客户端与云游戏实例之间则可基于第二路流处理资源进行数据传输。由此可见,本申请实施例支持对同一个云游戏实例的多路操作,即允许多个客户端(如第一客户端和第二客户端)接入并操作同一个云游戏实例,有效提升了云游戏操作模式的灵活性与多样性。另外,接入至同一个云游戏实例的每个客户端均各自绑定云游戏实例的一路单独的流处理资源,并基于各自绑定的单独的流处理资源来进行数据传输,这样就有利于基于每路流处理资源来分别对各个客户端进行有针对性地、独立地编码流控和质量控制,并且由于各路流处理资源之间相互独立、互不影响,从而能够在客户端与云游戏实例之间进行高效且稳定地数据传输。
另外,本申请实施例还提供了一种存储介质,所述存储介质用于存储计算机程序,所述计算机程序用于执行上述实施例提供的方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选方式中提供的云游戏的处理方法。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (16)

  1. 一种云游戏的处理方法,所述方法由云游戏的处理设备执行,所述方法包括:
    接收第二客户端针对云游戏实例的接入请求,所述云游戏实例是根据第一客户端针对云游戏的游玩请求而创建的,所述第一客户端与所述云游戏实例的第一路流处理资源相绑定,且所述云游戏实例与所述第一客户端之间的数据传输是通过所述第一路流处理资源实现的;
    响应于所述第二客户端的接入请求,创建所述云游戏实例的第二路流处理资源,所述第一路流处理资源和所述第二路流处理资源相互独立;
    将所述第二路流处理资源与所述第二客户端进行绑定;以及,
    通过所述第二路流处理资源实现所述第二客户端与所述云游戏实例之间的数据传输。
  2. 如权利要求1所述的方法,所述第二客户端的接入请求中携带所述第二客户端的用户标识和第一接入策略,所述第一接入策略用于表示所述第二客户端的类型为使用者类型;
    所述响应于所述第二客户端的接入请求,创建所述云游戏实施例的第二路流处理资源,包括:
    根据所述第二客户端的用户标识,为所述第二客户端分配接入会话标识;
    根据所述第一接入策略,生成所述云游戏实例的第二路流处理资源及所述第二路流处理资源的标识。
  3. 如权利要求2所述的方法,所述将所述第二路流处理资源与所述第二客户端进行绑定,包括:
    通过在所述第二客户端的接入会话标识与所述第二路流处理资源的标识之间建立绑定关系,实现对所述第二路流处理资源与所述第二客户端的绑定。
  4. 如权利要求1所述的方法,所述方法还包括:
    接收第三客户端针对所述云游戏实例的接入请求,所述第三客户端的接入请求中携带所述第三客户端的用户标识和第二接入策略,所述第二接入策略用于表示所述第三客户端的类型为观察者类型;
    响应于所述第三客户端的接入请求,从所述第一路流处理资源和所述第二路流处理资源中选择一路流处理资源;
    将所选择的一路流处理资源与所述第三客户端进行绑定;以及,
    在所述第三客户端与所述云游戏实例之间基于所选择的一路流处理资源进行数据传输。
  5. 如权利要求1所述的方法,所述通过所述第二路流处理资源实现所述第二客户端与所述云游戏实例之间的数据传输,包括:
    获取所述云游戏实例中的媒体流;
    通过所述第二路流处理资源将所述媒体流发送至所述第二客户端;以及,
    当所述第二客户端请求对所述云游戏实例进行操作时,通过所述第二路流处理资源接收所述第二客户端的操作数据。
  6. 如权利要求5所述的方法,所述方法还包括:
    基于所述第二路流处理资源向所述第二客户端发送网络探测包,并接收所述第二客户端反馈的网络信息;以及,
    根据所述网络信息调整所述网络探测包的数据量,并调整所述第二路流处理资源的传输参数。
  7. 如权利要求6所述的方法,所述根据所述网络信息调整所述网络探测包的数据量,并调整所述第二路流处理资源的传输参数,包括:
    若所述网络信息指示网络已发生拥塞,则减小所述网络探测包的数据量,并对所述第二路流处理资源的传输参数进行第一调整;
    若所述网络信息指示网络未发生拥塞,则增加所述网络探测包的数据量,并对所述第二路流处理资源的传输参数进行第二调整;
    其中,所述第一调整包括以下至少一种:降低所述第二路流处理资源中的媒体编码码率、降低所述第二路流处理资源中的媒体帧的帧率或丢弃所述第二路流处理资源中的部分媒体帧;
    所述第二调整包括以下至少一种:提高所述第二路流处理资源中的媒体编码码率或提高所述第二路流处理资源中的媒体帧的帧率。
  8. 如权利要求1所述的方法,所述方法还包括:
    根据所述第一客户端的权限设置请求为所述第二客户端配置权限,所述权限包括以下至少一种:针对所述云游戏实例的操作权限或针对所述云游戏实例的浏览权限;
    若所述第二客户端不具备针对所述云游戏实例的操作权限,则当通过所述第二路流处理资源接收到所述第二客户端的操作数据时,丢弃所述第二客户端的操作数据。
  9. 如权利要求1所述的方法,所述第一客户端与所述云游戏实例中的第一操作控件相映射,所述第二客户端与所述云游戏实例中的第二操作控件相映射;所述方法还包括:
    当基于所述第一路流处理资源接收到所述第一客户端的操作数据时,将所述第一客户端的操作数据注入至所述第一操作控件中,以控制所述第一操作控件操作所述云游戏实例;
    当基于所述第二路流处理资源接收到所述第二客户端的操作数据时,将所述第二客户端的操作数据注入至所述第二操作控件中,以控制所述第二操作控件操作所述云游戏实例。
  10. 如权利要求1所述的方法,所述方法还包括:
    通过所述第一路流处理资源接收所述第一客户端发送的设备分辨率;
    根据所述设备分辨率设置所述云游戏实例的容器窗口分辨率;以及,
    将所述容器窗口分辨率通过所述第一路流处理资源发送至所述第一客户端。
  11. 如权利要求10所述的方法,所述方法还包括:
    当所述第二客户端接入至所述云游戏实例后,通过所述第二路流处理资源向所述第二客户端发送所述容器窗口分辨率;
    通过所述第二路流处理资源接收所述第二客户端发送的分辨率设置请求,所述分辨率设置请求中携带所述第二客户端请求设置的编码分辨率;
    根据所述容器窗口分辨率对所述请求设置的编码分辨率进行修正;以及,
    采用修正后的编码分辨率对基于所述第二路流处理资源传输的媒体流进行编码处理。
  12. 如权利要求1-11任一项所述的方法,所述方法还包括:
    接收所述第一客户端针对所述云游戏实例的分享请求;
    响应于所述第一客户端的分享请求,向所述第一客户端返回所述云游戏实例的分享口令,以使所述第一客户端将所述分享口令分享至除所述第一客户端之外的其他客户端;所述分享口令包含所述云游戏实例的标识及所述云游戏实例的登录密码;
    其中,所述第二客户端的接入请求是在所述第二客户端获得所述分享口令之后,通过所述分享口令触发发送的。
  13. 一种云游戏的处理装置,所述云游戏的处理装置包括媒体编码模块和媒体传输模块;其中:
    所述媒体传输模块,用于接收第二客户端针对云游戏实例的接入请求,所述云游戏实例是根据第一客户端针对云游戏的游玩请求而创建的,所述第一客户端与所述云游戏实例的第一路流处理资源相绑定,且所述云游戏实例与所述第一客户端之间的数据传输是通过所述第一路流处理资源实现的;
    所述媒体编码模块和所述媒体传输模块,均用于响应于所述第二客户端的接入请求,创建所述云游戏实例的第二路流处理资源;
    所述媒体传输模块,还用于将所述第二路流处理资源与所述第二客户端进行绑定;以及,通过所述第二路流处理资源实现所述第二客户端与所述云游戏实例之间的数据传输。
  14. 一种云游戏的处理设备,所述云游戏的处理设备包括:
    处理器,适于实现计算机程序;以及,
    计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1至12任一项所述的云游戏的处理方法。
  15. 一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,所述计算机程序适于由处理器加载并执行如权利要求1至12任一项所述的云游戏的处理方法。
  16. 一种包括指令的计算机程序产品,当其在计算机上运行时,使得所述计算机执行权利要求1至12任一项所述的云游戏的处理方法。
PCT/CN2022/082147 2021-04-28 2022-03-22 一种云游戏的处理方法、装置、设备及存储介质 WO2022227938A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP22794414.7A EP4223379A4 (en) 2021-04-28 2022-03-22 CLOUD GAME PROCESSING METHOD, APPARATUS AND DEVICE AND STORAGE MEDIUM
JP2023548745A JP2024509060A (ja) 2021-04-28 2022-03-22 クラウドゲームの処理方法、装置、機器及びコンピュータプログラム
US18/072,632 US20230096900A1 (en) 2021-04-28 2022-11-30 Cloud gaming processing method, apparatus, and device, and storage medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110463379.XA CN112870711B (zh) 2021-04-28 2021-04-28 一种云游戏的处理方法、装置、设备及存储介质
CN202110463379.X 2021-04-28

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/072,632 Continuation US20230096900A1 (en) 2021-04-28 2022-11-30 Cloud gaming processing method, apparatus, and device, and storage medium

Publications (1)

Publication Number Publication Date
WO2022227938A1 true WO2022227938A1 (zh) 2022-11-03

Family

ID=76040754

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/082147 WO2022227938A1 (zh) 2021-04-28 2022-03-22 一种云游戏的处理方法、装置、设备及存储介质

Country Status (5)

Country Link
US (1) US20230096900A1 (zh)
EP (1) EP4223379A4 (zh)
JP (1) JP2024509060A (zh)
CN (1) CN112870711B (zh)
WO (1) WO2022227938A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113423018B (zh) * 2021-08-24 2021-11-02 腾讯科技(深圳)有限公司 一种游戏数据处理方法、装置及存储介质
CN112870711B (zh) * 2021-04-28 2021-07-16 腾讯科技(深圳)有限公司 一种云游戏的处理方法、装置、设备及存储介质
CN113209632B (zh) * 2021-06-08 2022-08-12 腾讯科技(深圳)有限公司 一种云游戏的处理方法、装置、设备及存储介质
CN113778589A (zh) * 2021-08-20 2021-12-10 广州虎牙科技有限公司 屏幕适配方法、服务器、智能终端、电子设备及存储介质
CN114422823A (zh) * 2021-12-27 2022-04-29 炫彩互动网络科技有限公司 一种改进的云游戏流稳定传输方法
CN114598931A (zh) * 2022-03-08 2022-06-07 杭州雾联科技有限公司 一种多开云游戏的串流方法、***、装置及介质
CN116328290A (zh) * 2023-05-22 2023-06-27 安徽海马云科技股份有限公司 实现云游戏联机对战的方法、装置、存储介质及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200197820A1 (en) * 2014-02-04 2020-06-25 Sony Interactive Entertainment America Llc Online video game service with split clients
CN111773660A (zh) * 2020-07-03 2020-10-16 珠海金山网络游戏科技有限公司 一种云游戏处理***、方法及装置
CN111818394A (zh) * 2019-12-11 2020-10-23 厦门雅基软件有限公司 云游戏直播方法、客户端及计算机可读存储介质
CN112351302A (zh) * 2020-11-24 2021-02-09 网易(杭州)网络有限公司 基于云游戏的直播交互方法、装置及存储介质
CN112473133A (zh) * 2020-12-16 2021-03-12 杭州雾联科技有限公司 一种云游戏响应的方法、***、设备及可读存储介质
CN112870711A (zh) * 2021-04-28 2021-06-01 腾讯科技(深圳)有限公司 一种云游戏的处理方法、装置、设备及存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7458894B2 (en) * 2004-09-15 2008-12-02 Microsoft Corporation Online gaming spectator system
US20160259453A1 (en) * 2015-03-06 2016-09-08 Sony Computer Entertainment America Llc Dynamic adjustment of cloud game data streams to output device and network quality
US10315108B2 (en) * 2015-08-19 2019-06-11 Sony Interactive Entertainment America Llc Local application quick start with cloud transitioning
US11040281B2 (en) * 2015-09-30 2021-06-22 Sony Interactive Entertainment LLC Multi-user demo streaming service for cloud gaming
CN106110659B (zh) * 2016-07-15 2019-08-06 网易(杭州)网络有限公司 游戏账户的处理方法及装置
US10471360B2 (en) * 2017-03-06 2019-11-12 Sony Interactive Entertainment LLC User-driven spectator channel for live game play in multi-player games
US10491666B2 (en) * 2017-04-03 2019-11-26 Sony Interactive Entertainment America Llc Systems and methods for using a distributed game engine
US10610779B2 (en) * 2017-06-19 2020-04-07 Sony Interactive Entertainment LLC Methods and systems for scheduling game play of a video game
CN111586164B (zh) * 2020-05-06 2023-08-15 上海达龙信息科技有限公司 远程云桌面的分享、接替、信息处理方法及电子设备
CN111773737A (zh) * 2020-06-17 2020-10-16 咪咕互动娱乐有限公司 云游戏代打方法及装置、服务器和存储介质
CN112370776A (zh) * 2020-10-20 2021-02-19 珠海西山居移动游戏科技有限公司 通过动态限帧提升云游戏流畅度的方法、装置及介质
CN112565802B (zh) * 2020-11-30 2023-07-21 Oppo广东移动通信有限公司 直播交互方法、***、服务器及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200197820A1 (en) * 2014-02-04 2020-06-25 Sony Interactive Entertainment America Llc Online video game service with split clients
CN111818394A (zh) * 2019-12-11 2020-10-23 厦门雅基软件有限公司 云游戏直播方法、客户端及计算机可读存储介质
CN111773660A (zh) * 2020-07-03 2020-10-16 珠海金山网络游戏科技有限公司 一种云游戏处理***、方法及装置
CN112351302A (zh) * 2020-11-24 2021-02-09 网易(杭州)网络有限公司 基于云游戏的直播交互方法、装置及存储介质
CN112473133A (zh) * 2020-12-16 2021-03-12 杭州雾联科技有限公司 一种云游戏响应的方法、***、设备及可读存储介质
CN112870711A (zh) * 2021-04-28 2021-06-01 腾讯科技(深圳)有限公司 一种云游戏的处理方法、装置、设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4223379A4

Also Published As

Publication number Publication date
US20230096900A1 (en) 2023-03-30
CN112870711B (zh) 2021-07-16
CN112870711A (zh) 2021-06-01
JP2024509060A (ja) 2024-02-29
EP4223379A4 (en) 2024-06-12
EP4223379A1 (en) 2023-08-09

Similar Documents

Publication Publication Date Title
WO2022227938A1 (zh) 一种云游戏的处理方法、装置、设备及存储介质
CN113423018B (zh) 一种游戏数据处理方法、装置及存储介质
US10617946B2 (en) Program mode transition
KR101956639B1 (ko) 비디오 서버 및 게임 서버를 포함하는 컴퓨터 게임 시스템에서 컴퓨터 게임을 제공하는 방법 및 시스템
US9172979B2 (en) Experience or “sentio” codecs, and methods and systems for improving QoE and encoding based on QoE experiences
US8903897B2 (en) System and method for providing interactive content to non-native application environments
CN109304031A (zh) 一种基于异构智能终端的虚拟化云游戏平台
CN113209632A (zh) 一种云游戏的处理方法、装置、设备及存储介质
CN104144351A (zh) 应用虚拟化平台的视频播放方法和装置
EP2621594B1 (en) Dual mode program execution and loading
WO2024037110A1 (zh) 数据处理方法、装置、设备以及介质
WO2022111421A1 (zh) 应用界面投屏方法、装置、设备以及存储介质
KR20130026609A (ko) 멀티미디어 클라우드 시스템의 클라이언트에서 멀티미디어 클라우드 서비스 제공 장치 및 방법, 그리고 멀티미디어 클라우드 시스템의 소셜 네트워크 서비스 서버에서 멀티미디어 클라우드 서비스 제공 방법
US20220347565A1 (en) Massive Multi-Player Online (MMO) Games Server and Methods for Executing the Same
WO2012021174A2 (en) EXPERIENCE OR "SENTIO" CODECS, AND METHODS AND SYSTEMS FOR IMPROVING QoE AND ENCODING BASED ON QoE EXPERIENCES
JP2022546145A (ja) クラウドネイティブによる3d場面のゲーム方法及びシステム
CN113926185A (zh) 一种数据处理方法、装置、设备及存储介质
KR101480140B1 (ko) 멀티 인젝션 서버 및 그 방법
US9088631B2 (en) Game streaming system and method of supporting the multiuser and multiplatform
CN115920372A (zh) 数据处理方法及装置、计算机可读存储介质、终端
US20210154576A1 (en) Vector graphics-based live streaming of video games
KR20130109904A (ko) 멀티스크린 기반의 다차원 게임 서비스 방법 및 그 장치
US11870830B1 (en) Embedded streaming content management
US11012479B2 (en) Methods for capturing and broadcasting user computer sessions and related computer program products
WO2024139724A1 (zh) 图像处理方法、装置、计算机设备、计算机可读存储介质及计算机程序产品

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22794414

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022794414

Country of ref document: EP

Effective date: 20230503

WWE Wipo information: entry into national phase

Ref document number: 2023548745

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE