SYSTEM AND METHOD FOR EFFICIENT MANAGEMENT OF RESOURCES FOR STREAMING INTERACTIVE MULTIMEDIA CONTENT - Patent application
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- ADAIR GUYS INC
- Filing Date
- 2023-04-13
- Publication Date
- 2026-04-20
AI Technical Summary
Cloud gaming and edge computing require significant bandwidth and computing resources, particularly for rendering and encoding cutscenes, leading to high bandwidth usage and resource consumption in managed networks like 5G mobile networks.
Implementing over-the-top (OTT) distribution of media data using adaptive bitrate (ABR) encoding for non-bidirectional content such as game cutscenes, supplementary content, and advertisements, which reduces file size and storage requirements at network edge locations, and allows for faster distribution times.
This approach significantly reduces bandwidth requirements and conserves computing resources by switching from network-managed real-time encoding to ABR streaming for non-interactive content, enhancing the efficiency of cloud gaming and edge computing operations.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] The present disclosure is directed to reducing bandwidth requirements for interactive content. In particular, techniques are disclosed for reducing bandwidth requirements by delivering non-interactive content inserted within interactive content using adaptive bitrate streaming. Summary of the Invention [Means for solving the problem]
[0002] Online purchase of games with the ability to download, install, and run the games locally has been around for a long time. Video game companies are now beginning to offer services for users to subscribe to and play games that run within a network. This is known as cloud gaming. Cloud gaming is gaining support among game studios, internet companies, and network operators. Google's Stadia offers remote game streaming as a business. TM , Nvidia's GeForce Now TM , and Sony's PS Now TM There are products like this on the market today. Amazon is also getting into the cloud gaming business.
[0003] Cloud gaming uses a technique called remote rendering. A remotely rendered game runs at some location in the network, typically at a network edge location, and encodes the video, audio, and haptic output of the rendered game. The encoded video, audio, and haptics are transported or streamed over the network to a client device using a low latency protocol such as RTP. The client device decodes the video, audio, and haptic data streams, renders them, and displays the game on the client device. Controller input is consumed on the local device and delivered over the network to a game engine running remotely. In remotely rendered cloud gaming, the game engine runs at the edge and renders the video output.
[0004] Cutscenes are included by game studios to enhance the game experience and provide a video cinematic experience to hide long loading times when transitioning from one main gameplay level / world to the next. Game level loading times can be as much as 30-50 seconds when transitioning from one level to the next. Rather than showing a busy cursor like an animated icon, game engines provide the ability to render cutscenes involving computer animated in-game characters acting out scenes that relate to the gameplay and tell the storyline for the upcoming level. These cutscenes can be up to 5-10 minutes long. Game engines will allow cutscenes to be avoided once the next game level is loaded, allowing the user to continue after the required loading time.
[0005] Many newer game cutscenes are now interactive and customized with in-game purchases and upgrades. When the game is running locally and the cutscenes are generated from the same game engine, this is essentially an extension of the game, providing basic interactivity and it is easy to generate custom cutscenes based on the player's character customization. Cloud gaming is useful for providing the same experience without consuming the managed network resources and bandwidth typically required to run the game in its primary gaming mode.
[0006] In addition, many extended reality (XR) (e.g., augmented reality (AR) or virtual reality (VR)) developers are beginning to utilize remote rendering techniques to support richer and improved AR and VR applications. Game engines such as Unreal Engine, Blender, and Unity are being leveraged by AR and VR developers to support AR and VR applications.
[0007] In managed or semi-managed networks (e.g., 5G mobile networks), dedicated slices for cloud gaming can be set up at the edge of the network. "Edge of the network" or "network edge" often refers to a network node or nodes accessible by client devices that provide games to end users. These nodes may provide the client devices with computational resources or infrastructure to run games or parts of games. Load balancing may be an issue with cloud gaming and edge computing. Load bearers may be assigned priority or required bandwidth for video, audio, and haptic streaming. In some cases, a cloud gaming system that allows clients to utilize resources at the network edge allows client devices to provide games to end users without having games or other software installed on the client device. In some cases, a client device may have an installed app to access a cloud gaming library, but a user may not need an installed game to play the game on the client device. In any case, cloud gaming may require a high level of edge computing and network communication. For example, delivering non-interactive cinematic cut scenes or advertisements using a low-latency encoding scheme that uses the IP GOP structure and minimal user device buffers used in active gameplay may result in much higher bitrate encoding than necessary due to the ultra-low latency encoding requirements in remotely rendered cloud gaming. This results in much higher bandwidth usage over managed networks such as 5G mobile networks. Rendering and encoding cut scenes also demands more GPU resources at the network edge.
[0008] In light of the issues stemming from the resource-intensive nature of cloud gaming and edge computing, particularly with respect to rendering and encoding cut scenes (e.g., in the context of gaming or XR), what is needed are techniques for conserving bandwidth and computing resources allocated for cloud-based real-time interactive content, such as gaming, AR, and VR applications. Such resources can be conserved by switching from network-managed real-time encoding and delivery of media data to over-the-top (OTT) delivery of media data using adaptive bitrate (ABR) encoding for portions of the content that do not require ultra-low latency encoding. Examples of such content can include game cut scenes, supplemental content, and advertisements. This significantly reduces the file size of the interactive content, since less data is required to render non-interactive content than that of interactive content. Thus, storage requirements at network edge locations are reduced. In addition, this allows for faster distribution times for interactive content to be distributed from content providers to network edge locations.
[0009] Systems and methods for reducing bandwidth requirements for streaming content for interactive multimedia presentations (e.g., video games, AR presentations, or VR presentations) are described herein. The interactive content is streamed to a client device using a first streaming protocol or technique. The first streaming protocol or technique may be an ultra-low latency protocol configured for low-latency real-time streaming of media data, such as Real-Time Transport Protocol (RTP). This type of protocol is ideal for real-time media delivery for interactive content and the like, since any buffering or delay of the interactive content significantly impacts the user experience of such content. In some instances, the first streaming protocol or technique may be any suitable technique that relies on encoding content at a single bitrate. Upon detection of an indication of non-interactive or supplemental content to be inserted into the interactive multimedia presentation (e.g., an interactive cut scene for a video game), streaming of the interactive content to the client device is paused. The non-interactive or supplemental content may be streamed to the client device using a second streaming protocol or technique, such as HyperText Transfer Protocol (HTTP) Live Streaming Protocol (HLS). For example, streaming of interactive content may be monitored for indications of non-interactive or supplemental content to be inserted, or for whether streaming of interactive content has ended or temporarily paused. The second streaming protocol may be a protocol configured for adaptive bitrate streaming. The non-interactive or supplemental content does not require low latency, and buffering or delays of the non-interactive or supplemental content will not affect the media content (e.g., gameplay).Thus, more traditional adaptive bitrate streaming can be effectively utilized to deliver the highest quality non-interactive or supplemental content to the client device while consuming a minimal amount of bandwidth and other system resources. In some embodiments, the second streaming protocol or technique can be any suitable technique that relies on adaptive bitrate encoding to encode content at multiple bitrates. Upon receiving an indication that the streaming of the non-interactive or supplemental content to the client device has ended, streaming of the interactive content to the client device is resumed using the first streaming protocol or technique.
[0010] In some embodiments, the indication that streaming of the non-interactive or supplemental content to the client device has ended is a user input to skip a portion of the non-interactive or supplemental content item. The user input is received during streaming of the non-interactive or supplemental content. In response to receiving the user input, streaming of the non-interactive or supplemental content to the client device is stopped and streaming of the interactive video game content to the client device is then resumed.
[0011] In some cases, non-interactive or supplemental content may be selected or customized for each particular user. For example, the non-interactive or supplemental content may be advertisements, and thus advertisements related to items that the user may be interested in may be selected. As another example, the non-interactive or supplemental content may be cut scenes between two portions of interactive gameplay that may change based on the type of character the user selects. In a fantasy role-playing game (RPG), the user may be able to select his / her character as one of several different races (e.g., elf, dwarf, wizard, etc.), and the cut scenes may include content that is specific to each race. Other examples include changes in the appearance of the user's character due to in-game acquisition, upgrades, and purchases of clothing, weaponry, armor, or other items. Thus, once a game session is established, the user's identifier may be identified. A profile is then retrieved based on the identifier. The profile may be a game-specific profile that includes information about the user's character in the video game, or may be a broader profile that includes information used for targeted advertising. Based on the profile, non-interactive content items are selected for streaming to the client device.
[0012] For customized interactive supplemental content such as cut scenes, two interactive content engines may be used. One engine at the network edge runs the main game level. Another engine (e.g., dedicated to playing cut scenes, advertisements, or other supplemental content, any of which may be interactive) runs elsewhere (at the edge of the Hyper Cloud Provider (HCP) or elsewhere in the operator's network). The system automatically switches between the engines based on the playout of the required cut scenes. There are two means of delivering customized or interactive cut scenes. It can be streamed over an unmanaged network, either internally within the operator or from the HCP, by using a real-time transport protocol such as RTP that leverages low latency, low loss, scalable throughput (L4S), or by using a live adaptive bitrate (ABR) protocol (e.g., HLS, MPEG-DASH, Microsoft Smooth Streaming, Adobe Dynamic HTTP Streaming) that leverages the Common Media Application Format (CMAF) for low latency ABR delivery. [Brief description of the drawings]
[0013] These and other objects and advantages of the present disclosure will become apparent upon consideration of the following detailed description taken in conjunction with the accompanying drawings.
[0014] [Figure 1] FIG. 1 illustrates an example of an interactive multimedia presentation with inserted supplemental content according to some embodiments of the present disclosure.
[0015] [Diagram 2] FIG. 2 is an example of a system for providing an interactive multimedia presentation in which interactive content and supplemental content are provided from different sources according to some embodiments of the present disclosure.
[0016] [Diagram 3] FIG. 3 is an example of a system for providing an interactive multimedia presentation in which interactive content and supplemental content are provided from the same source according to some embodiments of the present disclosure.
[0017] [Figure 4] FIG. 4 is an example of a content delivery network for providing interactive multimedia presentations according to some embodiments of the present disclosure.
[0018] [Diagram 5] FIG. 5 is a block diagram illustrating components of, and data flows between, a system for providing an interactive multimedia presentation in which interactive content and supplemental content are provided from the same source in accordance with some embodiments of the present disclosure.
[0019] [Figure 6] FIG. 6 is a block diagram illustrating components and data flows between them for a system for providing an interactive multimedia presentation in which interactive content and supplemental content are provided from different sources in accordance with some embodiments of the present disclosure.
[0020] [Figure 7] FIG. 7 is a block diagram illustrating components of an interactive content server and the data flow between them when supplemental content is to be inserted into an interactive multimedia presentation according to some embodiments of this disclosure.
[0021] [Figure 8] FIG. 8 is a block diagram illustrating components of an edge content management server and data flows between them for providing supplemental content according to some embodiments of the present disclosure.
[0022] [Figure 9]FIG. 9 is a flowchart illustrating a process for providing an interactive multimedia presentation according to some embodiments of the disclosure.
[0023] [Figure 10] FIG. 10 is a flowchart illustrating a process for determining whether supplemental content should be inserted into an interactive multimedia presentation according to some embodiments of this disclosure.
[0024] [Figure 11] FIG. 11 is a flowchart depicting a process for skipping a portion of the supplemental content according to some embodiments of the present disclosure.
[0025] [Figure 12] FIG. 12 is a flow chart illustrating a process for selecting supplemental content in an interactive multimedia presentation comprising a video game according to some embodiments of the present disclosure.
[0026] [Figure 13] FIG. 13 is a flowchart depicting a process for delivering video game cut scenes prior to the start of a video game according to some embodiments of the present disclosure.
[0027] [Figure 14] FIG. 14 is a flowchart depicting a process for delivering video game cut scenes between levels of a video game according to some embodiments of the present disclosure.
[0028] [Figure 15] FIG. 15 is a flowchart illustrating a process for managing bandwidth usage during delivery of video game cut scenes according to some embodiments of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0029] FIG. 1 illustrates an example of an interactive multimedia presentation according to some embodiments of the present disclosure, in which supplemental content is inserted into the interactive multimedia presentation. The interactive multimedia presentation may include video games, AR content, and VR content. Because AR and VR developers are increasingly leveraging existing game engines for their applications, the description of various embodiments of the present disclosure will be discussed in the context of video games. However, it will be apparent to one skilled in the art that the description may be applicable to other types of interactive multimedia presentations.
[0030] The interactive multimedia content 100 may be a video game. In the example of FIG. 1, the interactive multimedia content 100 is a first-person shooter video game. A cloud-based interactive content server 102 (e.g., a game engine server) encodes and transmits 104 the video game content to a client device using a high-bitrate, low-latency streaming protocol. Examples of such protocols include Web Real-Time Communications Protocol (WebRTC), Real-Time Messaging Protocol (RTMP), Real-Time Transport Protocol (RTP), Real-Time Streaming Protocol (RTSP), low-latency HTTP Live Streaming Protocol (HLS), MPEG-DASH, low-latency Common Media Application Format for WebRTC (CMAF), etc.
[0031] When supplemental content, such as advertisements or cut scenes, is to be added into the interactive multimedia presentation, the cloud-based interactive content server 102 pauses streaming of the video game content to the client device and encodes and transmits the supplemental content 108 to the client device (106) using an adaptive bitrate protocol. Examples of such protocols include MPEG-DASH, Apple HTTP Live Streaming (Apple HLS), Adobe HTTP Dynamic Streaming (HDS), or Microsoft Smooth Streaming (MSS), etc. The supplemental content can be customized for each user. For example, advertisements to be inserted into the interactive multimedia presentation can be selected for each user based on each user's preferences, media consumption history, shopping history, etc. In some cases, video game cut scenes can also be customized for each user. In many video games, in-game character selections, purchases, and upgrades can change the appearance of the user's avatar. The portions of the cut scenes that include the user's avatar can therefore be customized so that the appearance of the user's avatar accurately reflects these changes.
[0032] For non-customized supplemental content, the pre-rendered media may already be encoded in a format compatible with the second streaming protocol. FIG. 2 is an example of a system for providing an interactive multimedia presentation in which interactive content and supplemental content are provided from different sources according to some embodiments of the present disclosure. A client device 200 receives streaming interactive content from an interactive content server 202 and supplemental content from a supplemental content server 204. The client device 200 communicates with the interactive content server 202 and the supplemental content server 204 through a communication network 206. Upon reaching a point in the interactive multimedia presentation at which supplemental content should be inserted, the client device 200 may transmit an indication of, or a request for, inserting the supplemental content to the interactive content server 202 (208). The interactive content server 202 may then request the supplemental content from the supplemental content server 204 or instruct the supplemental content server 204 to provide the supplemental content to the client device 200. From the interactive content server 202 or from the supplemental content server 204, the client device 200 receives the supplemental content (210).
[0033] In some embodiments, the interactive content server 202 may be operated by a first content provider, while the supplemental content server 204 may be operated by a second content provider. In some embodiments, the interactive content server 202 and the supplemental content server 204 may be operated by the same content provider, but may be physically separate servers and in separate geographic locations. In yet other embodiments, the interactive content server 202 and the supplemental content server 204 may be virtual server applications running on the same physical server or on two different physical servers.
[0034] However, the customized supplemental content must be generated, rendered, and encoded before it can be streamed to the user. This may require significant system resources. The interactive content server 202 may temporarily reduce system resource allocation to other game sessions to generate, render, and encode the supplemental content. However, in some implementations, the task of generating, rendering, and encoding the customized supplemental content may be given to another interactive content engine in the content provider's network. FIG. 3 is an example of a system for providing an interactive multimedia presentation in which interactive content and supplemental content are provided from the same source according to some embodiments of the present disclosure. The content provider network 300 includes an interactive content server 302 and a supplemental content server 304. The supplemental content server 304 may have similar processing capabilities and system resources as the interactive content server 302 to enable the supplemental content server 304 to generate, render, and encode the customized supplemental content. The interactive content server 302 and the supplemental content server 304 communicate with a client device 306 via a communication network 308. When the client device 306 detects that supplemental content is to be inserted into the interactive multimedia presentation, it may transmit a request for the supplemental content to the interactive content server 302 or the supplemental content server 304 (310).
[0035] The interactive content server 302 or the supplemental content server 304 may access the user profile database 312 to retrieve customization parameters associated with the supplemental content. For example, if the supplemental content is an advertisement, product purchase history, Internet search history, or other information useful in selecting advertisements for a particular user may be retrieved. If the supplemental content is a game cut scene or other cinematic content, information related to the appearance of the user's in-game avatar, such as clothing, skin color, size (e.g., height and weight), fictional race (e.g., elf, dwarf, extraterrestrial, etc.), etc. may be retrieved. The supplemental content server 304 uses the retrieved information to generate, render, and encode the supplemental content for the user. The supplemental content is then streamed (314) to the client device 306.
[0036] 4 is an example of a content delivery network for providing interactive multimedia presentation according to some embodiments of the present disclosure. The content delivery network 400 may include multiple servers. Some servers are generally utilized for content creation and do not typically handle streaming of content to client devices. Other servers (known as edge servers) that are typically tasked with streaming content to client devices are located in separate geographic locations to better serve users in different regions. A given edge server handles streaming of content to client devices that are located closer to that edge server than any other edge server.
[0037] Edge server 402 may be a game engine server and is responsible for streaming real-time interactive content to one or more client devices (404). Edge server 402 may simultaneously maintain several interactive content sessions, each for a different user. Edge server 406 may be a second game engine server and is also responsible for streaming real-time interactive content to one or more other client devices (408). Edge server 406 may alternatively or additionally be responsible for streaming supplemental content to one or more users. In some implementations, a server other than the edge server, such as server 410, may be responsible for streaming supplemental content to client devices (412). This allows edge servers 402 and 406 to devote their entire resources to real-time processing and streaming of interactive content, thus providing the best quality experience for users, while other servers are tasked with the potentially processor-intensive task of generating, rendering, and encoding supplemental content for each user.
[0038] FIG. 5 is a block diagram illustrating components and data flows between them of a system for providing an interactive multimedia presentation in which interactive content and supplemental content are provided from the same source according to some embodiments of the present disclosure. More specifically, the components illustrated in FIG. 5 relate to an implementation in which real-time interactive content and supplemental content are provided from the same content provider and a single device or application controls the interactive content server or server application and the content delivery from the supplemental content server or server application to client devices. For simplicity, the control circuitry 500 will be discussed as if it resides on a single server. However, those skilled in the art will understand that the functionality described in connection with FIG. 5 as being performed by the control circuitry 500 or any of its components may be distributed among one or more physical or virtual servers.
[0039] The control circuitry 500 may be based on any suitable processing circuitry and includes control circuitry and memory circuitry, which may be located on a single integrated circuit or may be separate components. As referred to herein, processing circuitry should be understood to mean circuitry based on one or more microprocessors, microcontrollers, digital signal processors, programmable logic devices, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), etc., and may include multi-core processors (e.g., dual-core, quad-core, hexa-core, or any suitable number of cores). In some embodiments, the processing circuitry may be distributed across multiple separate processors or processing units, for example multiple processing units of the same type (e.g., two Intel Core i7 processors) or multiple different processors (e.g., an Intel Core i5 processor and an Intel Core i7 processor).
[0040] The control circuitry 500 communicates with other devices (e.g., client devices and other servers) via a network interface 502. The network interface 502 may be any suitable communication interface for transmitting data from a server or a network of servers across a communication network to other devices. In some embodiments, the communication network over which the interactive and supplemental content is streamed to the client device is a mobile broadband network, such as a 5G network. In such embodiments, the network interface 502 may be an interface to a mobile broadband transmitter or one or more distributed nodes of a mobile broadband network.
[0041] The control circuitry 500 includes streaming circuitry 504. The streaming circuitry 504 includes any suitable processing circuitry for generating media streams for interactive media content or supplemental content. For example, the streaming circuitry 504 may be a graphics processing unit (GPU), such as an NVIDIA GeForce RTX or other GPU solution. The streaming circuitry 504 receives interactive media content from interactive content processing circuitry 508 (506). The interactive content processing circuitry 508 may be, for example, a game engine configured to process game environment and level data along with user input and generate, render, and encode the interactive content into a real-time media format. The streaming circuitry 504 then generates a real-time stream for the interactive content and transmits the real-time stream to the transceiver circuitry 512 (510). The transceiver circuitry 512 includes a network connection, such as an Ethernet connection, a WiFi connection, a USB connection, or a connection employing any other suitable data transfer or networking protocol, and data may be transmitted to and received from a remote device via the network connection. The transceiver circuitry 512 then transmits (514) the real-time stream to the network interface 502, which finally transmits (516) the stream over a communications network to the client device.
[0042] The control circuitry 500 monitors the streaming of interactive content for indications that supplemental content should be inserted into the interactive multimedia presentation. For example, the control circuitry 500 may monitor interactive media content or its metadata being received from the interactive content processing circuitry 508 for indications that a supplemental content insertion point is approaching or has been reached. Alternatively, or in addition, the control circuitry 500 may monitor data received from a client device that may comprise a request for supplemental content. The client device may independently determine that a supplemental content insertion point is approaching and request the supplemental content item. In the case of a video game cut scene, the request may include an identifier of the particular cut scene. The request is received (518) at the network interface 502 from the client device, which routes (520) the request to the control circuitry 500, which receives the request using the transceiver circuitry 512. The transceiver circuitry 512 then transmits (522) the request to the streaming circuitry 504. Based on receiving the request, streaming circuitry 504 determines that supplemental content should be inserted into the interactive multimedia presentation.
[0043] In response to determining that the supplemental content should be inserted into the interactive multimedia presentation, the streaming circuitry 504 instructs the interactive content processing circuitry 508 to pause the output of the interactive content (524). In some embodiments, the interactive content processing circuitry 508 is involved in processing interactive content for multiple interactive multimedia sessions, each associated with a different user or different client device. In such cases, the streaming circuitry 504 may provide a session identifier in the instruction to pause the output of the interactive content, thereby causing the interactive content processing circuitry 508 to pause processing of only the session in which the supplemental content should be inserted.
[0044] The streaming circuitry 504 then instructs the supplemental content processing circuitry 528 to begin processing and outputting the supplemental content to be inserted into the interactive multimedia presentation (526). The supplemental content processing circuitry 528 may be a less powerful graphics processing unit than the interactive content processing circuitry 508 and may be configured for the insertion of non-interactive supplemental content such as advertisements. However, the supplemental content processing circuitry 528 may be similar to the interactive content processing circuitry 508 to generate, render, and encode customized supplemental content. In other embodiments, the supplemental content processing circuitry 528 is simply responsible for identifying supplemental content items and providing associated manifest files or URLs from which the client device may stream the supplemental content. The supplemental content processing circuitry 528 may request from a supplemental content database the manifest files or URLs associated with the particular supplemental content items to be inserted into the interactive multimedia presentation.
[0045] In embodiments in which the supplemental content processing circuitry 528 is directly involved in encoding and outputting the supplemental content, the supplemental content processing circuitry 528 may encode the supplemental content in a format that is compatible with a streaming protocol configured for adaptive bitrate streaming. The supplemental content processing circuitry 528 may also receive, request, or otherwise access information regarding available bandwidth at the client device and encode the supplemental content in a format that best suits the available bandwidth. For example, the communications network may be a 5G mobile broadband network, but the client device may be in a location that does not have good 5G communications coverage and may only support 4G transmissions. The supplemental content processing circuitry 528 may therefore encode the supplemental content in a format such that the highest bitrate available to the client device does not exceed the available bandwidth. This may conserve system resources when encoding the supplemental content.
[0046] Whether it is a manifest file, a URL, or encoded media content, the supplemental content processing circuitry 528 transmits its output (530) to the streaming circuitry 504. The streaming circuitry 504 then generates an adaptive bitrate (ABR) stream for the supplemental content and transmits the ABR stream (532) to the transceiver circuitry 512, which then transmits the output to the network interface 502 (534), which transmits the output over the communications network to the client device (536).
[0047] During playback of the supplemental content, a user of the client device may select an option to skip a portion of the supplemental content. An indication of such a selection, or an indication of a natural termination of playback of the supplemental content, may be received from the client device via the network interface 502 (538). The network interface 502 may route the indication to the control circuitry 500 (540), which is received using the transceiver circuitry 512. The transceiver circuitry 512 transmits the indication to the streaming circuitry 504 (542). In response to receiving the indication, the streaming circuitry 504 instructs the supplemental content processing circuitry 528 to end processing and outputting the supplemental content (544). The supplemental content processing circuitry 528 transmits an acknowledgment and / or an indication to the streaming circuitry 504 that the output of the supplemental content has stopped (546a). The streaming circuitry 504 then instructs the interactive content processing circuitry 508 to resume generating, rendering, and encoding interactive content for output to the client device (548). Alternatively, or in addition, the supplemental content processing circuitry 528 transmits such instructions directly to the interactive content processing circuitry 508 (546b), and in response, the interactive content processing circuitry 508 resumes generating, rendering, and encoding the interactive content for output to the client device. The interactive content processing circuitry 508 transmits the interactive content to the streaming circuitry 504 (550). The streaming circuitry 504 then generates a real-time stream for the interactive content and transmits the real-time stream to the transceiver circuitry 512 (552). The transceiver circuitry 512 then transmits the real-time stream to the network interface 502 (554), which is then transmitted to the client device via the communications network (556).
[0048] FIG. 6 is a block diagram illustrating components and data flows between them for a system for providing an interactive multimedia presentation in which interactive and supplemental content are provided from different sources according to some embodiments of the present disclosure. For example, interactive content may be provided by an interactive content server, while supplemental content is provided by an edge content manager residing on a different server. The interactive content server 600 is responsible for initializing and maintaining interactive multimedia sessions (e.g., gaming sessions) and generating, rendering, and encoding interactive content. The interactive content server 600 includes control circuitry 602. Like the control circuitry 500, the control circuitry 602 may be based on any suitable processing circuitry and includes control circuitry and memory circuitry, which may be located on a single integrated circuit or may be separate components. In some embodiments, the processing circuitry may be distributed across multiple separate processors or processing units, for example multiple processing units of the same type (e.g., two Intel Core i7 processors) or multiple different processors (e.g., an Intel Core i5 processor and an Intel Core i7 processor).
[0049] The control circuitry 602 includes streaming circuitry 604. Like the streaming circuitry 504, the streaming circuitry 604 includes any suitable processing circuitry for generating media streams for interactive media content or supplemental content. For example, the streaming circuitry 604 may be a graphics processing unit (GPU), such as an NVIDIA GeForce RTX or other GPU solutions. The streaming circuitry 604 receives interactive media content from interactive content processing circuitry 608 (606). Like the interactive content processing circuitry 508, the interactive content processing circuitry 608 may be, for example, a game engine configured to process game environment and level data along with user input and generate, render, and encode the interactive content into a real-time media format. The streaming circuitry 604 then generates real-time streams for the interactive content and transmits the real-time streams to the transceiver circuitry 612 (610). Like the transceiver circuitry 512, the transceiver circuitry 612 includes a network connection, such as an Ethernet connection, a WiFi connection, a USB connection, or a connection employing any other suitable data transfer or networking protocol, via which data may be transmitted to and received from a remote device. The transceiver circuitry 612 then transmits (614) the real-time stream to a network interface 616, which transmits (618) the stream via a communications network 620 and delivers (622) to the client device. The network interface 616, like the network interface 502, may be any suitable communications interface for transmitting data from a server or network of servers across a communications network to other devices. In some embodiments, the communications network over which the interactive content and supplemental content are streamed to the client device is a mobile broadband network, such as a 5G network.In such an embodiment, the network interface 616 may be an interface with a mobile broadband transmitter or one or more distributed nodes of a mobile broadband network.
[0050] The control circuitry 602 monitors the streaming of interactive content for indications that supplemental content should be inserted into the interactive multimedia presentation. For example, the control circuitry 602 may monitor interactive media content or metadata thereof being received from the interactive content processing circuitry 608 for indications that a supplemental content insertion point is approaching or has been reached. Alternatively, or in addition, the control circuitry 602 may monitor data received over the communications network 620 from a client device that may comprise a request for supplemental content. The client device may independently determine that a supplemental content insertion point is approaching and request the supplemental content item. In the case of a video game cut scene, the request may include an identifier of the particular cut scene. The request is transmitted (624) over the communications network 620 from the client device and received (626) at the network interface 616 from the client device, which routes (628) the request to the interactive content server 600. The control circuitry 602 then receives the request using the transceiver circuitry 612. The transceiver circuitry 612 then transmits (630) the request to the streaming circuitry 604. Based on receiving the request, the streaming circuitry 604 determines that the supplemental content should be inserted into the interactive multimedia presentation.
[0051] In response to determining that the supplemental content should be inserted into the interactive multimedia presentation, the streaming circuitry 604 instructs the interactive content processing circuitry 608 to pause output of the interactive content (632). In some embodiments, the interactive content processing circuitry 608 is involved in processing interactive content for multiple interactive multimedia sessions, each associated with a different user or different client device. In such cases, the streaming circuitry 604 may provide a session identifier in the instruction to pause output of the interactive content, thereby causing the interactive content processing circuitry 608 to pause processing of only the session in which the supplemental content should be inserted.
[0052] The network interface 616 also routes the request to an edge content manager 636 (634). The edge content manager 636 is a separate server separate from the interactive content server 600 that is responsible for providing supplemental content to client devices. The edge content manager 636 includes control circuitry 638. Like the control circuitry 500 and the control circuitry 602, the control circuitry 638 may be based on any suitable processing circuitry and comprises control circuitry and memory circuitry, which may be located on a single integrated circuit or may be separate components. In some embodiments, the processing circuitry may be distributed across multiple separate processors or processing units, for example multiple processing units of the same type (e.g., two Intel Core i7 processors) or multiple different processors (e.g., an Intel Core i5 processor and an Intel Core i7 processor).
[0053] The control circuitry 638 receives the request using transceiver circuitry 640. Like the transceiver circuitry 512 and the transceiver circuitry 612, the transceiver circuitry 640 includes a network connection, such as an Ethernet connection, a WiFi connection, a USB connection, or a connection employing any other suitable data transfer or networking protocol, via which data may be transmitted to and received from a remote device. The transceiver circuitry 640 transmits the request to streaming circuitry 644 (642). Like the streaming circuitry 504 and the streaming circuitry 604, the streaming circuitry 644 includes any suitable processing circuitry for generating media streams for interactive media content or supplemental content. For example, the streaming circuitry 644 may be a graphics processing unit (GPU), such as an NVIDIA GeForce RTX or other GPU solution. The streaming circuitry 644 transmits the request to the supplemental content processing circuitry 648 (646). The supplemental content processing circuitry 648, like the supplemental content processing circuitry 528, may be a less powerful graphics processing unit than the interactive content processing circuitry 608 and may be configured for the insertion of non-interactive supplemental content, such as advertisements. However, the supplemental content processing circuitry 648 may be similar to the interactive content processing circuitry 608 for generating, rendering, and encoding customized supplemental content. In other embodiments, the supplemental content processing circuitry 648 is merely responsible for identifying supplemental content items and providing associated manifest files or URLs from which a client device may stream the supplemental content. The supplemental content processing circuitry 648 may request from a supplemental content database a manifest file or URL associated with a particular supplemental content item to be inserted into the interactive multimedia presentation.
[0054] In embodiments in which the supplemental content processing circuitry 648 is directly involved in encoding and outputting the supplemental content, the supplemental content processing circuitry 648 may encode the supplemental content in a format that is compatible with a streaming protocol configured for adaptive bitrate streaming. The supplemental content processing circuitry 648 may also receive, request, or otherwise access information regarding available bandwidth at the client device and encode the supplemental content in a format that best suits the available bandwidth. For example, the communications network may be a 5G mobile broadband network, but the client device may be in a location that does not have good 5G communications coverage and may only support 4G transmissions. The supplemental content processing circuitry 648 may therefore encode the supplemental content in a format such that the highest bitrate available to the client device does not exceed the available bandwidth. This may conserve system resources when encoding the supplemental content.
[0055] Whether it is a manifest file, a URL, or encoded media content, the supplemental content processing circuitry 648 transmits its output to the streaming circuitry 644 (650). The streaming circuitry 644 then generates an ABR stream for the supplemental content and transmits the ABR stream (652) to the transceiver circuitry 640, which then transmits the output to the network interface 616 (654), which transmits the output via the communications network 620 (656) and routes it to the client device (658).
[0056] During playback of the supplemental content, a user of the client device may select an option to skip a portion of the supplemental content. An indication of such a selection, or an indication of a natural termination of playback of the supplemental content, may be transmitted by the client device over the communications network 620 (660). The indication of the selection is received at the network interface 616 (662). The network interface 616 may route the indication to the control circuitry 638 of the edge content manager 636 (664), which is received using the transceiver circuitry 640. The transceiver circuitry 640 transmits the indication to the streaming circuitry 644 (666). In response to receiving the indication, the streaming circuitry 644 instructs the supplemental content processing circuitry 648 to end processing and outputting the supplemental content (668). The network interface 616 also routes the indication to the control circuitry 602 of the interactive content server 600 (670). The control circuitry 602 receives the indication using the transceiver circuitry 612. The transceiver circuitry 612 transmits the instruction to the streaming circuitry 604 (672). The streaming circuitry 604 then instructs the interactive content processing circuitry 608 to resume generating, rendering, and encoding the interactive content for output to the client device (674). The interactive content processing circuitry 608 transmits the interactive content to the streaming circuitry 604 (676). The streaming circuitry 604 then generates a real-time stream for the interactive content and transmits the real-time stream to the transceiver circuitry 612 (678). The transceiver circuitry 612 then transmits the real-time stream to the network interface 618 (680), which is then transmitted (682) via the communications network 620 and routed (684) to the client device.
[0057] FIG. 7 is a block diagram illustrating components of an interactive content server and data flows between them when supplemental content is to be inserted into an interactive multimedia presentation according to some embodiments of the present disclosure. Specifically, FIG. 7 depicts an interactive content server 700 that provides a manifest file for the supplemental content to a client device. The interactive content server 700 includes control circuitry 702, which may be similar to control circuitry 500 or control circuitry 638 and may be based on any suitable processing circuitry as described above in connection therewith. The interactive content server 700 receives an indication that supplemental content is to be inserted into the interactive multimedia presentation using transceiver circuitry 706 (704). The transceiver circuitry 706 may be similar to transceiver circuitry 512 or transceiver circuitry 612 described above in connection with FIGS. 5 and 6, respectively. The transceiver circuitry 706 transmits the indication to streaming circuitry 710, which may be similar to streaming circuitry 504 or streaming circuitry 604 described above in connection with FIGS. 5 and 6, respectively. The streaming circuitry 710 instructs (712) interactive content processing circuitry 714, which is similar to interactive content processing circuitry 508 or interactive content processing circuitry 608 described above in connection with Figures 5 and 6, respectively, to pause the generation, rendering, and encoding of the interactive content and allow for the insertion of the supplemental content.
[0058] The control circuitry 702 may identify a particular supplemental content item based on information received from a client device, user profile data associated with a user of the client device, or from the interactive content. The transceiver circuitry 706 transmits a request for the identified supplemental content item to a supplemental content manifest database 718 (716). Although shown in FIG. 7 as a separate component, the supplemental content manifest database 718 may in some embodiments reside within the memory of the interactive content server 700. In other embodiments, the supplemental content manifest database 718 may reside on a separate server. In response to the request, the control circuitry 702 receives (720) from the supplemental content manifest database 718 a manifest file for the supplemental content, or in some embodiments, a URL from which the client device may directly retrieve the manifest file. The transceiver circuitry 706 then transmits (722) the manifest file or URL to the client device.
[0059] FIG. 8 is a block diagram illustrating components of an edge content management server and data flows therebetween for providing supplemental content according to some embodiments of the present disclosure. Specifically, FIG. 8 depicts an edge content manager 800 that provides a manifest file for the supplemental content to a client device. The edge content manager 800 includes control circuitry 802 that may be similar to control circuitry 500 or control circuitry 602 and may be based on any suitable processing circuitry as described above in connection therewith. The edge content manager 800 receives an indication that the supplemental content is to be inserted into the interactive multimedia presentation using transceiver circuitry 806 (804). In some embodiments, the edge content manager 800 receives instructions from an interactive content server to prepare the supplemental content for insertion into the interactive multimedia presentation. The instructions may include a session identifier associated with the interactive multimedia presentation, a user identifier of a user associated with the client device, or a supplemental content identifier. The transceiver circuitry 806 may be similar to the transceiver circuitry 512 or the transceiver circuitry 640 described above in connection with FIGS. 5 and 6, respectively. The transceiver circuitry 806 transmits the instructions (808) to streaming circuitry 810, which may be similar to the streaming circuitry 504 or streaming circuitry 644 described above in connection with Figures 5 and 6, respectively. The streaming circuitry 810 instructs supplemental content processing circuitry 814, which may be similar to the supplemental content processing circuitry 528 or supplemental content processing circuitry 648 described above in connection with Figures 5 and 6, respectively, to prepare the supplemental content for insertion into the interactive multimedia presentation (812).
[0060] The supplemental content processing circuitry 814 may identify a particular supplemental content item based on information received from a client device, user profile data associated with a user of the client device, or from interactive content. The supplemental content processing circuitry 814 transmits an identifier for the particular supplemental content item to the transceiver circuitry 806 (816), which then transmits a request for the identified supplemental content item to the supplemental content manifest database 820 (818). As in FIG. 7 above, the supplemental content manifest database 820 may, in some embodiments, reside within the memory of the edge content manager 800. In other embodiments, the supplemental content manifest database 820 may reside on a separate server. In response to the request, the control circuitry 802 receives from the supplemental content manifest database 820 a manifest file for the supplemental content, or, in some embodiments, a URL from which the client device may directly retrieve the manifest file (822). The transceiver circuitry 806 then transmits the manifest file or URL to the client device (824).
[0061] 9 is a flowchart depicting a process 900 for providing an interactive multimedia presentation according to some embodiments of the disclosure. Process 900 may be implemented on control circuitry 500, 602, 638, 702, 802, or any combination thereof. In addition, one or more actions of process 900 may be incorporated within or combined with one or more actions of any other process or embodiment described herein.
[0062] At 902, the control circuitry (e.g., the control circuitry 500) streams interactive content from an interactive content engine for interactive multimedia presentation using a first streaming protocol to a client device. The interactive content can be virtual reality content, augmented reality content, video game content, or any other real-time content. The interactive content engine can be a game engine that can be used to provide video game content or can be leveraged to provide other real-time content, such as virtual reality or augmented reality content. In some implementations, when the methods described herein are implemented over a mobile broadband network, the interactive content engine can be a 5G Extended Reality (5G-XR) application as defined in 3GPP® technical report TR 26.928, entitled "Extended Reality (XR) in 5G". The first streaming protocol is configured for high bitrate, low latency streaming of real-time data. Such streams do not tolerate dropped or corrupted packets, but they allow for significantly reduced lag times, which are important in interactive content, such as video games and virtual reality simulations.
[0063] At 904, the control circuitry determines whether supplemental content should be inserted into the interactive multimedia presentation. For example, when the client device reaches a point in the interactive multimedia presentation where supplemental content should be inserted, it may send a request for the supplemental content. If the interactive multimedia presentation is a video game, the client device may determine that a cut scene should be inserted based on a user's progress in the video game. In some embodiments, the real-time content stream comprising the interactive content, e.g., video game content, may include metadata indicating that a supplemental content insertion point has been reached or is approaching. If no indication of supplemental content insertion has been detected ("No" at 904), the streaming of the interactive content continues.
[0064] If the supplemental content is to be inserted into the interactive multimedia presentation (“yes” at 904), then at 906 the control circuitry streams the supplemental content to the client device using a second streaming protocol configured for adaptive bitrate streaming. For example, the control circuitry may determine the amount of available bandwidth at the client device and retrieve a pre-cached version of the supplemental content having the highest quality or bitrate that can be supported by the available bandwidth. The control circuitry then generates an adaptive bitrate stream from the pre-cached version of the content and transmits the stream to the client device. In some embodiments, the control circuitry generates or retrieves a manifest file for the supplemental content from a database and transmits the manifest file to the client device. The client device then requests segments of the supplemental content according to the manifest file, and the control circuitry transmits each requested segment to the client device.
[0065] At 908, the control circuitry determines whether an indication has been received that streaming of the supplemental content to the client device has finished. For example, during playback of the supplemental content, the client device may receive user input to skip a portion of the supplemental content. An indication of such input is transmitted by the client device to the content server. Alternatively, or in addition, the control circuitry may determine that a threshold amount of time has elapsed since the last segment request was received from the client device or that the last segment of the supplemental content has been transmitted to the client device. If no such indication has been received ("No" at 908), the control circuitry continues streaming the supplemental content in the ABR stream.
[0066] If an indication that streaming of the supplemental content to the client device has ended is received ("Yes" at 908), then at 910 the control circuitry resumes streaming of the interactive content to the client device using the first streaming protocol. In some cases, the supplemental content may be inserted within a scene or portion of the interactive content. In such cases, the control circuitry simply continues streaming the content from the point where streaming of the interactive content was interrupted due to the insertion of the supplemental content. In other cases, the supplemental content may be inserted between scenes or portions of the interactive content. In such cases, the control circuitry may first identify the next portion of the interactive content to provide to the client device. For example, in a video game, a cut scene may be inserted between two levels of the video game. While the cut scene is playing, the circuitry may use the time to load data for the next level and begin rendering portions of the next level for output. Once the cut scene is over, or once a user selection to skip the cut scene is received, the control circuitry begins streaming the new level to the client device.
[0067] The actions or descriptions of Figure 9 may be used with any other embodiment of the present disclosure. In addition, the actions and descriptions described in connection with Figure 9 may be performed in alternative orders or in parallel as suitable to further the objectives of the present disclosure.
[0068] 10 is a flowchart depicting a process 1000 for determining whether supplemental content should be inserted into an interactive multimedia presentation according to some embodiments of the disclosure. Process 1000 may be implemented on control circuitry 500, 602, 638, 702, 802, or any combination thereof. In addition, one or more actions of process 1000 may be incorporated within or combined with one or more actions of any other process or embodiment described herein.
[0069] At 1002, control circuitry monitors streaming of interactive content. The control circuitry may scan the interactive content as it is transmitted to the client device for an indication that supplemental content should be inserted. For example, one or more frames or packets of the interactive content may include metadata indicating a supplemental content insertion point. Alternatively, the interactive content processing circuitry may automatically pause output of the interactive content upon reaching the supplemental content insertion point.
[0070] At 1004, the control circuitry determines whether an indication of supplemental content to be inserted into the interactive multimedia presentation has been detected. If not ("No" at 1004), the control circuitry continues to monitor the streaming of interactive content. At 1006, the control circuitry determines whether the streaming of interactive content has stopped. If not ("No" at 1006), the control circuitry continues to monitor the streaming of interactive content.
[0071] If an indication of supplemental content to be inserted into the interactive multimedia presentation is detected (“Yes” at 1004) or if streaming of the interactive content has stopped (“Yes” at 1006), then at 1008 the control circuitry determines that supplemental content should be inserted into the interactive multimedia presentation.
[0072] The actions or descriptions of Figure 10 may be used with any other embodiment of the present disclosure. In addition, the actions and descriptions described in connection with Figure 10 may be performed in alternative orders or in parallel as suitable to further the objectives of the present disclosure.
[0073] 11 is a flowchart depicting a process 1100 for skipping portions of supplemental content according to some embodiments of the disclosure. Process 1100 may be implemented on control circuitry 500, 602, 638, 702, 802, or any combination thereof. In addition, one or more actions of process 1100 may be incorporated within or combined with one or more actions of any other process or embodiment described herein.
[0074] At 1102, the control circuitry pauses streaming of interactive content to the client device and at 1104 begins streaming supplemental content to the client device using a second streaming protocol. At 1106, the control circuitry monitors user input received from the client device. For example, the client device may transmit a signal each time a user input is received. Alternatively, the client device may transmit a periodic signal (e.g., every 10 milliseconds) representing the state of one or more control inputs, such as game controller buttons, keyboard keys, mouse movements, joystick movements, accelerometer data, inertial movement data, biometric data, etc. At 1108, the control circuitry determines whether a user input to skip a portion of the supplemental content has been received. For example, a signal may be received representing a user selection of a graphical control element that corresponds to a skip command. As another example, a particular control input or combination of inputs that corresponds to a skip command may be received. If no such input has been received ("No" at 1108), then at 1110, the control circuitry determines whether the supplemental content has ended. For example, the control circuitry may monitor the streaming of the supplemental content and determine when the supplemental content has stopped being output for streaming. If the supplemental content has not ended ("No" at 1110), processing returns to 1106 and the control circuitry continues to monitor user input.
[0075] If user input to skip a portion of the supplemental content is received (“Yes” at 1108) or if the supplemental content has ended (“Yes” at 1110), the control circuitry stops streaming the supplemental content to the client device at 1112 and resumes streaming the interactive content to the client device at 1114.
[0076] The actions or descriptions of Figure 11 may be used with any other embodiment of the present disclosure. In addition, the actions and descriptions described in connection with Figure 11 may be performed in alternative orders or in parallel as suitable to further the objectives of the present disclosure.
[0077] 12 is a flowchart depicting a process 1200 for selecting supplemental content where an interactive multimedia presentation comprises a video game according to some embodiments of the disclosure. Process 1200 may be implemented on control circuitry 500, 602, 638, 702, 802, or any combination thereof. In addition, one or more actions of process 1200 may be incorporated within or combined with one or more actions of any other process or embodiment described herein.
[0078] At 1202, the control circuitry has established a game session. For example, the control circuitry may receive a new game session request from a client device. The control circuitry authenticates the requesting device and initializes a new game session for the authenticated device. Once initialized, the control circuitry may share an identifier of the new game session with the authenticated client device for use in requesting content or other data for the duration of the game session.
[0079] At 1204, the control circuitry identifies a user identifier based on the game session. For example, the client device may include the user identifier in the game session request. In some embodiments, the game session is initialized without any user data and the user of the client device must log in to subsequently access the video game content. Once authenticated, the user's identifier (e.g., username, user ID, or other data specific to the user) may be retrieved from the game session by the control circuitry.
[0080] At 1206, the control circuitry determines whether a user profile exists associated with the user identifier. The control circuitry may access a user profile database and search for data matching the user identifier. For example, the control circuitry may generate an SQL "SELECT" command based on the user identifier. If no results are returned from the database, the control circuitry determines that no user profile exists for the identified user ("NO" at 1206) and selects supplemental content items for streaming to the client device at 1208. For example, if the supplemental content is an advertisement, the control circuitry may select advertisements randomly or according to an advertisement campaign. If the supplemental content is a cut scene, the control circuitry identifies and selects a particular cut scene for a point in the video game where the cut scene should be inserted. This may be done based on a cut scene identifier requested by the client device or identified in the metadata of the video game content.
[0081] If the control circuitry determines that a profile associated with the user identifier exists ("Yes" at 1206), then at 1210 the control circuitry retrieves the user's profile. At 1212, the control circuitry determines the type of supplemental content to be inserted. For example, a request for supplemental content received from a client device may indicate whether a cut scene or an advertisement should be inserted. Alternatively, metadata for the video game content may include a flag or other indicator that identifies the type of supplemental content to be inserted.
[0082] If the supplemental content to be inserted is an advertisement, then at 1214 the control circuitry selects a supplemental content item for streaming to the client device based on the user's profile. For example, the supplemental content can be an advertisement. The control circuitry may retrieve data from the user profile, such as online shopping history, social media data, browsing history, or content consumption history. Based on the retrieved data, the control circuitry selects advertisements for streaming to the client device that are likely to be of interest to a user of the client device.
[0083] If the supplemental content to be inserted is a cutscene, at 1216 the control circuitry identifies visual parameters from the user's profile. For example, the cutscene may include a visualization of the user's in-game avatar. In some video games, the user may select the initial appearance of their avatar (e.g., height, weight, skin color, eye color, hair color, fictional race, etc.). The user may also obtain various equipment, such as clothing, armor, weapons, etc., through completing portions of the video game or through in-game purchases or other microtransactions. These parameters may be stored in the user's profile. At 1218, the control circuitry renders the cutscene using the identified visual parameters. The control circuitry renders a third-person visualization of the user's avatar, using the appearance of the user's avatar as stored in the user's profile. This may be a 3D or 2D rendering, and may be the entirety or some portion of the avatar's body. The rendering may then be inserted into the cutscene to create a customized cutscene.
[0084] The actions or descriptions of Figure 12 may be used with any other embodiment of the present disclosure. In addition, the actions and descriptions described in connection with Figure 12 may be performed in alternative orders or in parallel as suitable to further the objectives of the present disclosure.
[0085] 13 is a flowchart depicting a process 1300 for delivering a video game cut scene prior to the start of a video game according to some embodiments of the present disclosure. Process 1300 may be implemented on control circuitry 500, 602, 638, 702, 802, or any combination thereof. In addition, one or more actions of process 1300 may be incorporated within or combined with one or more actions of any other process or embodiment described herein.
[0086] At 1302, the edge gaming manager control circuitry, e.g., the control circuitry 638 of the edge content manager 636, receives a client session initiation request with a session ID. The session ID may be received from the client device or may be assigned by the game engine (e.g., the interactive content server 600). In response, at 1304, the edge gaming manager starts the game engine. For example, the edge gaming manager transmits initialization instructions to the game engine. At 1306, immediately after initiation, the game engine sends a session initiation response with a manifest URL to the edge gaming manager. At 1308, the edge gaming manager sends a session initiation response with the session ID to the client device. This allows the client device to join and maintain a connection to the game session.
[0087] Upon start-up, the game engine also begins startup and initial loading of game data at 1310. At 1312, the game engine determines if the loading of the game data is complete. If not (No at 1312), the game engine continues to wait until the loading is complete. Once the loading is complete (Yes at 1312), the game engine sends a "level loaded" notification to the edge gaming manager at 1314. The game engine may transmit a ready message once the required game data has finished loading. This may be game data for the entire level, the first portion of a level, a menu screen, or any other portion of the video game.
[0088] At 1316, the edge gaming manager determines whether a cut scene response has been received and whether a "level loaded" notification has been received indicating that the game engine is initialized and ready for gameplay to begin. The client device may transmit an acknowledgment of receipt of the cut scene manifest URL or an indication that ABR playback of the cut scene has begun successfully. If either the cut scene response or the "level loaded" notification has not been received ("No" at 1316), the edge gaming manager continues to wait until both are received.
[0089] If both messages are received ("Yes" at 1316), then at 1318 the edge gaming manager sends a "Level Loaded" notification to the client device, which is then directed to the client device's session handler. At 1320, the edge gaming manager determines whether an "ABR Cut Scene Playback Complete" notification has been received, or whether an "ABR Cut Scene Cancel Request" notification has been received. These notifications may be transmitted by the client device in response to the cut scene playing naturally completing, or in response to a user selection of a skip command, respectively. If no notification has been received ("No" at 1320), then the edge gaming manager waits while the cut scene continues to play. If either notification has been received ("Yes" at 1320), then at 1322 the edge gaming manager instructs the game engine to start (in the case of a new game) or resume (in the case of a cut scene between game levels) the game.
[0090] The actions or descriptions of Figure 13 may be used with any other embodiment of the present disclosure. In addition, the actions and descriptions described in connection with Figure 13 may be performed in alternative orders or in parallel as suitable to further the objectives of the present disclosure.
[0091] 14 is a flowchart depicting a process 1400 for delivering video game cut scenes between levels of a video game according to some embodiments of the present disclosure. Process 1400 may be implemented on control circuitry 500, 602, 638, 702, 802, or any combination thereof. In addition, one or more actions of process 1400 may be incorporated within or combined with one or more actions of any other process or embodiment described herein.
[0092] At 1402, the edge gaming manager detects that a game level has ended. For example, the game engine may pause the output of the game content or may include metadata in the game content indicating that the end of the level has been reached. At 1404, the game engine sends an ABR cut scene play request with the cut scene ID and manifest URL for the cut scene to the edge gaming manager. At 1406, the edge gaming manager sends an ABR cut scene play request with the cut scene ID and manifest URL to an ABR session handler at the client device.
[0093] Upon receiving the "ABR cut scene play request," the ABR client session handler transmits a response, such as an acknowledgement (ACK) response, to the edge gaming manager. At 1408, the edge gaming manager determines whether such a response has been received from the ABR client session handler. If not ("No" at 1408), the edge gaming manager continues to wait until a response is received. Once a response is received ("Yes" at 1408), at 1410, the edge gaming manager sends a "Pause Delivery" request to the Delivery Manager. The Delivery Manager is a component of the game engine, such as streaming circuitry 604, responsible for streaming game content to client devices.
[0094] In response to receiving the "pause delivery" request, at 1412 the delivery manager sends a stop or pause request to the low latency encoder. The low latency encoder may be part of the streaming circuitry 604 or may be a separate component. At 1414, the low latency encoder pauses the encoding of the video, audio, and haptic data for the video game. In response to the pause, at 1416 the bandwidth manager releases the bandwidth reserved for the game content in the current game session. The bandwidth manager may be a component of the game engine or edge gaming manager responsible for allocating and / or reserving portions of the available bandwidth to each active game session. To provide the best quality content, bandwidth is allocated only to game sessions that are actively streaming high bitrate low latency streams. This allows the maximum amount of bandwidth to be shared among all active game sessions when needed. Thus, after releasing the bandwidth reserved for / allocated to the game content for the current game session, the bandwidth manager recalculates the bandwidth for all currently playing, non-cutscene state game sessions at 1418. The amount of bandwidth reserved for / allocated to each currently playing, non-cutscene state game session is then adjusted accordingly.
[0095] After sending the "pause delivery" request, at 1420, the edge gaming manager sends the "play ABR cut scene" response received from the client device to the game engine. In response, at 1422, the game engine begins loading data for the next level of game play. At 1424, the game engine determines whether the game level is loaded. If not ("no" at 1424), the game engine waits until the game level is loaded. If it is loaded ("yes" at 1424), processing proceeds as at 1314 of FIG. 13 above, with the game engine sending a "level loaded" notification to the edge gaming manager.
[0096] The actions or descriptions of Figure 14 may be used with any other embodiment of the present disclosure. In addition, the actions and descriptions described in connection with Figure 14 may be performed in alternative orders or in parallel as suitable to further the objectives of the present disclosure.
[0097] 15 is a flow chart depicting a process for managing bandwidth usage during delivery of video game cut scenes according to some embodiments of the disclosure. Process 1500 may be implemented on control circuitry 500, 602, 638, 702, 802, or any combination thereof. In addition, one or more actions of process 1500 may be incorporated within or combined with one or more actions of any other process or embodiment described herein.
[0098] At 1502, the edge gaming manager receives an "ABR cut scene play complete" notification or an "ABR cut scene cancel request" notification. As discussed above, the client device or the ABR client session handler may transmit a notification to the edge gaming manager when a cut scene completes playing or when a user selects a command to skip a cut scene. At 1504, the edge gaming manager sends a "resume" request with a session ID for the current game session to the delivery manager. In response, at 1506, the delivery manager sends a bandwidth reservation request to the bandwidth manager for the game associated with the session ID. At 1508, the bandwidth manager calculates a new bitrate for each non-cut scene state game session, including the session corresponding to the session ID. At 1510, the bandwidth manager sends a bandwidth reservation response to the delivery manager, which then sends a "start" or "resume encoding" request to the low latency encoder at 1512.
[0099] In response to the "start" or "resume encoding" request, the low latency encoder begins waiting for an input stream at 1514. If an input stream has not been received ("no" at 1514), the low latency encoder continues to wait for the game engine to provide an input stream. If an input stream has been received ("yes" at 1514), the low latency encoder transmits the encoded video, audio, and haptics to the client device at 1516.
[0100] When the delivery manager sends a "start" or "resume encoding" request to the low latency encoder at 1518, the edge gaming manager sends an "ABR cut scene playback complete" notification to the game engine. If it is a game start or end ("yes" at 1520), the game engine renders menu options for the game at 1522. If it is not a game start or end ("no" at 1520), the game engine resumes game play of the loaded level at 1524.
[0101] The actions or descriptions of Figure 15 may be used with any other embodiment of the present disclosure. In addition, the actions and descriptions described in connection with Figure 15 may be performed in alternative orders or in parallel as suitable to further the objectives of the present disclosure.
[0102] The processes described above are intended to be illustrative, not limiting. Those skilled in the art will understand that the processes discussed herein may be omitted, modified, combined, and / or rearranged, and any additional steps may be implemented without departing from the scope of the present invention. More generally, the above disclosure is meant to be illustrative, not limiting. Only the following claims are meant to set boundaries on what the present invention includes. Furthermore, it should be noted that the features and limitations described in any one embodiment may be applied to any other embodiment herein, and that the flow charts or examples related to one embodiment may be combined with any other embodiment in a suitable manner, may be performed in a different order, or may be performed in parallel. In addition, the systems and methods described herein may be performed in real time. It should also be noted that the systems and / or methods described above may be applied to or used in accordance with other systems and / or methods. The following sets of items are contemplated as part of the present invention: The following set of items (all numbers in this set refer to this set of items): 1. A method for reducing bandwidth requirements for streaming content for interactive multimedia presentation, the method comprising: streaming interactive content from the interactive content engine for interactive multimedia presentation to a client device using a first streaming protocol configured for low latency real-time streaming; determining that non-interactive content is to be inserted into the interactive multimedia presentation; In response to determining that non-interactive content is to be inserted into the interactive multimedia presentation, streaming the non-interactive content to a client device using a second streaming protocol configured for adaptive bitrate streaming; upon receiving an indication that streaming of the non-interactive content to the client device has ended, resume streaming the interactive content from the interactive content engine for the interactive multimedia presentation using the first streaming protocol; A method comprising: 2. The method according to claim 1, further comprising: 2. The method of claim 1, wherein determining that non-interactive content should be inserted into the interactive multimedia presentation includes detecting an indication of the non-interactive content being inserted into the interactive multimedia presentation. 3. The method according to claim 1, further comprising: 2. The method of claim 1, wherein determining that non-interactive content should be inserted into the interactive multimedia presentation includes detecting, based on monitoring, that streaming of the interactive content has stopped. 4. The method of claim 1, wherein the interactive content comprises a video game and the non-interactive content comprises cut scenes. 5. The method of claim 1, wherein the non-interactive content comprises advertisements. 6. During streaming of the non-interactive content, receiving a user input to skip a portion of the non-interactive content; In response to receiving a user input to skip a portion of the non-interactive content, Stopping the streaming of non-interactive content to the client device; Resuming streaming of interactive content to a client device The method of claim 1, further comprising: 7. The method of claim 1, further comprising encoding the interactive content in a format that complies with the first streaming protocol. 8. The interactive content is a video game, and the method comprises: Establishing a game session; Identifying a user identifier based on the game session; Retrieving a profile of the user based on the user identifier; Selecting non-interactive content items for streaming to a client device based on a user profile; The method of claim 1, further comprising: 9. Determining an amount of bandwidth available to a client device; and encoding the non-interactive content in a format compliant with a second streaming protocol based on the amount of bandwidth available to the client device; The method of claim 1, further comprising: 10. The interactive content is streamed from the first server application to the client device; 2. The method of claim 1, wherein the non-interactive content is streamed from a second server application to the client device. 11. A system for reducing bandwidth requirements for streaming content for interactive multimedia presentation, the system comprising: a network interface configured to enable communication between one or more servers and one or more client devices; at least one server having a control circuit; The control circuitry comprises: streaming interactive content for the interactive multimedia presentation to a client device via a network interface using a first streaming protocol configured for low latency real-time streaming; determining that non-interactive content is to be inserted into the interactive multimedia presentation; In response to determining that non-interactive content is to be inserted into the interactive multimedia presentation, streaming the non-interactive content to the client device via the network interface using a second streaming protocol configured for adaptive bitrate streaming; upon receiving an indication that streaming of the non-interactive content to the client device has ended, resuming streaming of the interactive content for the interactive multimedia presentation to the client device via the network interface using the first streaming protocol. A system configured to: 12. The system of claim 11, wherein the control circuitry configured to determine that non-interactive content should be inserted into the interactive multimedia presentation is further configured to detect an indication of the non-interactive content being inserted into the multimedia presentation. 13. The control circuitry is further configured to monitor streaming of interactive content; Item 12. The system of item 11, wherein the control circuitry configured to determine that non-interactive content should be inserted into the interactive multimedia presentation is further configured to detect, based on the monitoring, that streaming of the interactive content has stopped. 14. The control circuit network is receiving, via the network interface, a user input for skipping a portion of the non-interactive content during streaming of the non-interactive content; In response to receiving a user input to skip a portion of the non-interactive content, pausing streaming of non-interactive content to a client device; Resuming streaming of interactive content to a client device; Item 12. The system of item 11, further configured to: 15. The interactive content is a video game, and the control circuitry is Establishing a game session; Identifying a user identifier based on the game session; Retrieving a profile of the user based on the user identifier; Selecting non-interactive content items for streaming to a client device based on a user profile; Item 12. The system of item 11, further configured to: 16. The system of item 11, wherein the control circuitry is further configured to encode the interactive content in a format that complies with the first streaming protocol. 17. The control circuit network is determining an amount of bandwidth available to a client device; encoding the non-interactive content in a format compliant with a second streaming protocol based on the amount of bandwidth available to the client device; Item 12. The system of item 11, further configured to: 18. A system for reducing bandwidth requirements for streaming content for interactive multimedia presentation, the system comprising: A network interface; a first server having control circuitry; The control circuitry comprises: streaming interactive content for the interactive multimedia presentation to a client device via a network interface using a first streaming protocol configured for low latency real-time streaming; Detecting, via a network interface, an indication that non-interactive content is to be inserted into the interactive multimedia presentation; in response to detecting an indication that non-interactive content is to be inserted into the interactive multimedia presentation; notifying the client device to request non-interactive content from a second server; pausing streaming of interactive content to the client device while non-interactive content is streamed from a second server to the client device using a second streaming protocol configured for adaptive bitrate streaming; upon receiving an indication that streaming of the non-interactive content to the client device has ended, resume streaming of the interactive video game content to the client device via the network interface using the first streaming protocol. A system configured to: 19. The control circuit network is receiving, via the network interface, an indication that during streaming of the non-interactive content, a portion of the non-interactive content has been skipped; resuming streaming of the interactive content to the client device in response to receiving an indication that a portion of the non-interactive content was skipped; 20. The system of claim 18, further configured to: 20. The interactive content is a video game, and the control circuitry is establishing a game session for a video game; Identifying a user identifier based on the game session; Retrieving a profile of the user based on the user identifier; Selecting non-interactive content items for streaming to a client device based on a user profile; 20. The system of claim 18, further configured to: 21. The system of item 18, wherein the control circuitry is further configured to encode the interactive content in a format that complies with the first streaming protocol. 22. The control circuit network is determining an amount of bandwidth available to a client device; encoding the interactive content in a format compliant with a first streaming protocol based on an amount of bandwidth available to the client device; 20. The system of claim 18, further configured to: 23. The system of item 18, wherein the control circuitry is further configured to transmit, via the network interface, an instruction to the client device to pause output of interactive content received from the server and to begin output of non-interactive content received from the second server. 24. The system of item 18, wherein the control circuitry configured to notify the client device to request non-interactive content from the second server is further configured to transmit to the client device a manifest file associated with the non-interactive content. 25. The system of item 18, wherein the control circuitry configured to notify the client device to request non-interactive content from the second server is further configured to transmit a command to the second server to provide a manifest file associated with the non-interactive content to the client device. 26. A system for reducing bandwidth requirements for streaming content for interactive multimedia presentation, the system comprising: A network interface; a second server having control circuitry; The control circuitry comprises: receiving, via the network interface, a request to stream non-interactive content to the client device while interactive content is being streamed from the first server to the client device for interactive multimedia presentation using a first streaming protocol; In response to receiving the request, Instructing transmission of a manifest file associated with the non-interactive content to a client device; receiving, via a network interface, one or more requests from a client device for at least a portion of the non-interactive content based on a manifest file; streaming at least a portion of the non-interactive content using a second streaming protocol configured for adaptive bitrate streaming to a client device via the network interface in response to the one or more requests; The system is configured as follows: 27. The control circuit network is receiving, via the network interface, a user input for skipping a portion of the non-interactive content during streaming of the non-interactive content; pausing streaming of the non-interactive content to the client device in response to receiving a user input to skip a portion of the non-interactive content; 27. The system of claim 26, further configured to: 28. The control circuit network is Retrieving a profile associated with a user; selecting a non-interactive content item for streaming to a client device based on a profile associated with a user; 27. The system of claim 26, further configured to: 29. The system of item 26, wherein the control circuitry is further configured to encode the supplemental content in a format that complies with a second streaming protocol. 30. The control circuit network is determining an amount of bandwidth available to a client device; encoding the non-interactive content in a format compliant with a second streaming protocol based on the amount of bandwidth available to the client device; 27. The system of claim 26, further configured to: 31. The control circuit network is 27. The system of claim 26, further configured to transmit, via the network interface, to the client device, an instruction to pause output of interactive content received from the second server and to start output of non-interactive content received from the server. 32. Control circuitry configured to command transmission of a manifest file associated with non-interactive content to a client device, comprising: Reading from the memory a manifest file associated with the non-interactive content; transmitting a manifest file associated with the non-interactive content to the client device via the network interface; 27. The system of claim 26, further configured to: 33. Control circuitry configured to command transmission of a manifest file associated with non-interactive content to a client device, comprising: Reading from the memory a manifest file associated with the non-interactive content; transmitting a manifest file associated with the non-interactive content to the client device via the network interface; 27. The system of claim 26, further configured to cause the first server to: 34. A system for reducing bandwidth requirements for streaming content for interactive multimedia presentation, the system comprising: means for streaming interactive content from an interactive content engine for interactive multimedia presentation to a client device using a first streaming protocol configured for low latency real-time streaming; means for determining that non-interactive content should be inserted into the interactive multimedia presentation; In response to determining that non-interactive content is to be inserted into the interactive multimedia presentation, streaming the non-interactive content to a client device using a second streaming protocol configured for adaptive bitrate streaming; upon receiving an indication that streaming of the non-interactive content to the client device has ended, resume streaming the interactive content from the interactive content engine for the interactive multimedia presentation using the first streaming protocol; and the means to The system comprises: 35. A device further comprising means for monitoring streaming of interactive content, Item 35. The system of item 34, wherein the means for determining that non-interactive content should be inserted into the interactive multimedia presentation further comprises means for detecting an indication of the non-interactive content being inserted into the interactive multimedia presentation. 36. A device further comprising means for monitoring streaming of interactive content, Item 35. The system of item 34, wherein the means for determining that non-interactive content should be inserted into the interactive multimedia presentation further comprises means for detecting, based on the monitoring, that streaming of the interactive content has stopped. 37. The system of item 34, wherein the interactive content comprises a video game and the non-interactive content comprises cut scenes. 38. The system of claim 34, wherein the non-interactive content comprises advertisements. 39. The system of item 34, wherein the first streaming protocol is a protocol configured for low latency real-time streaming. 40. Means for receiving user input for skipping a portion of the non-interactive content during streaming of the non-interactive content; In response to receiving a user input to skip a portion of the non-interactive content, Stopping the streaming of non-interactive content to the client device; Resuming streaming of interactive content to a client device; and the means to Item 35. The system of item 34, further comprising: 41. The interactive content is a video game, and the system: A means for establishing a game session; means for identifying a user identifier based on a game session; means for retrieving a user's profile based on a user identifier; means for selecting non-interactive content items for streaming to a client device based on a user profile; Item 35. The system of item 34, further comprising: 42. The system of claim 34, further comprising means for encoding the interactive content in a format that complies with the first streaming protocol. 43. A means for determining an amount of bandwidth available to a client device; means for encoding the non-interactive content in a format that complies with a second streaming protocol based on the amount of bandwidth available to the client device; Item 35. The system of item 34, further comprising: 44. Interactive content is streamed from a first server application to a client device; Item 35. The system of item 34, wherein the non-interactive content is streamed from the second server application to the client device. 45. A non-transitory computer-readable medium having encoded thereon non-transitory computer-readable instructions for reducing bandwidth requirements for streaming content for an interactive multimedia presentation, the instructions, when executed by control circuitry, performing: streaming interactive content from the interactive content engine to a client device for interactive multimedia presentation using a first streaming protocol; determining that non-interactive content is to be inserted into the interactive multimedia presentation; In response to determining that non-interactive content is to be inserted into the interactive multimedia presentation, streaming the non-interactive content to a client device using a second streaming protocol configured for adaptive bitrate streaming; upon receiving an indication that streaming of the non-interactive content to the client device has ended, resume streaming the interactive content from the interactive content engine for the interactive multimedia presentation using the first streaming protocol; A non-transitory computer readable medium for causing control circuitry to perform the steps of: 46. Execution of the instructions further causes the control circuitry to monitor streaming of interactive content; Item 46. The non-transitory computer-readable medium of item 45, wherein execution of the instructions for determining that non-interactive content should be inserted into the interactive multimedia presentation further causes the control circuitry to detect an indication of the non-interactive content being inserted into the interactive multimedia presentation. 47. Execution of the instructions further causes the control circuitry to monitor streaming of interactive content; Item 46. The non-transitory computer-readable medium of item 45, wherein execution of the instructions for determining that non-interactive content should be inserted into the interactive multimedia presentation further causes the control circuitry to detect, based on monitoring, that streaming of the interactive content has stopped. 48. The non-transitory computer-readable medium of item 45, wherein the interactive content comprises a video game and the non-interactive content comprises cut scenes. 49. The non-transitory computer-readable medium of item 45, wherein the non-interactive content comprises advertising. 50. The non-transitory computer-readable medium of item 45, wherein the first streaming protocol is a protocol configured for low latency real-time streaming. 51. Execution of orders receiving a user input to skip a portion of the non-interactive content during streaming of the non-interactive content; In response to receiving a user input to skip a portion of the non-interactive content, Stopping the streaming of non-interactive content to the client device; Resuming streaming of interactive content to a client device; Item 46. The non-transitory computer readable medium of item 45, further causing control circuitry to: 52. The interactive content is a video game, and the execution of instructions is Establishing a game session; Identifying a user identifier based on the game session; Retrieving a profile of the user based on the user identifier; Selecting non-interactive content items for streaming to a client device based on a user profile; Item 46. The non-transitory computer readable medium of item 45, further causing control circuitry to: 53. The non-transitory computer-readable medium of item 45, wherein execution of the instructions further causes the control circuitry to encode the interactive content in a format that complies with the first streaming protocol. 54. Execution of orders is determining an amount of bandwidth available to a client device; encoding the non-interactive content in a format compliant with a second streaming protocol based on the amount of bandwidth available to the client device; Item 46. The non-transitory computer readable medium of item 45, further causing control circuitry to: 55. Interactive content is streamed from a first server application to a client device; Item 46. The non-transitory computer-readable medium of item 45, wherein the non-interactive content is streamed from the second server application to the client device. 56. A method for reducing bandwidth requirements for streaming content for interactive multimedia presentation, the method comprising: identifying an interactive multimedia presentation; streaming interactive content from the interactive content engine to a client device for interactive multimedia presentation using a first streaming protocol; determining that non-interactive content is to be inserted into the interactive multimedia presentation; In response to determining that non-interactive content is to be inserted into the interactive multimedia presentation, streaming the non-interactive content to a client device using a second streaming protocol configured for adaptive bitrate streaming; upon receiving an indication that streaming of the non-interactive content to the client device has ended, resume streaming the interactive content from the interactive content engine for the interactive multimedia presentation using the first streaming protocol; A method comprising: 57. The method further comprising monitoring streaming of interactive content; Item 57. The method of item 56, wherein determining that non-interactive content should be inserted into the interactive multimedia presentation includes detecting an indication of the non-interactive content being inserted into the interactive multimedia presentation. 58. The method further comprising: monitoring streaming of interactive content; Item 57. The method of item 56, wherein determining that non-interactive content should be inserted into the interactive multimedia presentation includes detecting, based on monitoring, that streaming of the interactive content has stopped. 59. The method of any of items 56-58, wherein the interactive content comprises a video game and the non-interactive content comprises cut scenes. 60. The method of any of items 56-58, wherein the non-interactive content comprises advertisements. 61. The method of any of items 56-60, wherein the first streaming protocol is a protocol configured for low latency real-time streaming. 62. During streaming of non-interactive content, receiving user input to skip a portion of the non-interactive content; In response to receiving a user input to skip a portion of the non-interactive content, Stopping the streaming of non-interactive content to the client device; resuming streaming of the interactive content to the client device; and 62. The method according to any of items 55-61, further comprising: 63. The interactive content is a video game and the method comprises: Establishing a game session; Identifying a user identifier based on the game session; Retrieving a profile of the user based on the user identifier; Selecting non-interactive content items for streaming to a client device based on a user profile; The method according to any one of items 56-26, further comprising: 64. Determining an amount of bandwidth available to a client device; and encoding the non-interactive content in a format compliant with a second streaming protocol based on the amount of bandwidth available to the client device; 64. The method according to any of items 56-63, further comprising: 65. Interactive content is streamed from a first server application to a client device; The method of any of items 56-64, wherein the non-interactive content is streamed from a second server application to the client device. Also the following set of items (all numbers in this set refer to this set of items): 1. A method for providing interactive cloud-based supplemental content for an interactive multimedia presentation, the method comprising: streaming interactive content for an interactive multimedia presentation to a client device by a first interactive content engine; determining that supplemental content is to be inserted into the interactive multimedia presentation; In response to determining that the supplemental content is to be inserted into the interactive multimedia presentation, streaming the supplemental content by a second interactive content engine to a client device; resume streaming the interactive content by the first interactive content engine upon receiving an indication that streaming of the supplemental content to the client device has ended; A method comprising: 2. further comprising monitoring streaming of interactive content; 2. The method of claim 1, wherein determining that supplemental content should be inserted into the interactive multimedia presentation includes detecting an indication of the supplemental content to be inserted into the interactive multimedia presentation. 3. further comprising monitoring streaming of interactive content; 2. The method of claim 1, wherein determining that supplemental content should be inserted into the interactive multimedia presentation includes detecting, based on monitoring, that streaming of the interactive content has stopped. 4. The method of claim 1, wherein the interactive content comprises a video game and the supplemental content comprises cut scenes. 5. The method of claim 1, wherein the interactive content comprises advertisements. 6. The method comprises: Retrieving an identifier of a user; Accessing a profile associated with a user; Modifying parts of the supplemental content based on your profile The method of claim 1, further comprising: 7. The interactive content is a video game. Supplemental content consists of cut scenes from the video game. the portion comprises an avatar of a user; Modifying any portion of the Supplemental Content is determining physical characteristics of the avatar based on a profile associated with the user; generating an avatar for inclusion in supplemental content based on physical characteristics; The method according to item 6, further comprising: 8. Releasing a first amount of bandwidth reserved for streaming interactive content; and Releasing a first amount of processing resources for encoding the interactive content; Upon receiving an indication that streaming of the supplemental content to the client device has finished, reserving a second amount of bandwidth for streaming interactive content; and reserving a second amount of processing resources for encoding of interactive content; and The method of claim 1, further comprising: 9. During streaming of the supplemental content, receiving user input to skip a portion of the supplemental content; In response to receiving a user input to skip a portion of the supplemental content, ceasing streaming of the supplemental content to the client device; and Resuming streaming of interactive content to a client device; The method of claim 1, further comprising: 10. Determining the amount of bandwidth available to the client device; and encoding the supplemental content based on the amount of bandwidth available to the client device; The method of claim 1, further comprising: 11. A system for providing interactive cloud-based supplemental content for an interactive multimedia presentation, the system comprising: a network interface configured to enable communication between one or more servers and one or more client devices; Control circuit network and The control circuitry comprises: streaming interactive content for an interactive multimedia presentation to a client device by a first interactive content engine; determining that supplemental content is to be inserted into the interactive multimedia presentation; In response to determining that the supplemental content is to be inserted into the interactive multimedia presentation, streaming the supplemental content by a second interactive content engine to a client device; resume streaming the interactive content by the first interactive content engine upon receiving an indication that streaming of the supplemental content to the client device has ended; A system configured to: 12. The control circuitry is further configured to monitor streaming of interactive content; Item 12. The system of item 11, wherein the control circuitry configured to determine that supplemental content should be inserted into the interactive multimedia presentation is further configured to detect an indication of the supplemental content to be inserted into the interactive multimedia presentation. 13. The control circuitry is further configured to monitor streaming of interactive content; Item 12. The system of item 11, wherein the control circuitry configured to determine that supplemental content should be inserted into the interactive multimedia presentation is further configured to detect, based on the monitoring, that streaming of the interactive content has stopped. 14. The system of item 11, wherein the interactive content comprises a video game and the supplemental content comprises cut scenes. 15. The system of claim 11, wherein the interactive content comprises advertisements. 16. The supplemental content is customized for a user of a client device, and the control circuitry Retrieving an identifier of a user; Accessing a profile associated with a user; Modifying parts of the supplemental content based on your profile Item 12. The system of item 11, further configured to: 17. The interactive content is a video game; Supplemental content consists of cut scenes from the video game. the portion comprises an avatar of a user; Control circuitry configured to modify the portion of the supplemental content, determining physical characteristics of the avatar based on a profile associated with the user; generating an avatar for inclusion in supplemental content based on physical characteristics; Item 17. The system of item 16, further configured to: 18. The control circuit network is Releasing a first amount of bandwidth reserved for streaming interactive content; Releasing a first amount of processing resources for encoding the interactive content; Upon receiving an indication that streaming of the supplemental content to the client device has finished, reserving a second amount of bandwidth for streaming interactive content; and reserving a second amount of processing resources for encoding of interactive content; and Item 12. The system of item 11, further configured to: 19. The control circuit network is receiving user input to skip a portion of the supplemental content during streaming of the supplemental content; In response to receiving a user input to skip a portion of the supplemental content, ceasing streaming of the supplemental content to the client device; and Resuming streaming of interactive content to a client device Item 12. The system of item 11, further configured to: 20. The control circuit network is determining an amount of bandwidth available to a client device; encoding the supplemental content based on the amount of bandwidth available to the client device; Item 12. The system of item 11, further configured to: 21. A system for providing interactive cloud-based supplemental content for an interactive multimedia presentation, the system comprising: means for streaming interactive content for interactive multimedia presentation to a client device by a first interactive content engine; means for determining that supplemental content should be inserted into the interactive multimedia presentation; In response to determining that the supplemental content is to be inserted into the interactive multimedia presentation, streaming the supplemental content by a second interactive content engine to a client device; resume streaming the interactive content by the first interactive content engine upon receiving an indication that streaming of the supplemental content to the client device has ended; and the means to The system comprises: 22. A method for monitoring streaming of interactive content, comprising: 22. The system of claim 21, wherein the means for determining that supplemental content should be inserted into the interactive multimedia presentation further comprises means for detecting an indication of the supplemental content to be inserted into the interactive multimedia presentation. 23. A method for monitoring streaming of interactive content, 22. The system of claim 21, wherein the means for determining that supplemental content should be inserted into the interactive multimedia presentation further comprises means for detecting, based on monitoring, that streaming of the interactive content has stopped. 24. The system of item 21, wherein the interactive content comprises a video game and the supplemental content comprises cut scenes. 25. The system of claim 21, wherein the interactive content comprises advertisements. 26. The supplemental content is customized for a user of a client device, and the system means for retrieving a user's identifier; a means for accessing a profile associated with a user; A means to modify parts of the supplemental content based on the profile; 22. The system of claim 21, further comprising: 27. The interactive content is a video game. Supplemental content consists of cut scenes from the video game. the portion comprises an avatar of a user; The means to modify the supplemental content are as follows: means for determining physical characteristics of an avatar based on a profile associated with a user; means for generating an avatar for inclusion within the supplemental content based on a physical characteristic; 27. The system of claim 26, further comprising: 28. A method for streaming interactive content comprising: means for releasing a first amount of processing resources for encoding interactive content; Upon receiving an indication that streaming of the supplemental content to the client device has finished, reserving a second amount of bandwidth for streaming interactive content; and reserving a second amount of processing resources for encoding of interactive content; and and 22. The system of claim 21, further comprising: 29. Means for receiving user input for skipping a portion of the supplemental content during streaming of the supplemental content; In response to receiving a user input to skip a portion of the supplemental content, ceasing streaming of the supplemental content to the client device; and Resuming streaming of interactive content to a client device; and the means to 22. The system of claim 21, further comprising: 30. A means for determining an amount of bandwidth available to a client device; means for encoding supplemental content based on the amount of bandwidth available to a client device; 22. The system of claim 21, further comprising: 31. A non-transitory computer-readable medium having encoded non-transitory computer-readable instructions for providing interactive cloud-based supplemental content for an interactive multimedia presentation, the instructions, when executed by control circuitry, performing: streaming interactive content for an interactive multimedia presentation to a client device by a first interactive content engine; determining that supplemental content is to be inserted into the interactive multimedia presentation; In response to determining that the supplemental content is to be inserted into the interactive multimedia presentation, streaming the supplemental content by a second interactive content engine to a client device; resume streaming the interactive content by the first interactive content engine upon receiving an indication that streaming of the supplemental content to the client device has ended; A non-transitory computer readable medium for causing control circuitry to perform the steps of: 32. Execution of the instructions further causes the control circuitry to monitor streaming of interactive content; Item 32. The non-transitory computer-readable medium of item 31, wherein execution of the instructions for determining that supplemental content should be inserted into the interactive multimedia presentation further causes the control circuitry to detect an indication of the supplemental content to be inserted into the interactive multimedia presentation. 33. Execution of the instructions further causes the control circuitry to monitor streaming of interactive content; Item 32. The non-transitory computer-readable medium of item 31, wherein execution of the instructions for determining that supplemental content should be inserted into the interactive multimedia presentation further causes the control circuitry to detect, based on monitoring, that streaming of the interactive content has stopped. 34. The non-transitory computer-readable medium of item 31, wherein the interactive content comprises a video game and the supplemental content comprises cut scenes. 35. The non-transitory computer-readable medium of claim 31, wherein the interactive content comprises an advertisement. 36. Supplemental content is customized for a user of a client device, and execution of the instructions is Retrieving an identifier of a user; Accessing a profile associated with a user; Modifying parts of the supplemental content based on your profile 32. The non-transitory computer readable medium of claim 31, further causing the control circuitry to: 37. The interactive content is a video game. Supplemental content consists of cut scenes from the video game. the portion comprises an avatar of a user; Execution of the instructions to amend parts of the supplementary content determining physical characteristics of the avatar based on a profile associated with the user; generating an avatar for inclusion in supplemental content based on physical characteristics; Item 37. The non-transitory computer readable medium of item 36, further causing control circuitry to: 38. Execution of orders is Releasing a first amount of bandwidth reserved for streaming interactive content; Releasing a first amount of processing resources for encoding the interactive content; Upon receiving an indication that streaming of the supplemental content to the client device has finished, reserving a second amount of bandwidth for streaming interactive content; and reserving a second amount of processing resources for encoding of interactive content; and 32. The non-transitory computer readable medium of claim 31, further causing the control circuitry to: 39. Execution of orders is receiving user input to skip a portion of the supplemental content during streaming of the supplemental content; In response to receiving a user input to skip a portion of the supplemental content, ceasing streaming of the supplemental content to the client device; and Resuming streaming of interactive content to a client device; 32. The non-transitory computer readable medium of claim 31, further causing the control circuitry to: 40. Execution of instructions is determining an amount of bandwidth available to a client device; encoding the supplemental content based on the amount of bandwidth available to the client device; 32. The non-transitory computer readable medium of claim 31, further causing the control circuitry to: 41. A method for providing interactive cloud-based supplemental content for an interactive multimedia presentation, the method comprising: identifying an interactive multimedia presentation; streaming interactive content for an interactive multimedia presentation to a client device by a first interactive content engine; determining that supplemental content is to be inserted into the interactive multimedia presentation; In response to determining that the supplemental content is to be inserted into the interactive multimedia presentation, streaming the supplemental content by a second interactive content engine to a client device; resume streaming the interactive content by the first interactive content engine upon receiving an indication that streaming of the supplemental content to the client device has ended; A method comprising: 42. The method further comprising monitoring streaming of interactive content; Item 42. The method of item 41, wherein determining that supplemental content should be inserted into the interactive multimedia presentation includes detecting an indication of the supplemental content to be inserted into the interactive multimedia presentation. 43. The method further comprising monitoring streaming of interactive content; Item 42. The method of item 41, wherein determining that supplemental content should be inserted into the interactive multimedia presentation includes detecting, based on monitoring, that streaming of the interactive content has stopped. 44. The method of any of items 41-43, wherein the interactive content comprises a video game and the supplemental content comprises cut scenes. 45. The method of any of claims 41-43, wherein the interactive content comprises advertisements. 46. The supplemental content is customized for a user of a client device, the method comprising: Retrieving an identifier of a user; Accessing a profile associated with a user; Modifying portions of the Supplemental Content based on the profile; and 46. The method according to any one of items 41-45, further comprising: 47. The interactive content is a video game. Supplemental content consists of cut scenes from the video game. the portion comprises an avatar of a user; Modifying any portion of the Supplemental Content is determining physical characteristics of the avatar based on a profile associated with the user; generating an avatar for inclusion in supplemental content based on physical characteristics; Further comprising: Item 47. The method according to item 46. 48. Releasing a first amount of bandwidth reserved for streaming interactive content; and Releasing a first amount of processing resources for encoding the interactive content; Upon receiving an indication that streaming of the supplemental content to the client device has finished, reserving a second amount of bandwidth for streaming interactive content; and reserving a second amount of processing resources for encoding of interactive content; and 48. The method according to any one of items 41-47, further comprising: 49. During streaming of the supplemental content, receiving user input to skip a portion of the supplemental content; In response to receiving a user input to skip a portion of the supplemental content, ceasing streaming of the supplemental content to the client device; and Resuming streaming of interactive content to a client device; 49. The method according to any one of items 41-48, further comprising: 50. Determining an amount of bandwidth available to a client device; encoding the supplemental content based on the amount of bandwidth available to the client device; 50. The method according to any one of items 41-49, further comprising:
Claims
1. A method for reducing bandwidth requirements for streaming content for interactive multimedia presentation, the method being: To stream bidirectional content from the bidirectional content engine for bidirectional multimedia presentation to a client device using a first streaming protocol configured for low-latency real-time streaming, To determine that non-interactive content should be inserted into the aforementioned interactive multimedia presentation, In response to the decision that non-interactive content should be inserted into the aforementioned interactive multimedia presentation, Streaming the non-bidirectional content to the client device using a second streaming protocol configured for adaptive bitrate streaming, Upon receiving an instruction that the streaming of the non-bidirectional content to the client device has ended, the system will resume streaming the bidirectional content from the bidirectional content engine for the bidirectional multimedia presentation using the first streaming protocol. Methods that include...
2. Further includes monitoring the streaming of the aforementioned interactive content, The method according to claim 1, wherein determining that non-interactive content should be inserted into the interactive multimedia presentation includes detecting instructions for non-interactive content to be inserted into the interactive multimedia presentation.
3. Further includes monitoring the streaming of the aforementioned interactive content, The method according to claim 1, wherein determining that non-interactive content should be inserted into the interactive multimedia presentation includes detecting, based on the monitoring, that the streaming of the interactive content has stopped.
4. The method according to claim 1, wherein the interactive content includes a video game, and the non-interactive content includes cutscenes.
5. The method according to claim 1, wherein the non-interactive content includes an advertisement.
6. During the streaming of the non-bidirectional content, the system receives user input to skip a portion of the non-bidirectional content. In response to receiving user input to skip a portion of the non-interactive content, To stop streaming the non-bidirectional content to the client device, To resume streaming the bidirectional content to the client device. The method according to claim 1, further comprising:
7. The method according to claim 1, further comprising encoding the bidirectional content in a format compliant with the first streaming protocol.
8. The aforementioned interactive content is a video game, and the aforementioned method is Establishing a game session, Based on the aforementioned game session, the user identifier is identified, Based on the user identifier, read the user's profile, Based on the user's profile, select the non-bidirectional content items for streaming to the client device. The method according to claim 1, further comprising:
9. Determining the amount of bandwidth available to the client device, Based on the amount of bandwidth available to the client device, the non-bidirectional content is encoded in a format compliant with the second streaming protocol. The method according to claim 1, further comprising:
10. The aforementioned bidirectional content is streamed from the first server application to the client device. The method according to claim 1, wherein the non-bidirectional content is streamed from a second server application to the client device.
11. A system for reducing bandwidth requirements for streaming content for interactive multimedia presentation, wherein the system is Network interface and A first server equipped with a control circuit network and Equipped with, The aforementioned control circuit network is The network interface is used to stream the interactive content for the interactive multimedia presentation to the client device using a first streaming protocol configured for low-latency real-time streaming. The network interface detects an instruction that non-interactive content should be inserted into the interactive multimedia presentation, In response to detecting the instruction that non-interactive content should be inserted into the interactive multimedia presentation, Notifying the client device to request the non-bidirectional content from the second server, Using a second streaming protocol configured for adaptive bitrate streaming, the streaming of the bidirectional content to the client device is paused while the non-bidirectional content is being streamed from the second server to the client device. Upon receiving an instruction that the streaming of the non-bidirectional content to the client device has ended, the system will resume streaming the bidirectional video game content to the client device via the network interface using the first streaming protocol. A system configured to perform the following actions.
12. The aforementioned control circuit network is The network interface receives an instruction that a portion of the non-bidirectional content has been skipped during the streaming of the non-bidirectional content. Resume streaming of the bidirectional content to the client device in response to receiving the instruction that a portion of the non-bidirectional content has been skipped. The system according to claim 11, further configured to perform the following:
13. The aforementioned interactive content is a video game, and the aforementioned control circuit network is To establish a game session for the aforementioned video game, Based on the aforementioned game session, the user identifier is identified, Based on the user identifier, read the user's profile, Based on the user's profile, select the non-bidirectional content items for streaming to the client device. The system according to claim 11, further configured to perform the following:
14. A system for reducing bandwidth requirements for streaming content for interactive multimedia presentation, wherein the system is Network interface and A second server equipped with a control circuit network and Equipped with, The aforementioned control circuit network is The network interface receives a request to stream non-bidirectional content to the client device while bidirectional content is being streamed from the first server to the client device for the bidirectional multimedia presentation using the first streaming protocol, In response to receiving the aforementioned request, Commanding the transmission of the manifest file associated with the non-bidirectional content to the client device, Receiving one or more requests from the client device for at least a portion of the non-bidirectional content based on the manifest file via the network interface, The network interface is used to enable the client device to stream at least a portion of the non-bidirectional content in response to one or more requests, using a second streaming protocol configured for adaptive bitrate streaming. A system configured to perform the following actions.
15. The aforementioned control circuit network is The network interface receives user input to skip a portion of the non-bidirectional content during streaming of the non-bidirectional content. In response to receiving user input to skip a portion of the non-bidirectional content, the streaming of the non-bidirectional content to the client device is paused. The system according to claim 14, further configured to perform the following:
16. A method for providing interactive cloud-based supplemental content for interactive multimedia presentation, the method comprising: The client device is streamed with the interactive content for the interactive multimedia presentation by the first interactive content engine, To determine that supplementary content should be inserted into the aforementioned interactive multimedia presentation, In response to the decision that supplementary content should be inserted into the aforementioned interactive multimedia presentation, To release a first amount of bandwidth reserved for streaming the aforementioned bidirectional content, To release a first amount of processing resources for encoding the aforementioned bidirectional content, The supplemental content is streamed to the client device by a second bidirectional content engine. Upon receiving an instruction that the streaming of the supplemental content to the client device has ended, the first bidirectional content engine will resume streaming the bidirectional content. Methods that include...
17. A method for providing interactive cloud-based supplemental content for interactive multimedia presentation, the method comprising: To reserve system resources for use by the first interactive content engine for streaming interactive multimedia presentations to client devices, Determining that supplementary content should be inserted into the interactive multimedia presentation streamed to the client device by the first interactive content engine, In response to deciding that the supplemental content should be inserted into the interactive multimedia presentation, release at least a portion of the system resources reserved for use by the first interactive content engine for streaming the interactive multimedia presentation. The client device is to be streamed the supplemental content using the released system resources by the second bidirectional content engine. Upon receiving an instruction that the streaming of the supplemental content to the client device has finished, the released system resources are to be reserved for use by the first bidirectional content engine. The first interactive content engine will resume streaming the interactive content using the reserved system resources. Methods that include...
18. A method for providing interactive cloud-based supplemental content for interactive multimedia presentation, the method comprising: To reserve bandwidth for use by a first interactive content engine for streaming the interactive multimedia presentation to multiple client devices, Determining that supplemental content should be inserted into the interactive multimedia presentation which is streamed by the first interactive content engine to at least one of the client devices of the plurality of client devices, In response to deciding that the supplemental content should be inserted into the interactive multimedia presentation, to release at least a portion of the bandwidth reserved for use by the first interactive content engine for streaming the interactive multimedia presentation, The supplemental content is streamed to at least one of the client devices of the plurality of client devices using the freed bandwidth by the second bidirectional content engine. Upon receiving an instruction from the plurality of client devices that the streaming of the supplemental content to at least one client device has finished, the freed bandwidth is to be reserved for use by the first bidirectional content engine, The first interactive content engine then resumes streaming the interactive multimedia presentation using the reserved bandwidth. Methods that include...