Patent Description:
The disclosure generally relates to <NUM>th generation (<NUM>) media streaming (5GMS), and, in particular, to using edge application servers for live streaming of user-generated content.

Network and cloud platforms are used to run various applications. However, there is no existing standard to describe characteristics of a network or cloud platform or its elements.

The <NUM>rd Generation Partnership Project (3GPP) TS23. <NUM> (, 3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; Architecture for enabling Edge Applications (Release <NUM>), V2. <NUM>) defines the general architecture for enabling edge application, including the discovery of hardware capabilities of an edge element. 3GPP TS <NUM> (3GPP TS <NUM>, 3rd Generation Partnership Project; Technical Specification Group Services and System Aspects;<NUM> Media Streaming (5GMS); General description and architecture (Release <NUM>), V16. <NUM>) defines the general architecture for <NUM> media streaming applications and TS26. <NUM> defines the application programming interface (API) calls for that architecture. 3GPP TR <NUM> (3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; Study on <NUM> Media Streaming Extensions for Edge Processing (Release <NUM>)V1. <NUM>) also relates to <NUM>th generation media streaming (5GMS) and edge processing.

The current <NUM> edge architecture defined in 3GPP TS23. <NUM> only defines the discovery of the edge application by application clients. The 3GPP TS26. <NUM> only defines the media streaming architecture. However, the discovery, instantiation, and management of the media services on edge resource for the 5GMS application service provider are not defined.

The invention is specified in the appended claims.

According to one or more embodiments, a method for performing live-streaming of user-generated content over a media-streaming network includes transmitting, by a <NUM>th generation media streaming (5GMS)-aware application, a live-streaming request corresponding to the user-generated content to a 5GMS application provider (AP); receiving, by the 5GMS-aware application, from the 5GMS AP, an edge application server (EAS) profile corresponding to the live-streaming request, wherein the EAS profile indicates a service class (SC) from among a plurality of SCs, the SC corresponding to the live-streaming request; selecting, by the 5GMS-aware application, a 5GMS application server (AS) based on the SC; and performing the live-streaming of the user-generated content over the 5GMS network to the 5GMS AS according to the SC.

According to one or more embodiments, a device for performing live-streaming of user-generated content over a media-streaming network includes at least one memory configured to store program code; and at least one processor configured to read the program code and operate as instructed by the program code, the program code including: transmitting code configured to cause the at least one processor to transmit, by a <NUM>th generation media streaming (5GMS)-aware application, a live-streaming request corresponding to the user-generated content to a 5GMS application provider (AP); receiving code configured to cause the at least one processor to recieve, by the 5GMS-aware application, from the 5GMS AP, an edge application server (EAS) profile corresponding to the live-streaming request, wherein the EAS profile indicates a service class (SC) from among a plurality of SCs, the SC corresponding to the live-streaming request; selecting code configured to cause the at least one processor to select, by the 5GMS-aware application, a 5GMS application server (AS) based on the SC; and performing code configured to cause the at least one processor to perform the live-streaming of the user-generated content over a SGMS network to the SGMS AS according to the SC.

According to one or more embodiments, a non-transitory computer-readable medium stores instructions including: one or more instructions that, when executed by one or more processors of a device for performing live-streaming of user-generated content over a media-streaming network, cause the one or more processors to: transmit, by a <NUM>th generation media streaming (5GMS)-aware application, a live-streaming request corresponding to the user-generated content to a 5GMS application provider (AP); receive, by the 5GMS-aware application, from the 5GMS AP, an edge application server (EAS) profile corresponding to the live-streaming request, wherein the EAS profile indicates a service class (SC) from among a plurality of SCs, the SC corresponding to the live-streaming request; select, by the 5GMS-aware application, a 5GMS application server (AS) based on the SC; and perform the live-streaming of the user-generated content over a 5GMS network to the 5GMS AS according to the SC.

