Patent Description:
3rd Generation Partnership Project (3GPP) TS26. <NUM> defines the general architecture for uplink and downlink streaming workflow. Further, 3GPP TS26. <NUM> defines the concept of a content preparation template. However, neither the TS26. <NUM> nor the TS26. <NUM> define the characteristics of the content preparation template. Further, TS26. <NUM> also does not define or describe the process of using the content preparation for content preparation, specifically, how to use a content preparation template for just-in-time content preparation. XP052174686 discloses techniques for content preparation before downlink streaming, including creating a Content Preparation Template (CPT).

The present disclosure addresses one or more technical problems. The present disclosure provides technical solutions that enable Application Providers to direct the definition, process, and preparation of content preparation using content preparation templates. Embodiments of the present disclosure provide methods and workflows for content preparation including collaboration scenarios for content preparation for uplink and downlink streaming.

While TS26. <NUM> defines the concepts of content preparation templates, the present disclosure describes collaboration scenarios for content preparation for uplink and downlink streaming including defining roles in the content preparation process and instantiating the content preparation process in 5GMS networks. Embodiments of the present disclosure also define how to use the content preparation template in a plurality of use cases enabling just-in-time content preparation over a <NUM> network. Just-in-time content preparation increases efficiency and reduces the computational overhead of the <NUM> network and the devices therein.

The present disclosure includes methods and apparatus directed to just-in-time content preparation for a <NUM> media streaming (5GMS) network performed by at least one processor implementing a 5GMS application provider, according to the appended set of claims.

The proposed features discussed below may be used separately or combined in any order. Further, the embodiments may be implemented by processing circuitry (e.g., one or more processors or one or more integrated circuits) or processing entities (e.g., one or more application providers, one or more application servers, or one or more application functions). In one example, the one or more processors execute a program that is stored in a non-transitory computer-readable medium.

A <NUM> media streaming (5GMS) system may be an assembly of application functions, application servers, and interfaces from the <NUM> media streaming architecture that support either downlink media streaming services or uplink media streaming services, or both. A 5GMS Application Provider may include a party that interacts with functions of the 5GMS system and supplies a 5GMS Aware Application that interacts with functions of the 5GMS system. The 5GMS Aware Application may refer to an application in the user equipment (UE), provided by the 5GMS Application Provider, that contains the service logic of the 5GMS application service, and interacts with other 5GMS Client and Network functions via the interfaces and application programming interfaces (APIs) defined in the 5GMS architecture. A 5GMS Client may refer to a UE function that is either a 5GMS downlink (5GMSd) Client or a 5GMS uplink (5GMSu) Client, or both.

The 5GMSd Client may refer to a UE function that includes at least a <NUM> media streaming player and a media session handler for downlink streaming and that may be accessed through well-defined interfaces/APIs. The 5GMSu Client may refer to an originator of a 5GMSu service that may be accessed through well-defined interfaces/APIs. A 5GMSu media streamer may refer to a UE function that enables uplink delivery of streaming media content to an Application Server (AS) function of the 5GMS Application Provider, and which interacts with both the 5GMSu Aware Application for media capture and subsequent streaming, and the Media Session Handler for media session control.

A dynamic policy may refer to a dynamic policy and charging control (PCC) rule for an uplink or downlink application flow during a media session. An egest session may refer to an uplink media streaming session from the 5GMS AS towards the 5GMSu Application Provider. An ingest session may refer to a session to upload the media content to a 5GMSd AS. A policy template may refer to a collection of (semi-static) Policy or Control Function (PCF)/Network Exposure Function (NEF) API parameters which are specific to the 5GMS Application Provider and also the resulting PCC rule. A policy template ID may identify the desired policy template, which is used by the 5GMSd Application Function (AF) to select the appropriate PCF/NEF API towards the <NUM> system so that the PCF can compile the desired PCC rule. The Media Player Entry may refer to a document or a pointer to a document that defines a media presentation (e.g., a media presentation description (MPD) for DASH or a uniform resource locator (URL) to a video clip file). A Media Streamer Entry may refer to a pointer (e.g., in the form of a URL) that defines an entry point of an uplink media streaming session. A presentation entry may refer to a document or a pointer to a document that defines an application presentation, such as an HTML5 document.

A Provisioning Session may refer to a data structure supplied at an interface (M1d) by a 5GMSd Application provider that configures the 5GMSd features relevant to a set of 5GMSd Aware Applications. A 5GMSd Media Player may refer to a UE function that enables playback and rendering of a media presentation based on a media play entry and exposing some basic controls such as play, pause, seek, stop, to the 5GMSd Aware Application. Server Access Information may refer to a set of parameters and addresses (including 5GMSd AF and 5GMSd AS addresses) which are needed to activate the reception of a streaming session. A Service and Content Discovery may refer to functionality and procedures provided by a 5GMSd Application Provider to a 5GMS Aware Application that enables the end user to discover the available streaming service and content offerings and select a specific service or content item for access. A Service Announcement may refer to procedures conducted between the 5GMS Aware Application and the 5GMS Application Provider such that the 5GMS Aware Application is able to obtain 5GMS Service Access Information, either directly or in the form of a reference to that information.

A third party player may refer to a part of an application that uses APIs to exercise selected 5GMSd functions to play back media content. A third party uplink streamer may refer to a part of an application that uses APIs to exercise selected 5GMSu functions to capture and stream media content.

<FIG> is a diagram of an environment <NUM> in which methods, apparatuses, and systems described herein may be implemented, according to embodiments. As shown in <FIG>, the environment <NUM> may include a user device <NUM>, a platform <NUM>, and a network <NUM>. Devices of the environment <NUM> may interconnect via wired connections, wireless connections, or a combination of wired and wireless connections.

The user device <NUM> includes one or more devices capable of receiving, generating, storing, processing, and/or providing information associated with platform <NUM>. For example, the user device <NUM> may include a computing device (e.g., a desktop computer, a laptop computer, a tablet computer, a handheld computer, a smart speaker, a server, etc.), a mobile phone (e.g., a smart phone, a radiotelephone, etc.), a wearable device (e.g., a pair of smart glasses or a smart watch), or a similar device. In some implementations, the user device <NUM> may receive information from and/or transmit information to the platform <NUM>.

The platform <NUM> includes one or more devices as described elsewhere herein. In some implementations, the platform <NUM> may include a cloud server or a group of cloud servers. In some implementations, the platform <NUM> may be designed to be modular such that software components may be swapped in or out depending on a particular need. As such, the platform <NUM> may be easily and/or quickly reconfigured for different uses.

In some implementations, as shown, the platform <NUM> may be hosted in a cloud computing environment <NUM>. Notably, while implementations described herein describe the platform <NUM> as being hosted in the cloud computing environment <NUM>, in some implementations, the platform <NUM> may not be cloud-based (i.e., may be implemented outside of a cloud computing environment) or may be partially cloud-based.

The cloud computing environment <NUM> includes an environment that hosts the platform <NUM>. The cloud computing environment <NUM> may provide computation, software, data access, storage, etc. services that do not require end-user (e.g. the user device <NUM>) knowledge of a physical location and configuration of system(s) and/or device(s) that hosts the platform <NUM>. As shown, the cloud computing environment <NUM> may include a group of computing resources <NUM> (referred to collectively as "computing resources <NUM>" and individually as "computing resource <NUM>").