<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>.

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 a media architecture <NUM> for media streaming according to embodiments. A 5GMS Application Provider <NUM> may use 5GMS for uplink streaming services or downlink 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 defined in 5GMS. The 5GMS Aware Application <NUM> may contain the service logic of the 5GMS application service, and may interact with other 5GMS client and network functions via the interfaces and APIs defined in the 5GMS architecture. 5GMS AS <NUM> may be an AS dedicated to <NUM> Media Uplink Streaming. 5GMS Client <NUM> may be a UE <NUM> internal function dedicated to <NUM> Media Uplink Streaming.

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

The media architecture <NUM> may connect UE <NUM> internal functions and related network functions for <NUM> Media Uplink 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 <NUM> and media streamer <NUM>. Media session handler <NUM> may communicate with the 5GMS AF <NUM> in order to establish, control and support the delivery of a media session. The Media Session Handler <NUM> may expose APIs that can be used by the 5GMS Aware Application <NUM>. Media Streamer <NUM> may communicate with 5GMS AS <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 Media Session Handler <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 AS <NUM> may host <NUM> media functions and may be implemented as a content delivery network (CDN), for example. 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 AF <NUM> may provide various control functions to the Media Session Handler <NUM> on the UE <NUM> and/or to 5GMS Application Provider <NUM>. 5GMS AF <NUM> may relay or initiate a request for different PCF <NUM> treatment or interact with other network functions. The 5GMS AF <NUM> may be connected to the PCF <NUM> by an N5 interface <NUM>.

Media architecture <NUM> may include a number of different interfaces. For example, link <NUM> may relate to M1u, which may be a 5GMS Provisioning API exposed by 5GMS AF <NUM> to provision usage of media architecture <NUM> and to obtain feedback. Link <NUM> may relate to M2u, which may be a 5GMS Publish API exposed by 5GMS AS <NUM> and used when 5GMS AS <NUM> in trusted DN, such as DN <NUM>, is selected to receive content for streaming service. Link <NUM> may relate to M3u, which may be an internal API used to exchange information for content hosting on 5GMS AS <NUM> within a trusted DN such as DN <NUM>. Link <NUM> may relate to M4u, which may be a Media Uplink Streaming API exposed by 5GMS AS <NUM> to Media Streamer <NUM> to stream media content. Link <NUM> may relate to M5u, which may be a Media Session Handling API exposed by 5GMS AF <NUM> to Media Session Handler for media session handling, control and assistance that also include appropriate security mechanisms e.g. authorization and authentication. Link <NUM> may relate to M6u, which may be a UE <NUM> Media Session Handling API exposed by Media Session Handler <NUM> to 5GMS Aware Application <NUM> to make use of 5GMS functions. Link <NUM> may relate to M7u, which may be a UE Media Streamer API exposed by Media Streamer <NUM> to 5GMS Aware Application <NUM> and Media Session Handler <NUM> to make use of Media Streamer <NUM>. Link <NUM> may relate to M8u, which 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>. The UE <NUM> may also be implemented in a self-contained manner such that interfaces M6u <NUM> and M7u <NUM> are not exposed.

<FIG> is a diagram of a <NUM> edge network architecture <NUM>, according to embodiments. Edge Data Network (EDN) <NUM> is a local Data Network. Edge Application Server (EAS) <NUM> and Edge Enabler Server (EES) <NUM> are contained within the EDN <NUM>. Edge Configuration Server (ECS) <NUM> provides configurations related to EES <NUM>, including details of EDN <NUM> hosting EES <NUM>. User Equipment (UE) <NUM> contains Application Client (AC) <NUM> and Edge Enabler Client (EEC) <NUM>. EAS <NUM>, EES <NUM> and ECS <NUM> may interact with the 3GPP Core Network <NUM>.

EES <NUM> provides supporting functions needed for EAS <NUM> and EEC <NUM>. Functionalities of EES <NUM> may include: provisioning of configuration information to EEC <NUM>, enabling exchange of application data traffic with EAS; supporting the functionalities of API invoker and API exposing function, for example as specified in 3GPP TS <NUM>; interacting with 3GPP Core Network <NUM> for accessing the capabilities of network functions either directly (e.g. via PCF) or indirectly (e.g. via Service Capability Exposure Function (SCEF)/NEF/SCEF+NEF); supporting the functionalities of application context transfer; supporting external exposure of 3GPP network and service capabilities to EASs <NUM> over link EDGE-<NUM>; supporting the functionalities of registration (i.e., registration, update, and de-registration) for EEC <NUM> and EAS; and supporting the functionalities of triggering EAS <NUM> instantiation on demand.