The computing resource <NUM> includes one or more personal computers, workstation computers, server devices, or other types of computation and/or communication devices. In some implementations, the computing resource <NUM> may host the platform <NUM>. The cloud resources may include compute instances executing in the computing resource <NUM>, storage devices provided in the computing resource <NUM>, data transfer devices provided by the computing resource <NUM>, etc. In some implementations, the computing resource <NUM> may communicate with other computing resources <NUM> via wired connections, wireless connections, or a combination of wired and wireless connections.

As further shown in <FIG>, the computing resource <NUM> includes a group of cloud resources, such as one or more applications ("APPs") <NUM>-<NUM>, one or more virtual machines ("VMs") <NUM>-<NUM>, virtualized storage ("VSs") <NUM>-<NUM>, one or more hypervisors ("HYPs") <NUM>-<NUM>, or the like.

The application <NUM>-<NUM> includes one or more software applications that may be provided to or accessed by the user device <NUM> and/or the platform <NUM>. The application <NUM>-<NUM> may eliminate a need to install and execute the software applications on the user device <NUM>. For example, the application <NUM>-<NUM> may include software associated with the platform <NUM> and/or any other software capable of being provided via the cloud computing environment <NUM>. In some implementations, one application <NUM>-<NUM> may send/receive information to/from one or more other applications <NUM>-<NUM>, via the virtual machine <NUM>-<NUM>.

The virtual machine <NUM>-<NUM> includes a software implementation of a machine (e.g. a computer) that executes programs like a physical machine. The virtual machine <NUM>-<NUM> may be either a system virtual machine or a process virtual machine, depending upon use and degree of correspondence to any real machine by the virtual machine <NUM>-<NUM>. A system virtual machine may provide a complete system platform that supports execution of a complete operating system ("OS"). A process virtual machine may execute a single program, and may support a single process. In some implementations, the virtual machine <NUM>-<NUM> may execute on behalf of a user (e.g. the user device <NUM>), and may manage infrastructure of the cloud computing environment <NUM>, such as data management, synchronization, or long-duration data transfers.

The virtualized storage <NUM>-<NUM> includes one or more storage systems and/or one or more devices that use virtualization techniques within the storage systems or devices of the computing resource <NUM>. In some implementations, within the context of a storage system, types of virtualizations may include block virtualization and file virtualization. Block virtualization may refer to abstraction (or separation) of logical storage from physical storage so that the storage system may be accessed without regard to physical storage or heterogeneous structure. The separation may permit administrators of the storage system flexibility in how the administrators manage storage for end users. File virtualization may eliminate dependencies between data accessed at a file level and a location where files are physically stored. This may enable optimization of storage use, server consolidation, and/or performance of non-disruptive file migrations.

The hypervisor <NUM>-<NUM> may provide hardware virtualization techniques that allow multiple operating systems (e.g. "guest operating systems") to execute concurrently on a host computer, such as the computing resource <NUM>. The hypervisor <NUM>-<NUM> may present a virtual operating platform to the guest operating systems, and may manage the execution of the guest operating systems. Multiple instances of a variety of operating systems may share virtualized hardware resources.

The network <NUM> includes one or more wired and/or wireless networks. For example, the network <NUM> may include a cellular network (e.g. a fifth generation (<NUM>) network, a long-term evolution (LTE) network, a third generation (<NUM>) network, a code division multiple access (CDMA) network, etc.), a public land mobile network (PLMN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network (e.g. the Public Switched Telephone Network (PSTN)), a private network, an ad hoc network, an intranet, the Internet, a fiber optic-based network, or the like, and/or a combination of these or other types of networks.

Additionally, or alternatively, a set of devices (e.g. one or more devices) of the environment <NUM> may perform one or more functions described as being performed by another set of devices of the environment <NUM>.

<FIG> is a block diagram of example components of one or more devices of <FIG>. The device <NUM> may correspond to the user device <NUM> and/or the platform <NUM>. As shown in <FIG>, the device <NUM> may include a bus <NUM>, a processor <NUM>, a memory <NUM>, a storage component <NUM>, an input component <NUM>, an output component <NUM>, and a communication interface <NUM>.

The bus <NUM> includes a component that permits communication among the components of the device <NUM>. The processor <NUM> is implemented in hardware, firmware, or a combination of hardware and software. The processor <NUM> is a central processing unit (CPU), a graphics processing unit (GPU), an accelerated processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), or another type of processing component. In some implementations, the processor <NUM> includes one or more processors capable of being programmed to perform a function. The memory <NUM> includes a random access memory (RAM), a read only memory (ROM), and/or another type of dynamic or static storage device (e.g. a flash memory, a magnetic memory, and/or an optical memory) that stores information and/or instructions for use by the processor <NUM>.

The storage component <NUM> stores information and/or software related to the operation and use of the device <NUM>. For example, the storage component <NUM> may include a hard disk (e.g. a magnetic disk, an optical disk, a magneto-optic disk, and/or a solid state disk), a compact disc (CD), a digital versatile disc (DVD), a floppy disk, a cartridge, a magnetic tape, and/or another type of non-transitory computer-readable medium, along with a corresponding drive.

The input component <NUM> includes a component that permits the device <NUM> to receive information, such as via user input (e.g. a touch screen display, a keyboard, a keypad, a mouse, a button, a switch, and/or a microphone). Additionally, or alternatively, the input component <NUM> may include a sensor for sensing information (e.g. a global positioning system (GPS) component, an accelerometer, a gyroscope, and/or an actuator). The output component <NUM> includes a component that provides output information from the device <NUM> (e.g. a display, a speaker, and/or one or more light-emitting diodes (LEDs)).

The communication interface <NUM> includes a transceiver-like component (e.g., a transceiver and/or a separate receiver and transmitter) that enables the device <NUM> to communicate with other devices, such as via a wired connection, a wireless connection, or a combination of wired and wireless connections. The communication interface <NUM> may permit the device <NUM> to receive information from another device and/or provide information to another device. For example, the communication interface <NUM> may include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, a Wi-Fi interface, a cellular network interface, or the like.

The device <NUM> may perform one or more processes described herein. The device <NUM> may perform these processes in response to the processor <NUM> executing software instructions stored by a non-transitory computer-readable medium, such as the memory <NUM> and/or the storage component <NUM>. A computer-readable medium is defined herein as a non-transitory memory device. A memory device includes memory space within a single physical storage device or memory space spread across multiple physical storage devices.

Software instructions may be read into the memory <NUM> and/or the storage component <NUM> from another computer-readable medium or from another device via the communication interface <NUM>. When executed, software instructions stored in the memory <NUM> and/or the storage component <NUM> may cause the processor <NUM> to perform one or more processes described herein.

In practice, the device <NUM> may include additional components, fewer components, different components, or differently arranged components than those shown in <FIG>. Additionally, or alternatively, a set of components (e.g. one or more components) of the device <NUM> may perform one or more functions described as being performed by another set of components of the device <NUM>.

<FIG> is a diagram of a media architecture <NUM> for media streaming. In embodiments, media architecture <NUM> may be used for processing media content after Uplink streaming or before Downlink streaming. A <NUM> media streaming uplink (5GMS) Application Provider <NUM> may use 5GMS for streaming services. 5GMS Application provider <NUM> may provide a 5GMS Aware Application <NUM> on the UE <NUM> to make use of 5GMS Client <NUM> and network functions using interfaces and APIs defined in 5GMS. 5GMS Application Server (AS) may be an Application Server dedicated to <NUM> Media Streaming. 5GMS Client <NUM> may be a UE <NUM> internal function dedicated to <NUM> Media Streaming.

5GMS Application Function <NUM> and 5GMS Application Server <NUM> may be Data Network (DN) <NUM> functions. Functions in trusted Data Networks may be trusted by the operator's network. Therefore, Application Functions in trusted Data Networks may directly communicate with all <NUM> Core functions. Functions in external Data Networks may only communicate with <NUM> Core functions via the Network Exposure Function (NEF) <NUM> using link <NUM>.

The media architecture <NUM> may connect UE <NUM> internal functions and related network functions for <NUM> Media Uplink Streaming. In some embodiments, the media architecture <NUM> may connect UE <NUM> internal functions and related network functions for <NUM> Media Downlink Streaming. Accordingly, media architecture <NUM> may include a number of functions. For example, 5GMS Client <NUM> on UE <NUM> may be an originator of 5GMS service that may be accessed through interfaces/APIs. 5GMS Client <NUM> may include two sub-functions, media session handler (MSH) <NUM> and media streamer <NUM>. MSH <NUM> may communicate with the 5GMS Application Function <NUM> in order to establish, control and support the delivery of a media session. The MSH <NUM> may expose APIs that can be used by the 5GMS Aware Application <NUM>. Media Streamer <NUM> may communicate with 5GMS Application Server <NUM> in order to stream the media content and provide a service to the 5GMS Aware Application <NUM> for media capturing and streaming, and the MSH <NUM> for media session control. 5GMS Aware Application <NUM> may control 5GMS Client <NUM> by implementing external application or content service provider specific logic and enabling the establishment of a media session. 5GMS Application Server <NUM> may host <NUM> media functions. 5GMS Application Provider <NUM> may be an external application or content specific media functionality, e.g., media storage, consumption, transcoding and redistribution that uses 5GMS to stream media from 5GMS Aware Application <NUM>. 5GMS Application Function <NUM> may provide various control functions to the MSH <NUM> on the UE <NUM> and/or to 5GMS Application Provider <NUM>. 5GMS Application Function <NUM> may relay or initiate a request for different Policy or Charging Function (PCF) <NUM> treatment or interact with other network functions.

Media architecture <NUM> may include a number of different interfaces. For example, link M1 may be a 5GMS Provisioning API exposed by 5GMS Application Function <NUM> to provision usage of media architecture <NUM> and to obtain feedback. Link M2 may be a 5GMS Publish API exposed by 5GMS Application Server <NUM> and used when 5GMS Application Server <NUM> in trusted Data Network, such as Data Network <NUM>, is selected to receive content for streaming service. Link M3may be an internal API used to exchange information for content hosting on 5GMS Application Server <NUM> within a trusted Data Network such as Data Network <NUM>. Link M4 may be a Media Uplink Streaming API exposed by 5GMS Application Server <NUM> to Media Streamer <NUM> to stream media content. Link M5 may be a Media Session Handling API exposed by 5GMS Application Function <NUM> to Media Session Handler for media session handling, control and assistance that also include appropriate security mechanisms e.g. authorization and authentication. Link M6 may be a UE <NUM> Media Session Handling API exposed by MSH <NUM> to 5GMS Aware Application <NUM> to make use of 5GMS functions. Link M7 may be a UE Media Streamer API exposed by Media Streamer <NUM> to 5GMS Aware Application <NUM> and MSH <NUM> to make use of Media Streamer <NUM>. Link M8 may be an Application API which is used for information exchange between 5GMS Aware Application <NUM> and 5GMS Application Provider <NUM>, for example to provide service access information to the 5GMS Aware Application <NUM>.

Embodiments corresponding to <FIG> & <FIG> relate to workflows, collaboration schemes, and procedures directed to process media content across a <NUM> network by a 5GMS Application Provider.

In some embodiments, the 5GMS Application Provider may direct content processing across the <NUM> network by defining the content preparation process. As an example, the 5GMS Application Provider may direct content processing across the <NUM> network by defining content preparation templates and providing the content preparation templates to 5GMS Application Functions or 5GMS Application Servers across the <NUM> network using network functions and APIs. Content Preparation Templates (CPT) may include information and instructions for content preparation. In some embodiments, content preparation templates include information and instructions related to output formats for media content. In some embodiments, content preparation templates may include information that may be used for allocation of content preparation resources or content distribution resources across the 5GMS network.

In some embodiments, the 5GMS Application Provider may direct the content preparation process for its media stream before distributing the media stream to a UE by defining content preparation templates and providing the content preparation templates. In some embodiments, the 5GMS Application Provider may direct the content preparation process for a media stream from a 5GMS Aware Application before receiving the media stream by defining content preparation templates and providing the content preparation templates. In some embodiments, the 5GMS Application Provider may direct the content preparation process for a media stream by defining content preparation templates and providing the content preparation templates to one or more 5GMS Application Functions in preparation for an uplink media stream from one or more UEs and before downlink streaming to one or more UEs. As an example, a 5GMS Application Provider may define content preparation templates and provide the content preparation templates to a first 5GMS Application Function, enabling the first 5GMS Application Function to communicate with a second 5GMS Application Function. The first 5GMS Application Function and second 5GMS Application Function can communicate and process media content from a media stream after the media stream is uploaded from a 5GMS Aware Application and before the media content is downloaded to another 5GMS Aware Application.

In some embodiments, the creating of the content preparation template by the 5GMS Application Provider may be instantiated prior to downlink streaming of modified content to one or more user devices from an application server. In some embodiments, the creating of the content preparation template by the 5GMS Application Provider may be instantiated after uplink streaming of content from one or more user devices to an application server. In some embodiments, the creating of the content preparation template by the 5GMS Application Provider may be instantiated after uplink streaming of content to an application server and prior to downlink streaming of modified content to one or more user devices. The creation of the content preparation template by the 5GMS Application Provider in response to a uplink or downlink streaming of content ensures that resources are provisioned only when required, improving use of network resources, bandwidth, and storage.

In some embodiments, a 5GMS Application Provider may establish a provisioning session with one or more 5GMS Application Functions. In some embodiments, 5GMS Application Provider may transmit content preparation templates to one or more 5GMS Application Functions during the provisioning session. In some embodiments, the 5GMS Application Provider may establish a provisioning session with a 5GMS Application Function and then define and transmit content preparation templates. In some embodiments, 5GMS Application Provider may establish more than one provisioning session with more than one 5GMS Application Functions.

In some embodiments, a 5GMS Application Provider may receive an acknowledgement from a 5GMS Application Function after establishing a provisioning session with the 5GMS Application Function. The acknowledgment may include information relating to discovery of resources, allocation of content preparation resources, allocation of content distribution resources, an uplink session with one or more other 5GMS Application Functions, or a downlink session with one or more other 5GMS Application Functions. In some embodiments, a 5GMS Application Server may determine information relating to discovery of resources, allocation of content preparation resources, allocation of content distribution resources and transmit it to the 5GMS Application Function.

In some embodiments, a 5GMS Application Provider may transmit media content to a 5GMS Application Server, wherein the media content may be modified based on the content preparation template. In some embodiments, a 5GMS Application Provider may receive partially modified media content from a 5GMS Application Server, wherein the media content may be modified based on the content preparation template. In some embodiments, a 5GMS Application Provider may direct the transfer of media content from a first 5GMS Application Server to another 5GMS Application Server through information in or accompanying the content preparation template.