EEC <NUM> provides supporting functions needed for AC. Functionalities of EEC <NUM> may include: retrieval and provisioning of configuration information to enable the exchange of Application Data Traffic with EAS <NUM>; and discovery of EASs <NUM> available in the EDN <NUM>.

ECS <NUM> provides supporting functions needed for the EEC <NUM> to connect with an EES <NUM>. Functionalities of ECS <NUM> are: provisioning of Edge configuration information to the EEC <NUM>, for example the information for the EEC <NUM> to connect to the EES <NUM> (e.g. service area information applicable to LADN); and the information for establishing a connection with EESs <NUM> (such as URI); supporting the functionalities of registration (i.e., registration, update, and de-registration) for the EES <NUM>; supporting the functionalities of API invoker and API exposing function as specified in 3GPP TS <NUM>; and interacting with 3GPP Core Network <NUM> for accessing the capabilities of network functions either directly (e.g. PCF) or indirectly (e.g. via SCEF/NEF/SCEF+NEF).

AC <NUM> is the application resident in the UE <NUM> performing the client function.

EAS <NUM> is the application server resident in the EDN <NUM>, performing the server functions. The AC <NUM> connects to EAS <NUM> in order to avail the services of the application with the benefits of Edge Computing. It is possible that the server functions of an application are available only as an EAS <NUM>. However, it is also possible that certain server functions are available both at the edge and in the cloud, as an EAS <NUM> and an Application Server resident in the cloud respectively. The server functions offered by an EAS <NUM> and its cloud Application Server counterpart may be the same or may differ; if they differ, the Application Data Traffic exchanged with the AC may also be different. EAS <NUM> may consume the 3GPP Core Network <NUM> capabilities in different ways, such as: it may invoke 3GPP Core Network <NUM> function APIs directly, if it is an entity trusted by the 3GPP Core Network <NUM>; it may invoke 3GPP Core Network <NUM> capabilities through EES <NUM>; and it may invoke the 3GPP Core Network <NUM> capability through the capability exposure functions e.g., SCEF or NEF.

Architecture <NUM> may include a number of different interfaces for enabling edge applications, which may be referred to as reference points. For example, link EDGE-<NUM> may be a reference point which enables interactions between the EES <NUM> and the EEC <NUM>. It supports: registration and de-registration of EEC <NUM> to EES <NUM>; retrieval and provisioning of EAS <NUM> configuration information; and discovery of EASs <NUM> available in the EDN <NUM>.

Link EDGE-<NUM> may be a reference point which enables interactions between EES <NUM> and the 3GPP Core Network <NUM>. It supports: access to 3GPP Core Network <NUM> functions and APIs for retrieval of network capability information, e.g. via SCEF and NEF APIs as defined in 3GPP TS <NUM>, 3GPP TS <NUM>, 3GPP TS <NUM>, 3GPP TS <NUM>, 3GPP TS <NUM>; or with EES <NUM> deployed within the MNO trust domain (see 3GPP TS <NUM> clause <NUM>, 3GPP TS <NUM>, 3GPP TS <NUM>). Link EDGE-<NUM> may reuse 3GPP reference points or interfaces of EPS or SGS considering different deployment models.

Link EDGE-<NUM> may be a reference point which enables interactions between EES <NUM> and EASs <NUM>. It supports: registration of EASs <NUM> with availability information (e.g. time constraints, location constraints); de-registration of EASs <NUM> from EES <NUM>; discovery of target EAS <NUM> information to support application context transfer; providing access to network capability information (e.g. location information, Quality of Service (QoS) related information); and requesting the setup of a data session between AC and EAS <NUM> with a specific QoS.

Link EDGE-<NUM> may be a reference point which enables interactions between ECS <NUM> and EEC <NUM>. It supports: provisioning of Edge configuration information to the EEC <NUM>.

Link EDGE-<NUM> may be a reference point which enables interactions between AC and EEC <NUM>.