In some embodiments, a 5GMS Application Provider may update the content preparation templates and transmit the updated content preparation template to one or more 5GMS Application Functions. The 5GMS Application Provider may receive an updated acknowledgement from the 5GMS Application Function, wherein the acknowledgement may indicate an updated information relating to discovery of resources, allocation of content preparation resources, allocation of content distribution resources, an uplink session with one or more other 5GMS Application Functions, or a downlink session with one or more other 5GMS Application Functions. In some embodiments, the updating of the content preparation template may be responsive to a request for content from one or more user devices prior to downlink streaming to the one or more user devices. As an example, the 5GMS Application Provider may update the content preparation template in response to a request for modified content from one or more UEs, 5GMS Aware Applications, or 5GMS Clients prior to downlink streaming to those UEs, 5GMS Aware Applications, or 5GMS Clients. In some embodiments, the updating of the content preparation template may be responsive to a request from an application provider or one or more user devices prior to uplink streaming to the application provider. As an example, the 5GMS Application Provider may update the content preparation template in response to a request from the 5GMS Application Provider prior to uplink streaming from the 5GMS Application Server to the 5GMS Application Provider. In some embodiments, the updating of the content preparation template may include adding or removing one or more processes associated with the allocation of the content preparation resources and the content distribution resources.

In some embodiments, the 5GMS Application Provider may create a content hosting configuration template (HCT) and transmit the content hosting configuration template to the 5GMS Application Function in the provisioning session with the 5GMS Application provider. The content hosting configuration template may include instructions and information for third-party providers to optimize delivery of media content over the <NUM> network. In some embodiments, 5GMS Application Server may allocate content preparation resources and allocate content distribution resources based on the content hosting configuration template.

In some embodiments, the 5GMS Application Provider may announce availability of content preparation services based on the acknowledgement from the provisioning session. The availability of content preparation services may be determined based on the allocation of content preparation resources, allocation of content distribution resources, and discovery of resources generally across the <NUM> network. In some embodiments, the 5GMS Application Provider may broadcast the availability of content preparation services to one or more 5GMS Aware Applications on the <NUM> network. In some embodiments, the 5GMS Application Provider may broadcast the availability of content preparation services to one or more 5GMS devices in the <NUM> network.

In some embodiments, the 5GMS Application Provider may establish a second provisioning session with another 5GMS Application Function. The second provision session may include a resource request, the resource request being based on the allocation of content preparation resources and content distribution resources. The 5GMS Application Provider may transmit the resource request to the second 5GMS Application Function, and receive a second acknowledgement indicating the allocation of the content preparation and distribution resources based on the resource request.

As an example, if a 5GMS Application Provider defines content preparation between a downlink media stream and an uplink media stream, the 5GMS Application Provider may establish a first provisioning session with a first 5GMS Application Function and a second provisioning session with a second 5GMS Application Function. The first provisioning session may include the 5GMS Application Provider to define content preparation templates for the media stream being uplinked. The second provisioning session may include defining resource request based on information relating to allocation of content preparation resources or the content distribution resources received from the first acknowledgement. The 5GMS Application Provider may transmit information relating to allocation of content preparation resources or the content distribution resources received from the first acknowledgement to the second 5GMS Application Function. The 5GMS Application Provider may receive a second acknowledgement from the second 5GMS Application Server, with the second acknowledgement indicating the allocation of content preparation and distribution resources based on the resource request.

In some embodiments, the 5GMS Application Provider may establish the first provisioning session with a first 5GMS Application Function and the first 5GMS Application Function may establish a provisioning session with a second 5GMS Application Function. As an example, the 5GMS Application Provider may establish a provisioning session with an Uplink 5GMS Application Function. The Uplink 5GMS Application Function may establish a provisioning session with a Downlink 5GMS Application Function. The two 5GMS Application Functions may communicate with each other and their respective 5GMS Application Servers to discover resources, allocate content preparation resources, and allocate content distribution resources. As another example, the 5GMS Application Provider may establish a provisioning session with an Downlink 5GMS Application Function. The Downlink 5GMS Application Function may establish a provisioning session with a Uplink 5GMS Application Function. The two 5GMS Application Functions may communicate with each other and their respective 5GMS Application Servers to discover resources, allocate content preparation resources, and allocate content distribution resources. In some embodiments, the respective 5GMS Application Servers may communicate with each other through APIs and transfer media content that may be modified using the content preparation templates.

In some embodiments, 5GMS Application Servers may discover resources for content processing. The 5GMS Application Server and 5GMS Application Function may communicate about discovering resources and allocating resources based on the content preparation template. The content preparation template transmitted by the 5GMS Application Provider may have a cascading effect causing an instantiation of a content preparation and content resource allocation at the 5GMS Application Server when the 5GMS Application Function requests resources and media content as defined by the 5GMS Application Provider in the content preparation templates.

In some embodiments, processing a media stream may include one or more 5GMS Application Servers processing the content based on the content preparation template. In some embodiments, the 5GMS Application Servers may receive media content from a 5GMS Application Provider and may partially modify the media content based on the content preparation template. In some embodiments, the 5GMS Application Servers may receive partially modified media content from a 5GMS Application Provider wherein the media content is partially modified based on the content preparation template. In some embodiments, the 5GMS Application Servers may transmit media content or media stream received from a 5GMS Aware Application or 5GMS client to the 5GMS Application Provider, wherein that media content may be partially modified based on the content preparation template by components of the 5GMS network. In some embodiments, the 5GMS Application Servers may transmit media content or media stream received from a 5GMS Aware Application or 5GMS client to another 5GMS Application Server and may partially modify the media content based on the content preparation template. As an example, a first 5GMS Application Server may process the media content received from a UE or 5GMS Aware Application based on content preparation templates before sending the processed media content to a second 5GMS Application Server. As another example, a first 5GMS Application Server may send the media content received from a UE or 5GMS Aware Application to a second 5GMS Application Server which may process the media content based on content preparation templates.

<FIG> illustrates a process <NUM> which may relate to a call flow for content preparation as directed by a 5GMS Application Provider before Downlink streaming of content to a <NUM> Aware Application on a client UE. The process <NUM> may be performed using architecture <NUM> or any other architecture desired.

According to process <NUM>, at operation <NUM>, the 5GMS Application Provider <NUM> may initiate or establish a provisioning session with a 5GMS Application Function <NUM> using link M1. At operation <NUM>, the 5GMS Application Provider <NUM> may create content preparation templates and transmit the content preparation templates to the 5GMS Application Function <NUM> using link M1. In some embodiments, at operation <NUM>, the 5GMS Application Provider <NUM> may request the 5GMS Application Function <NUM> for creation of one or more content preparation templates that define the instructions for content preparation and for content output format using link M1. At operation <NUM>, the 5GMS Application Function <NUM> and 5GMS Application Server <NUM> may communicate with each other and the 5GMS Application Function <NUM> may request the 5GMS Application Server <NUM> to discover resources, and allocate content preparation resources and content distribution resources based on the content preparation template using link M3. At operation <NUM>, the 5GMS Application Function <NUM> may transmit an acknowledgement to the 5GMS Application provider <NUM> indicating the successful creation of content preparation template, containing information related to content preparation resources, or containing information related to content distribution resources.

At operation <NUM>, the 5GMS Application Provider <NUM> may create content hosting configuration templates and transmit the content hosting configuration templates to the 5GMS Application Function <NUM> using link M1. In some embodiments, at operation <NUM>, the 5GMS Application Provider <NUM> may request the 5GMS Application Function <NUM> for creation of one or more content hosting configuration templates using link M1. At operation <NUM>, the 5GMS Application Function <NUM> may request 5GMS Application Server <NUM> to allocate content preparation resources and content distribution resources based on the content hosting templates using link M3. At operation <NUM>, the 5GMS Application Function <NUM> may send an acknowledgement to the 5GMS Application Provider <NUM> indicating the successful creation of content hosting configuration updates, the allocation of content preparation resources, or the allocation of content distribution resources using link M1. At operation <NUM>, the 5GMS Application Provider <NUM> provides the media content to be partially modified to the 5GMS Application Server <NUM> using link M2.