Link EDGE-<NUM> may be a reference point which enables interactions between ECS <NUM> and EES <NUM>. It supports: registration of EES <NUM> information to ECS <NUM>.

Link EDGE-<NUM> may be a reference point which enables interactions between EAS <NUM> and the 3GPP Core Network <NUM>. It supports: access to 3GPP Core Network <NUM> functions and APIs for retrieval of network capability information, e.g. via SCEF and NEF APIs as defined in 3GPP TS <NUM>, 3GPP TS <NUM>, 3GPP TS <NUM>, 3GPP TS <NUM>, 3GPP TS <NUM>; or with EAS <NUM> deployed within the MNO trust domain (see 3GPP TS <NUM> clause <NUM>, 3GPP TS <NUM>). Link EDGE-<NUM> may reuse 3GPP reference points or interfaces of EPS or SGS considering different deployment models.

Link EDGE-<NUM> may be a reference point which enables interactions between the ECS <NUM> and the 3GPP Core Network <NUM>. It supports: a) access to 3GPP Core Network <NUM> functions and APIs for retrieval of network capability information, e.g. via SCEF and NEF APIs as defined in 3GPP TS <NUM>, 3GPP TS <NUM>, 3GPP TS <NUM>, 3GPP TS <NUM>, 3GPP TS <NUM>; and with the ECS <NUM> deployed within the MNO trust domain (see 3GPP TS <NUM> clause <NUM>, 3GPP TS <NUM>). Link EDGE-<NUM> may reuse 3GPP reference points or interfaces of EPS or 5GS considering different deployment models.

The AC <NUM> may send an inquiry to the EES <NUM> through the EEC <NUM>, to discover the suitable EASs. In this inquiry, the AC <NUM> includes EAS discovery filters that define the desired characteristics of the suitable EAS. In the response, the EEC <NUM> provides the AC <NUM> the list of matching EASs and some of their characteristics. The AC <NUM> then selects the best EAS from the list.

<FIG> is a diagram of a <NUM> media streaming architecture <NUM> for enabling edge applications, according to embodiments. The 5GMS Application Provider <NUM>, 5GMS Aware Application <NUM>, UE <NUM>, 5GMS client <NUM>, 5GMS AS <NUM>, 5GMS AF <NUM>, DN <NUM>, NEF <NUM>, media session handler <NUM>, media streamer <NUM>, and PCF <NUM>, along with interfaces M1 <NUM>, M2 <NUM>, M3 <NUM>, M4 <NUM>, M5 <NUM>, M6 <NUM>, M7 <NUM>, M8 <NUM>, N5 <NUM> and N33 <NUM> are similar to their counterparts in <FIG> and therefore the detailed description of these components will be omitted.

The architecture <NUM> includes an EES <NUM> as part of the 5GMS AF <NUM>, an EAS <NUM> on the DN <NUM>, an EEC <NUM> as part of the media session handler <NUM>, and an ECS <NUM>. The EEC <NUM> is connected to the EES <NUM> by the Edge-<NUM> interface <NUM>. The EAS <NUM> is connected to the EES <NUM> by the Edge-<NUM> interface <NUM>. The EEC <NUM> is connected to the ECS <NUM> by the Edge-<NUM> interface <NUM>. The EEC <NUM> is connected to the 5GMS Aware Application <NUM> by the Edge-<NUM> interface <NUM>. The ECS <NUM> is connected to the EES <NUM> by the Edge-<NUM> interface <NUM>. Lastly, the Edge-<NUM> interface <NUM> is connected to the EES <NUM>.

In <FIG>, the 5GMS Application Provider (AP) requests to 5GMS AF the provisioning of the session using the M1 interface. Then, through the same interface, AP requests provisioning of different session features including server certificate, content preparation, content hosting configuration, reporting, consumption reporting, policy, and others.

In <FIG>, the SGMS Application Provider (AP) requests to SGMS AF the provisioning of the session using the M1 interface. Then, through the same interface, AP requests provisioning of different session features including server certificate, content preparation, content hosting configuration, reporting, consumption reporting, policy, and others.

As discussed above, the current <NUM> Edge architecture defined in 3GPP TS23. <NUM> only defines the discovery of the edge application by Application clients. The 3GPP TS26. <NUM> only defines the media streaming architecture. The 3GPP SWG4 recently developed an architecture for running <NUM> media applications on <NUM> edge servers by combining the two architectures.

Accordingly, embodiments may provide a method of using the above architecture for running live streaming services for user-generated content.

In embodiments, an example use case may correspond to user-generated live streaming. The use-case can be summarized as the following. A social influencer starts a live captured media session and publishes the content through <NUM> Media Uplink Streaming. The content is then distributed live to several or many viewers through <NUM> Media Downlink Streaming.

Embodiments may provide several usage scenarios with various configuration options which may change during the live session. For example:.

According to embodiments, in a simple reference scenario of <NUM> Media Uplink and Downlink Streaming, one or more of the following aspects may be supported:.

In embodiments, one or more of the following aspects may be important for the service:.

Accordingly, embodiments may make use of service classes that may define the set of services offered to a user. For example, user-generated live streaming use case covers scenarios where various processing may occur depending on a requested class of service. In many sessions, the service may occur in the cloud or at an edge close to the capturing device. In this use case, an Application Provider, for example SGMS Application Provider <NUM>, may define various classes of service.

Each class of service, which may be referred to as a Service Class, may provide a content preparation process that supports one or more specific features from the list below:.

For each SC, a set of Service Class Requirements (SCR) may be defined for a 5GMS AS running the service, which may include one or more of the following aspects:.

In order to set up the service, the Application Provider may maintain three objects:.

<FIG> shows an example of a high-level call flow for the use case discussed above.

First, at operation <NUM>, the 5GMS Application Provider (AP) <NUM> requests provisioning a session for user-generated live stream service.

At operation <NUM>, the 5GMS-Aware Application <NUM> requests the start of service from the 5GMS AP <NUM>.

At operation <NUM>, the 5GMS AP <NUM>, using the user's SC, SCR, and SGD in its database and the current user location, may transmits the 5GMS-Aware Application an EAS Profile (for example as defined in TS23. <NUM> section <NUM>.

At operation <NUM>, the 5GMS-Aware Application <NUM> requests locating a server that can provide the class of service which the user is signed up for, and MSH <NUM> and EEC <NUM> may assist in locating such a server.

At operation <NUM>, a new 5GMS AS may be provisioned if needed. Operation <NUM> may be performed by one or more of 5GMS AF <NUM>, EES <NUM>, and ECS <NUM>.

At operation <NUM>, the 5GMS AF may provide the list of suitable 5GMS AS and their information to one or more of MSH <NUM>, EEC <NUM>, and 5GMS-Aware Application <NUM>.

At operation <NUM>, one or more of MSH <NUM>, EEC <NUM>, and 5GMS-Aware Application <NUM> may select a preferred 5GMS AS instance based for example on the user class of service or SC and the user's location.

At operation <NUM>, the uplink streaming may be performed. The media may be uplink streamed to the 5GMS AS, and the content may be prepared according to the SCR and is delivered to distribution (CDN).

In embodiments corresponding to this use case, the relocation of 5GMS AS may occur due to various reasons, for example:.

In any of the above cases, the service may need to be transferred to a new 5GMS AS. The relocation may be performed according to TS23. <NUM> using the ACR detection entity in Table <NUM>.

Accordingly, embodiments may relate to a method for live streaming of user-generated content on <NUM> networks, wherein the content preparation is performed on the <NUM> edge server, wherein various services classes are offered, wherein in each class of service, a set of content preparation processing is defined and for that class of service, and a set of service class requirements is defined, wherein the application on the user device uses these requirements to locate and discover the appropriate <NUM> edge servers to run the service, and chooses the best one based on additional information provided by the <NUM> edge servers, such as their location, efficiency, cost, and other parameters, wherein the service can be relocated to a new edge server based on various reasons.

<FIG> is a flowchart is an example process <NUM> for enabling edge applications, according to embodiments. In some implementations, one or more process blocks of <FIG> may be performed by any of the elements discussed above with respect to <FIG>.