At operation <NUM>, there may be service announcements or communications between the devices and components of the <NUM> network. At operation <NUM>, the 5GMS Aware Application <NUM> may request service start from the 5GMS Application Provider <NUM> using link M8.

At operation <NUM>, the 5GMS Application Provider <NUM> may update content preparation template and send the updated content preparation template to the 5GMS Application Function <NUM>. In some embodiments, the updating of the content preparation template may be responsive to a request for content from one or more user devices prior to downlink streaming to the one or more user devices. As an example, the SGMS Application Provider <NUM> may update the content preparation template in response to a request for modified content or request for service from SGMS Aware Applications <NUM> prior to downlink streaming to the SGMS Aware Applications <NUM>. In some embodiments, the updating of the content preparation template may include adding or removing one or more processes associated with the allocation of the content preparation resources and the content distribution resources.

At operation <NUM>, the SGMS Application Function <NUM> and SGMS Application Server <NUM> may communicate with each other and the SGMS Application Function <NUM> may request the SGMS Application Server <NUM> to discover resources, and allocate content preparation resources and content distribution resources based on the updated content preparation template using link M3. At operation <NUM>, the SGMS Application Function <NUM> may transmit an updated acknowledgement to the SGMS Application provider <NUM> indicating the successful creation of content preparation template, containing information related to content preparation resources, or containing information related to content distribution resources.

At operation <NUM>, the SGMS Application Provider <NUM> may transmit an acknowledgement to the SGMS Aware Application <NUM> indicating that the SGMS Aware Application's <NUM> requested service may be provided.

At operation <NUM>, the SGMS Aware Application <NUM> and the SGMS Client <NUM> may communicate via UE APIs using one of links M7 or M8. At operation <NUM>, the SGMS client <NUM> may request service access from or provide service access to the SGMS Application Function <NUM>. At operation <NUM>, the SGMS Client <NUM> may request media session with the SGMS Application Function using link M5. At operation <NUM>, the SGMS Application Function <NUM> in turn may request start of the content preparation process from the SGMS Application Server <NUM>. The SGMS Application Server <NUM>, at operation <NUM>, may instantiate content preparation process if the content preparation process was not instantiated before. Thus, the SGMS Application Server <NUM> may instantiate and perform content preparation processes at the time of request or right before Downlink streaming, i.e., just-in-time. This just-in-time processing increases the <NUM> network's computational efficiency because no computation is done before it is needed. At operation <NUM>, the SGMS Application Function <NUM> may receive acknowledgement of the instantiation of the content preparation process. At operation <NUM>, partially or fully modified media content may be transmitted to the SGMS client <NUM> from the SGMS Application Server <NUM>, with the SGMS Application Server <NUM> partially or fully modifying media content for Downlink streaming based on the content preparation template. In some embodiments, the SGMS Application Server <NUM> may add new processes to the content preparation and processing and to provide the requested content format based on the available resources and distributions.

<FIG> illustrates a process <NUM> which may relate to a call flow for content preparation as directed by a SGMS Application Provider before Uplink streaming of content from a <NUM> Aware Application on a client UE to the SGMS Application Provider <NUM>. The process <NUM> may be performed using architecture <NUM> or any other architecture desired.

According to process <NUM>, at operation <NUM>, the SGMS Application Provider <NUM> may initiate or establish a provisioning session with a SGMS Application Function <NUM> using link M1. At operation <NUM>, the SGMS Application Provider <NUM> may create content preparation templates and transmit the content preparation templates to the 5GMS Application Function <NUM> using link M1. In some embodiments, at operation <NUM>, the SGMS Application Provider <NUM> may request the 5GMS Application Function <NUM> for creation of one or more content preparation templates that define the instructions for content preparation and for content output format using link M1. At operation <NUM>, the SGMS Application Function <NUM> and SGMS Application Server <NUM> may communicate with each other and the SGMS Application Function <NUM> may request the SGMS Application Server <NUM> to discover resources, and allocate content preparation resources and content distribution resources based on the content preparation template using link M3. At operation <NUM>, the SGMS Application Function <NUM> may transmit an acknowledgement to the SGMS Application provider <NUM> indicating the successful creation of content preparation template, containing information related to content preparation resources, or containing information related to content distribution resources. At operation <NUM>, the SGMS Application Provider <NUM> may broadcast availability of content preparation services to one or more SGMS Aware Applications on the <NUM> network.

In some embodiments, at operation <NUM>, the SGMS Aware Application <NUM> may request service start from the SGMS Application Provider <NUM> using link M8. In some embodiments, the updating of the content preparation template may be responsive to a request from the application provider prior to uplink streaming to the application provider. As an example, the SGMS Application Provider <NUM> may update the content preparation template in response to a request from the SGMS Application Provider <NUM> prior to uplink streaming from the SGMS Application Server <NUM> to the SGMS Application Provider <NUM>. The request may be in response to a request from another SGMS Application Provider or for internal storage and network efficiency purposes. In some embodiments, the updating of the content preparation template may include adding or removing one or more processes associated with the allocation of the content preparation resources and the content distribution resources.

At operation <NUM>, the 5GMS Application Provider <NUM> may update content preparation template and send the updated content preparation template to the 5GMS Application Function <NUM>. At operation <NUM>, the 5GMS Application Function <NUM> and 5GMS Application Server <NUM> may communicate with each other and the 5GMS Application Function <NUM> may request the 5GMS Application Server <NUM> to discover resources, and allocate content preparation resources and content distribution resources based on the updated content preparation template using link M3. At operation <NUM>, the 5GMS Application Function <NUM> may transmit an acknowledgement to the 5GMS Application provider <NUM> indicating the successful creation of content preparation template, containing information related to content preparation resources, or containing information related to content distribution resources. At operation <NUM>, the 5GMS Application Provider <NUM> may transmit an acknowledgement to the 5GMS Aware Application <NUM> indicating that the 5GMS Aware Application's <NUM> requested service may be provided.

At operation <NUM>, the 5GMS Aware Application <NUM> and the 5GMS Client <NUM> may communicate via UE APIs using one of links M7 or M8. At operation <NUM>, the 5GMS client <NUM> may request service access from or provide service access to the 5GMS Application Function <NUM>. At operation <NUM>, the 5GMS Client <NUM> may request media session with the 5GMS Application Function using link M5. At operation <NUM>, the 5GMS Application Function <NUM> in turn may request start of the content preparation process from the 5GMS Application Server <NUM>. The 5GMS Application Server <NUM>, at operation <NUM>, may instantiate content preparation process if the content preparation process was not instantiated before. Thus, the 5GMS Application Server <NUM> may instantiate and perform content preparation processes at the time of request or right after Uplink streaming, i.e., just-in-time. This just-in-time processing increases the <NUM> network's computational efficiency because no computation is done before it is needed. At operation <NUM>, the SGMS Application Function <NUM> may receive acknowledgement of the instantiation of the content preparation process. At operation <NUM>, partially or fully modified media content may be transmitted to the SGMS client <NUM> from the SGMS Application Server <NUM>, with the SGMS Application Server <NUM> partially or fully modifying media content for Downlink streaming based on the content preparation template. In some embodiments, the SGMS Application Server <NUM> may add new processes to the content preparation and processing and to provide the requested content format based on the available resources and distributions.