As shown in <FIG>, process <NUM> may include transmitting, by a <NUM>th generation media streaming (SGMS)-aware application, a live-streaming request corresponding to the user-generated content to a SGMS application provider (AP) (block <NUM>).

As further shown in <FIG>, process <NUM> may include receiving, by the SGMS-aware application, an edge application server (EAS) profile corresponding to the live-streaming request from the SGMS AP, wherein the EAS profile indicates a service class (SC) corresponding to the live-streaming request from among a plurality of SCs (block <NUM>).

As further shown in <FIG>, process <NUM> may include selecting, by the 5GMS-aware application, a SGMS application server (AS) based on the SC (block <NUM>).

As further shown in <FIG>, process <NUM> may include performing the live-streaming of the user-generated content over the media streaming network, for example a SGMS network, to the SGMS AS according to the SC (block <NUM>).

In embodiments, the selecting may further include transmitting, by the SGMS-aware application to a SGMS application function (AF), a request to locate at least one AS corresponding to the SC; receiving, by the SGMS-aware application from the SGMS AF, a list of the at least one SGMS AS corresponding to the SC; and selecting the SGMS AS from the list based on the SC.

In embodiments, the SC may specify a content preparation process supporting at least one from among upscaling, light correction, stabilization, audio quality improvement, dubbing, captioning, overlaying, tagging, indexing, key feature detection, navigation improvement, multirate encoding, content-aware encoding, low latency encoding, just-in-time encoding, transcoding multi-path encoding for on-demand content, splicing content, manifest signaling, ad insertion queues, ad-insertion information, language setting, service metadata, content protection, and digital rights management.

In embodiments, the EAS profile may further indicate a service class requirement (SCR) corresponding to the SC, and the SGMS AS may be selected based on the SCR.

In embodiments, the SC and the SCR may be stored in database corresponding to the SGMS AP.

In embodiments, the SCR may specify at least one from among a hardware resource corresponding to the SC, a connectivity parameter corresponding to the SC, an availability corresponding to the SC, and a function corresponding to the SC.

In embodiments, the EAS profile may further indicate a scale and geographical distribution (SGD) corresponding to the SC, wherein the SGD indicates at least one of an audience size and an audience location, and wherein the SGMS AS is selected based on the SGD and a location of a user corresponding to the live-streaming request.

In embodiments, based on the SGMS-aware application determining that the SC changed to a new SC, process <NUM> may further include selecting a new SGMS AS corresponding to the new SC, and performing the live-streaming of the user-generated content to the new SGMS AS according to the new SC.

Further, the proposed methods may be implemented by processing circuitry (e.g., one or more processors or one or more integrated circuits). In one example, the one or more processors execute a program that is stored in a non-transitory computer-readable medium to perform one or more of the proposed methods.

The techniques described above can be implemented as computer software using computer-readable instructions and physically stored in one or more computer-readable media.

Embodiments of the present disclosure may be used separately or combined in any order. Further, each of the embodiments (and methods thereof) may be implemented by processing circuitry (e.g., one or more processors or one or more integrated circuits). In one example, the one or more processors execute a program that is stored in a non-transitory computer-readable medium.

Even though combinations of features are recited in the claims and/or disclosed in the specification, these combinations are not intended to limit the disclosure of possible implementations. Although each dependent claim listed below may directly depend on only one claim, the disclosure of possible implementations includes each dependent claim in combination with every other claim in the claim set.

Claim 1:
A method for performing live-streaming of user-generated content over a media-streaming network, the method comprising:
transmitting (<NUM>), by a <NUM>th generation media streaming, 5GMS,-aware application, a live-streaming request corresponding to the user-generated content to a SGMS application provider, AP;
receiving (<NUM>), by the SGMS-aware application, from the SGMS AP, an edge application server, EAS, profile corresponding to the live-streaming request, wherein the EAS profile indicates a service class, SC, from among a plurality of SCs, the SC corresponding to the live-streaming request;
selecting (<NUM>), by the 5GMS-aware application, a SGMS application server, AS, based on the SC; and
performing (<NUM>) the live-streaming of the user-generated content over a SGMS network to the SGMS AS according to the SC.