At operation <NUM>, the SGMS Application Provider <NUM> receives the requested media content to be partially modified from the SGMS Application Server <NUM> using link M2.

<FIG> is a diagram of media architecture <NUM> media streaming. In embodiments, media architecture <NUM> may be used for processing media content requested by a SGMS Application Provider for an Uplink resource stream from one or more UEs and before Downlink streaming to one or more other UEs. A <NUM> media streaming uplink (SGMS) Application Provider <NUM> may use SGMS for streaming services. SGMS Application provider <NUM> may provide a SGMS Aware Application <NUM> on the UE <NUM> to make use of SGMS Client <NUM> and network functions using interfaces and APIs defined in SGMS. In some embodiments, the SGMS Application provider <NUM> may also provide a SGMS Aware Application <NUM> on the UE <NUM> to make use of SGMS Client <NUM> and network functions using interfaces and APIs defined in SGMS. 5GMS Application Server (Application Server) may be an Application Server dedicated to <NUM> Media Streaming. SGMS Client <NUM> may be a UE <NUM> internal function dedicated to <NUM> Media Streaming. In some embodiments, SGMS Client <NUM> may be a UE <NUM> internal function dedicated to <NUM> Media Streaming.

SGMS Application Function <NUM> and SGMS Application Server <NUM> may be Data Network (DN) <NUM> functions. Functions in trusted Data Networks 610may be trusted by the operator's network. Therefore, Application Functions in trusted Data Networks may directly communicate with all <NUM> Core functions. Functions in external Data Networks may only communicate with <NUM> Core functions via the Network Exposure Function (NEF).

The media architecture <NUM> may connect UE <NUM> internal functions and related network functions for <NUM> Media Uplink Streaming. In some embodiments, the media architecture <NUM> may connect UE <NUM> internal functions and related network functions for <NUM> Media Downlink Streaming. Accordingly, media architecture <NUM> may include a number of functions. For example, SGMS Client <NUM> on UE <NUM> may be an originator of SGMS service that may be accessed through interfaces/APIs. SGMS Aware Application <NUM> may control SGMS Client <NUM> by implementing external application or content service provider specific logic and enabling the establishment of a media session. SGMS Application Server <NUM> may host <NUM> media functions. SGMS Application Provider <NUM> may be an external application or content specific media functionality, e.g., media storage, consumption, transcoding and redistribution that uses SGMS to stream media from SGMS Aware Application <NUM>.

Media architecture <NUM> may include a number of different interfaces. For example, link M1 may be a SGMS Provisioning API exposed by SGMS Application Function <NUM>/<NUM> to provision usage of media architecture <NUM> and to obtain feedback. Link M2 may be a SGMS Publish API exposed by SGMS Application Server <NUM>/<NUM> and used when SGMS Application Server <NUM>/<NUM> in trusted Data Network, such as Data Network <NUM>, is selected to receive content for streaming service. Link M3 may be an internal API used to exchange information for content hosting on SGMS Application Server <NUM>/<NUM> between SGMS Application Server <NUM>/<NUM> and SGMS Application Function <NUM>/<NUM> within a trusted Data Network such as Data Network <NUM>.

Link M4 may be a Media Uplink or Downlink Streaming API exposed by SGMS Application Server <NUM>/<NUM> to SGMS Client <NUM>/<NUM> to stream media content. Link M5 may be a Media Session Handling API exposed by SGMS Application Function <NUM>/<NUM> to SGMS Client <NUM>/<NUM> for media session handling, control and assistance that also include appropriate security mechanisms e.g. authorization and authentication. Link M8 may be an Application API which is used for information exchange between SGMS Aware Application <NUM>/<NUM> and SGMS Application Provider <NUM>, for example to provide service access information to the SGMS Aware Application <NUM>/<NUM>. Link I2 may be an Internal API exposed by SGMS Application Server <NUM>/<NUM> to other SGMS Application Server <NUM>/<NUM> and used for communication with a trusted Data Network such as Data Network <NUM>. Link I1 may be an Internal API exposed by SGMS Application Function <NUM>/<NUM> to other SGMS Application Function <NUM>/<NUM> used for communication with a trusted Data Network such as Data Network <NUM>.

<FIG> illustrates a process <NUM> which may relate to a compact call flow for content preparation as directed by a SGMS Application Provider requesting content after Uplink streaming from a <NUM> Aware Application on a SGMS UE but before Downlink streaming of the media content to a <NUM> Aware Application on a client UE. The process <NUM> may be performed using architecture <NUM> or any architecture desired.

According to process <NUM>, at operation <NUM>, the SGMS Application Provider <NUM> may initiate or establish a provisioning session with a Downlink SGMS Application Function <NUM> using link M1. The initiation and establishment of the provisioning session may include a plurality of sub-operations. The SGMS Application Provider <NUM> may create content preparation templates and transmit the content preparation templates to the Downlink SGMS Application Function <NUM> using link M1. In some embodiments, the SGMS Application Provider <NUM> may request the Downlink SGMS Application Function <NUM> for creation of one or more content preparation templates that define the instructions for content preparation and for content output format using link M1. The Downlink SGMS Application Function <NUM> and Downlink SGMS Application Server <NUM> may communicate with each other and the Downlink SGMS Application Function <NUM> may request the Downlink SGMS Application Server <NUM> to discover resources, and allocate content preparation resources and content distribution resources based on the content preparation template using link M3. The Downlink SGMS Application Function <NUM> may transmit an acknowledgement to the SGMS Application provider <NUM> indicating the successful creation of content preparation template, containing information related to content preparation resources, or containing information related to content distribution resources. In some embodiments, the SGMS Application Provider <NUM> may create content hosting configuration templates and transmit the content hosting configuration templates to the Downlink SGMS Application Function <NUM> using link M1. In some embodiments, the SGMS Application Provider <NUM> may request the Downlink SGMS Application Function <NUM> for creation of one or more content hosting configuration templates using link M1. The SGMS Downlink Application Function <NUM> may request Downlink SGMS Application Server <NUM> to allocate content preparation resources and content distribution resources based on the content hosting templates using link M3. The Downlink SGMS Application Function <NUM> may send an acknowledgement to the SGMS Application Provider <NUM> indicating the successful creation of content hosting configuration updates, the allocation of content preparation resources, or the allocation of content distribution resources using link M1.

At operations <NUM> to <NUM>, the SGMS Application Provider <NUM> initiates and establishes a second provisioning session with a Uplink SGMS Application Function <NUM>. The initiation and establishment of the second provisioning session may include a plurality of sub-operations. At operation <NUM>, the SGMS Application Provider <NUM> may create content preparation templates and transmit the content preparation templates to the Uplink 5GMS Application Function <NUM> using link M1. In some embodiments, the SGMS Application Provider <NUM> may request the Uplink SGMS Application Function <NUM> for creation of one or more content preparation templates that define the instructions for content preparation and for content output format using link M1. At operation <NUM>, the Uplink SGMS Application Function <NUM> and Uplink SGMS Application Server <NUM> may communicate with each other and the Uplink SGMS Application Function <NUM> may request the Uplink SGMS Application Server <NUM> to discover resources, and allocate content preparation resources and content distribution resources based on the content preparation template using link M3. At operation <NUM>, the Uplink SGMS Application Function <NUM> may transmit an acknowledgement to the SGMS Application provider <NUM> indicating the successful creation of content preparation template, containing information related to content preparation resources, or containing information related to content distribution resources.

At operation <NUM>, the SGMS Application Provider <NUM> may broadcast availability of content preparation services to one or more Uplink SGMS Aware Applications <NUM> on the <NUM> network. At operation <NUM>, the SGMS Aware Application <NUM> and the Uplink SGMS Client <NUM> may communicate via UE APIs using one of links M7 or M8. At operation <NUM>, the Uplink SGMS client <NUM> may request service access from or provide service access to the Uplink SGMS Application Function <NUM>. At operation <NUM>, the Uplink SGMS Client <NUM> may request media session handling with the Uplink SGMS Application Function using link M5. At operation <NUM>, the Uplink SGMS Application Server <NUM> receives Uplink media stream from the Uplink SGMS Client <NUM> using M4. At operation <NUM>, the Downlink SGMS Application Server <NUM> and Uplink SGMS Application Server <NUM> may communicate with each other using an internal API using link I2. In some embodiments, at operation <NUM>, the Downlink SGMS Application Server <NUM> and Uplink SGMS Application Server <NUM> may transfer or stream media content that may be requested by the SGMS Aware Application <NUM> or may be modified by the Downlink SGMS Application Server <NUM> using the content preparation templates. In some embodiments, at operation <NUM>, one or more Downlink SGMS Aware Application <NUM> may request service start from the SGMS Application Provider <NUM> using link M8.

At operation <NUM>, the SGMS Application Provider <NUM> may initiate an optional update to content preparation templates. The operation <NUM> may include a plurality of sub-operations. In some embodiments, there may be service announcements or communications between the devices and components of the <NUM> network. The SGMS Aware Application <NUM> may request service start from the SGMS Application Provider <NUM> using link M8. The SGMS Application Provider <NUM> may update content preparation template and send the updated content preparation template to the Downlink SGMS Application Function <NUM>. The Downlink SGMS Application Function <NUM> and Downlink SGMS Application Server <NUM> may communicate with each other and the Downlink SGMS Application Function <NUM> may request the Downlink SGMS Application Server <NUM> to discover resources, and allocate content preparation resources and content distribution resources based on the updated content preparation template using link M3. The Downlink SGMS Application Function <NUM> may transmit an acknowledgement to the SGMS Application provider <NUM> indicating the successful creation of updated content preparation template, containing information related to content preparation resources, or containing information related to content distribution resources. The SGMS Application Provider <NUM> may transmit an acknowledgement to the SGMS Aware Application <NUM> indicating that the SGMS Aware Application's <NUM> requested service may be provided.

At operation <NUM>, the SGMS Application Provider initiates and directs the downlink streaming of media content from the Downlink SGMS Application Server <NUM> to the SGMS client <NUM> or SGMS Aware Application <NUM>. The initiation and direction of media content may include a plurality of sub-operations. In some embodiments, the SGMS Aware Application <NUM> and the SGMS Client <NUM> may communicate via UE APIs using one of links M7 or M8. The SGMS client <NUM> may request service access from or provide service access to the Downlink SGMS Application Function <NUM>. The SGMS Client <NUM> may request media session with the Downlink SGMS Application Function using link M5. The Downlink SGMS Application Function <NUM> in turn may request start of the content preparation process from the Downlink SGMS Application Server <NUM>. The Downlink SGMS Application Server <NUM> may instantiate content preparation process if the content preparation process was not instantiated before. Thus, the Downlink SGMS Application Server <NUM> may instantiate and perform content preparation processes at the time of request or right before Downlink streaming, i.e., just-in-time. This just-in-time processing increases the <NUM> network's computational efficiency because no computation is done before it is needed. Then, the Downlink SGMS Application Function <NUM> may receive acknowledgement of the instantiation of the content preparation process. The partially or fully modified media content may be transmitted to the SGMS client <NUM> from the Downlink SGMS Application Server <NUM>, with the Downlink SGMS Application Server <NUM> partially or fully modifying media content for Downlink streaming based on the content preparation template. In some embodiments, the Downlink SGMS Application Server <NUM> may add new processes to the content preparation and processing and to provide the requested content format based on the available resources and distributions.

<FIG> illustrates a process <NUM> which may relate to a compact call flow for content preparation as directed by a SGMS Application Provider requesting content after Uplink streaming from a <NUM> Aware Application on a SGMS UE but before Downlink streaming of the media content to a <NUM> Aware Application on a client UE. The process <NUM> may be performed using architecture <NUM> or any architecture desired. Operations <NUM> - <NUM> are similar to operations <NUM> - <NUM> in process <NUM>.

According to process <NUM>, at operation <NUM>, the 5GMS Application Provider <NUM> may initiate a combined provisioning session with both the Uplink SGMS Application Function <NUM> and the Downlink SGMS Application Function <NUM>. Operation <NUM> may have a plurality of sub-operations.

The SGMS Application Provider <NUM> may initiate or establish a provisioning session with a Downlink SGMS Application Function <NUM> and Uplink SGMS Application Function <NUM> using link M1. In some embodiments, the SGMS Application Provider <NUM> may create content preparation templates and transmit the content preparation templates to the Downlink SGMS Application Function <NUM> and Uplink SGMS Application Function <NUM> using link M1. In some embodiments, the SGMS Application Provider <NUM> may request the Downlink SGMS Application Function <NUM> and Uplink SGMS Application Function <NUM> for creation of one or more content preparation templates that define the instructions for content preparation and for content output format using link M1. The Downlink SGMS Application Function <NUM> and Downlink SGMS Application Server <NUM> may communicate with each other and the Downlink SGMS Application Function <NUM> may request the Downlink SGMS Application Server <NUM> to discover resources, and allocate content preparation resources and content distribution resources based on the content preparation template using link M3. Similarly, The Uplink SGMS Application Function <NUM> and Uplink SGMS Application Server <NUM> may communicate with each other and the Uplink SGMS Application Function <NUM> may request the Uplink SGMS Application Server <NUM> to discover resources, and allocate content preparation resources and content distribution resources based on the content preparation template using link M3. Then, the Downlink SGMS Application Function <NUM> and Uplink SGMS Application Function <NUM> may transmit an acknowledgement to the SGMS Application provider <NUM> indicating the successful creation of content preparation template, containing information related to content preparation resources, or containing information related to content distribution resources.

At operation <NUM>, The SGMS Application Provider <NUM> may broadcast availability of content preparation services to one or more SGMS Aware Applications on the <NUM> network. At operation <NUM>, the SGMS Application Provider <NUM> may direct uplink streaming of media content from an Uplink SGMS Aware Application <NUM> on a Uplink SGMS client <NUM> that has requested services from the <NUM> network. In some embodiments, the uplink streaming of media content may include a plurality of sub-operations. As an example, the Uplink SGMS Aware Application <NUM> and the Uplink SGMS Client <NUM> may communicate via UE APIs using one of links M7 or M8. The Uplink 5GMS client <NUM> may request service access from or provide service access to the Uplink SGMS Application Function <NUM>. The Uplink SGMS Client <NUM> may request media session handling with the Uplink SGMS Application Function <NUM> using link M5. The Uplink SGMS Application Server <NUM> receives Uplink media stream from the Uplink SGMS Client <NUM> using M4.

At operation <NUM>, the Downlink SGMS Application Server <NUM> and Uplink SGMS Application Server <NUM> may communicate with each other using an internal API using link <NUM>. In some embodiments, at operation <NUM>, the Downlink SGMS Application Server <NUM> and Uplink SGMS Application Server <NUM> may transfer or stream media content that may be requested by the Downlink SGMS Aware Application <NUM> or may be modified by the Downlink SGMS Application Server <NUM> using the content preparation templates.

<FIG> shows an exemplary flowchart illustrating a process <NUM> which may relate to a SGMS Application Provider directing a content preparation process to process media content streamed over a <NUM> network.

At <NUM>, a SGMS Application Provider may create content preparation templates that include a first information and a second information. In some embodiments, the first information may include information about content preparation. As an example, the first information may include specific instructions for content preparation. In some embodiments, the second information may include information about content output. As an example, the second information may include instructions specifying the output formats and requirements for the media content. As an example, the SGMS Application Provider <NUM> may create preparation templates that include a first information and a second information.

In some embodiments, the creating of the content preparation template by the SGMS Application Provider <NUM> may be instantiated prior to downlink streaming of modified content to SGMS Aware Application <NUM> from the SGMS Application Server <NUM>. In some embodiments, the creating of the content preparation template by the SGMS Application Provider <NUM> may be instantiated after uplink streaming of content from SGMS Aware Application <NUM> to the SGMS Application Server <NUM>. In some embodiments, the creating of the content preparation template by the SGMS Application Provider <NUM> may be instantiated after uplink streaming of content from the SGMS Aware Application <NUM> to the SGMS Application Server <NUM> and prior to downlink streaming of modified content to SGMS Aware Application <NUM>. The creation of the content preparation template by the SGMS Application Provider in response to a uplink or downlink streaming of content ensures that resources are provisioned only when required, improving use of network resources, bandwidth, and storage.

At <NUM>, the SGMS Application Provider may establish a first provisioning session with a SGMS Application Function. As an example, the SGMS Application Provider <NUM> may establish a first provisioning session with a SGMS Application Function <NUM> using link M1.

At <NUM>, the SGMS Application Provider may transmit the content preparation templates to the SGMS Application Function. As an example, the SGMS Application Provider <NUM> may establish a first provisioning session with a SGMS Application Function <NUM> using link M1 and transmit the content preparation templates using link M1.

At <NUM>, the SGMS Application Provider may receive a first acknowledgement from the SGMS Application Function that includes an indication of an allocation of at least one of content preparation resources and content distribution resources. As an example, the SGMS Application Function <NUM> may transmit a first acknowledgement to the SGMS Application provider <NUM> indicating the successful creation of content preparation template, containing information related to content preparation resources, or containing information related to content distribution resources.

At <NUM>, the 5GMS Application Provider may update the content preparation templates. In some embodiments, the updating of the content preparation template may be responsive to a request for content from one or more user devices prior to downlink streaming to the one or more user devices. As an example, the SGMS Application Provider <NUM> may update the content preparation template in response to a request for modified content from the SGMS Aware Application <NUM> prior to downlink streaming to the SGMS Aware Application <NUM>. In some embodiments, the updating of the content preparation template may be responsive to a request from an application provider or one or more user devices prior to uplink streaming to the application provider. As an example, the SGMS Application Provider <NUM> may update the content preparation template in response to a request from the SGMS Application Provider <NUM> prior to uplink streaming from the SGMS Application Server <NUM> to the SGMS Application Provider <NUM>. In some embodiments, the updating of the content preparation template may include adding or removing one or more processes associated with the allocation of the content preparation resources and the content distribution resources.

At <NUM>, the 5GMS Application Provider may transmit the updated content preparation templates to the SGMS Application Function. As an example, the SGMS Application Provider <NUM> may transmit the updated content preparation templates to the SGMS Application Function <NUM>. At <NUM>, the SGMS Application Provider may receive an updated acknowledgement from the SGMS Application Function. As an example, the SGMS Application Provider <NUM> may receive an updated acknowledgement from the SGMS Application Function <NUM>.

<FIG> shows an exemplary flowchart illustrating a process <NUM> which may relate to a SGMS Application Provider directing a content preparation process to process media content streamed over a <NUM> network. In some embodiments, process <NUM> may relate to a SGMS Application Provider establishing a second provisioning session with a second 5GMS Application Function. In some embodiments, the establishment of the second provisioning session may be initiated by the SGMS Application Provider to modify or process media content after media content was uploaded by an Uplink 5GMS Aware Application associated with an Uplink SGMS Client but before the media content is downloaded by a Downlink SGMS Aware Application associated with an Downlink SGMS Client. As an example, a SGMS Application Provider <NUM> may provision a second session with another SGMS Application Function <NUM> when processing media content after a SGMS Aware Application <NUM> associated with a SGMS Client <NUM> uploads the media content to the <NUM> network but before a SGMS Aware Application <NUM> associated with a SGMS Client <NUM> downloads the media content.

At <NUM>, a SGMS Application Provider may establish a second provisioning session with a second SGMS Application Function. As an example, the SGMS Application Provider <NUM> may establish a second provisioning session with a second SGMS Application Function <NUM>.

At <NUM>, the SGMS Application Provider may define a resource request based on the allocation of at least one of the content preparation resources and the content distribution resources. As an example, the SGMS Application Provider <NUM> may define resource request based on the allocation of at least one of the content preparation resources and the content distribution resources as indicated by the first acknowledgement.

At <NUM>, the SGMS Application Provider may transmit the resource request to the second the SGMS Application Function. As an example, the SGMS Application Provider <NUM> may transmit the resource request to the second 5GMS Application Function <NUM>.

At <NUM>, the SGMS Application Provider may receive a second acknowledgement from the second SGMS Application Function that includes an indication of the allocation of the content preparation resources and the content distribution resources based on the resource request. As an example, the SGMS Application Provider <NUM> may receive a second acknowledgement from the second SGMS Application Function <NUM> that indicates the allocation of the content preparation resources and the content distribution resources based on the resource request by SGMS Application Provider <NUM>.

Although <FIG> and <FIG> show example operations of the processes <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> in embodiments, the <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> may include additional operations, fewer operations, different operations, or differently arranged operations than those depicted in <FIG> and <FIG>. In embodiments, any operations of processes <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> may be combined or arranged in any amount or order, as desired. In embodiments, two or more of the operations of the processes <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> may be performed in parallel. The scope of protection of the present invention is however defined by the appended set of claims.

Claim 1:
A method of directing just-in-time content preparation for a <NUM> media streaming, SGMS, network performed by at least one processor implementing a SGMS application provider, the method comprising:
creating (<NUM>) a content preparation template, by the SGMS application provider, wherein the content preparation template includes first information specifying instructions for content preparation, and second information specifying instructions for content output;
establishing (<NUM>) a first provisioning session between the SGMS application provider and a SGMS application function;
transmitting (<NUM>) the content preparation template to the SGMS application function and receiving (<NUM>) a first acknowledgment from the SGMS application function that includes an indication of an allocation of at least one of content preparation resources and content distribution resources;
updating (<NUM>) the content preparation template, wherein the updating of the content preparation template is responsive to a request for content from one or more user devices prior to downlink streaming to the one or more user devices or to a request from the SGMS application provider prior to uplink streaming to the SGMS application provider;
transmitting (<NUM>) the updated content preparation template to the SGMS application function; and
receiving (<NUM>) an updated acknowledgement from the SGMS application function, wherein the updated acknowledgement indicates an updated allocation of at least one of SGMS content preparation resources and SGMS content distribution resources.