WO2025201903A1 - Congestion-aware media streaming - Google Patents
Congestion-aware media streamingInfo
- Publication number
- WO2025201903A1 WO2025201903A1 PCT/EP2025/056898 EP2025056898W WO2025201903A1 WO 2025201903 A1 WO2025201903 A1 WO 2025201903A1 EP 2025056898 W EP2025056898 W EP 2025056898W WO 2025201903 A1 WO2025201903 A1 WO 2025201903A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- network
- media
- media content
- network congestion
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
A method is provided that includes delivering media content over at least one network to at least one client during at least one media streaming session. The method includes receiving network congestion information reported by the at least one client, the network congestion information based on indications of network congestion received from the at least one client by the at least one without the at least one network dropping packets of the media content. The method includes determining a level of network congestion based on the network congestion information from the at least one client. And the method includes performing at least one congestion control operation for the at least one media streaming session, or at least one new media streaming session, according to the level of network congestion. A corresponding apparatus is also provided.
Description
CONGESTION-AWARE MEDIA STREAMING TECHNOLOGICAL FIELD [0001] The present disclosure relates generally to telecommunications and, in particular, to media streaming over a telecommunications system. BACKGROUND [0002] A telecommunications system can be seen as a facility that enables communication sessions between two or more entities such as user terminals, base stations and/or other nodes by providing carriers between the various entities involved in the communications path. A telecommunications system can be provided for example by means of a communication network and one or more compatible communication devices. The communication sessions may comprise, for example, communication of data for carrying communications such as voice, video, electronic mail (email), text message, multimedia and/or content data and so on. Non-limiting examples of services provided comprise two-way or multi-way calls, data communication or multimedia services and access to a data network system, such as the Internet. [0003] In a wireless telecommunications system at least a part of a communication session between at least two stations occurs over a wireless link. Examples of wireless systems comprise public land mobile networks (PLMN), satellite based communication systems and different wireless local networks, for example wireless local area networks (WLAN). Some wireless systems can be divided into cells, and are therefore often referred to as cellular systems. [0004] A user can access the telecommunications system by means of an appropriate communication device or terminal. A communication device of a user may be referred to as user equipment (UE) or user device. A communication device is provided with an appropriate signal receiving and transmitting apparatus for enabling communications, for example enabling access to a communication network or communications directly with other users. The communication device may access a carrier provided by a station, for example a base station of a cell, and transmit and/or receive communications on the carrier. [0005] The telecommunications system and associated devices typically operate in accordance with a given standard or specification which sets out what the various entities associated with the system are permitted to do and how that should be achieved. Communication protocols and/or parameters which shall be used for the connection are also
typically defined. One example of a telecommunications system is the Universal Mobile Telecommunications System (UMTS). Other examples of telecommunications systems are Long-Term Evolution (LTE), LTE Advanced and the so-called 5G or New Radio (NR) networks. NR is being standardized by the 3rd Generation Partnership Project (3GPP). BRIEF SUMMARY [0006] Example implementations of the present disclosure are directed to telecommunications and, in particular, to media streaming over a telecommunications system. Even more particularly, example implementations of the present disclosure provide congestion-aware media streaming in which indications of network congestion signaled or otherwise provided by one or more networks without dropping packets may be used to perform one or more congestion control operation(s). The present disclosure includes, without limitation, the following example implementations. [0007] Some example implementations provide an apparatus comprising: at least one memory configured to store instructions; and at least one processing circuitry configured to access the at least one memory, and execute the instructions to cause the apparatus to at least: deliver media content over at least one network to at least one client during at least one media streaming session; receive network congestion information reported by the at least one client, the network congestion information based on indications of network congestion received from the at least one client by the at least one network without the at least one network dropping packets of the media content; determine a level of network congestion based on the network congestion information from the at least one client; and perform at least one congestion control operation for the at least one media streaming session, or at least one new media streaming session, according to the level of network congestion. [0008] Some example implementations provide an apparatus comprising: means for delivering media content over at least one network to at least one client during at least one media streaming session; means for receiving network congestion information reported by the at least one client, the network congestion information based on indications of network congestion received from the at least one client by the at least one without the at least one network dropping packets of the media content; means for determining a level of network congestion based on the network congestion information from the at least one client; and means for performing at least one congestion control operation for the at least one media streaming session, or at least one new media streaming session, according to the level of network congestion.
[0009] Some example implementations provide a method comprising: delivering media content over at least one network to at least one client during at least one media streaming session; receiving network congestion information reported by the at least one client, the network congestion information based on indications of network congestion received from the at least one client by the at least one without the at least one network dropping packets of the media content; determining a level of network congestion based on the network congestion information from the at least one client; and performing at least one congestion control operation for the at least one media streaming session, or at least one new media streaming session, according to the level of network congestion. [0010] Some example implementations provide a computer-readable storage medium that is non-transitory and has instructions stored therein that, in response to execution by at least one processing circuitry, causes an apparatus to at least: deliver media content over at least one network to at least one client during at least one media streaming session; receive network congestion information reported by the at least one client, the network congestion information based on indications of network congestion received from the at least one client by the at least one network without the at least one network dropping packets of the media content; determine a level of network congestion based on the network congestion information from the at least one client; and perform at least one congestion control operation for the at least one media streaming session, or at least one new media streaming session, according to the level of network congestion. [0011] Some example implementations provide an apparatus comprising: at least one memory configured to store instructions; and at least one processing circuitry configured to access the at least one memory, and execute the instructions to cause the apparatus to at least: receive media content delivered by an application server over at least one network during a media streaming session; receive indications of network congestion from the at least one without the at least one network dropping packets of the media content; determine network congestion information based on the indications of network congestion received from the at least one network; and report the network congestion information to the application server for performance of at least one congestion control operation for the media streaming session according to a level of network congestion based on the network congestion information. [0012] Some example implementations provide an apparatus comprising: means for receiving media content delivered by an application server over at least one network during a media streaming session; means for receiving indications of network congestion from the at least one without the at least one network dropping packets of the media content; means for
determining network congestion information based on the indications of network congestion received from the at least one network; and means for reporting the network congestion information to the application server for performance of at least one congestion control operation for the media streaming session according to a level of network congestion based on the network congestion information. [0013] Some example implementations provide a method comprising: receiving media content delivered by an application server over at least one network during a media streaming session; receiving indications of network congestion from the at least one without the at least one network dropping packets of the media content; determining network congestion information based on the indications of network congestion received from the at least one network; and reporting the network congestion information to the application server for performance of at least one congestion control operation for the media streaming session according to a level of network congestion based on the network congestion information. [0014] Some example implementations provide a computer-readable storage medium that is non-transitory and has instructions stored therein that, in response to execution by at least one processing circuitry, causes an apparatus to at least: receive media content delivered by an application server over at least one network during a media streaming session; receive indications of network congestion from the at least one without the at least one network dropping packets of the media content; determine network congestion information based on the indications of network congestion received from the at least one network; and report the network congestion information to the application server for performance of at least one congestion control operation for the media streaming session according to a level of network congestion based on the network congestion information. [0015] Some example implementations provide an apparatus comprising: at least one memory configured to store instructions; and at least one processing circuitry configured to access the at least one memory, and execute the instructions to cause the apparatus to at least: initiate a media streaming session to receive media content delivered by an application server over at least one network; access network congestion information for the media streaming session, the network congestion information determined based on indications of network congestion received from at least one without the at least one network dropping packets transported through the at least one network; and perform at least one congestion control operation for the media streaming session based on the network congestion information. [0016] Some example implementations provide an apparatus comprising: means for initiating a media streaming session for receiving media content delivered by an application server over
at least one network; means for accessing network congestion information for the media streaming session, the network congestion information determined based on indications of network congestion received from at least one without the at least one network dropping packets transported through the at least one network; and means for performing at least one congestion control operation for the media streaming session based on the network congestion information. [0017] Some example implementations provide a method comprising: initiating a media streaming session for receiving media content delivered by an application server over at least one network; accessing network congestion information for the media streaming session, the network congestion information determined based on indications of network congestion received from at least one without the at least one network dropping packets transported through the at least one network; and performing at least one congestion control operation for the media streaming session based on the network congestion information. [0018] Some example implementations provide a computer-readable storage medium that is non-transitory and has instructions stored therein that, in response to execution by at least one processing circuitry, causes an apparatus to at least: initiate a media streaming session to receive media content delivered by an application server over at least one network; access network congestion information for the media streaming session, the network congestion information determined based on indications of network congestion received from at least one without the at least one network dropping packets transported through the at least one network; and perform at least one congestion control operation for the media streaming session based on the network congestion information. [0019] These and other features, aspects, and advantages of the present disclosure will be apparent from a reading of the following detailed description together with the accompanying figures, which are briefly described below. The present disclosure includes any combination of two, three, four or more features or elements set forth in this disclosure, regardless of whether such features or elements are expressly combined or otherwise recited in a specific example implementation described herein. This disclosure is intended to be read holistically such that any separable features or elements of the disclosure, in any of its aspects and example implementations, should be viewed as combinable unless the context of the disclosure clearly dictates otherwise. [0020] It will therefore be appreciated that this Brief Summary is provided merely for purposes of summarizing some example implementations so as to provide a basic understanding of some aspects of the disclosure. Accordingly, it will be appreciated that the
above described example implementations are merely examples and should not be construed to narrow the scope or spirit of the disclosure in any way. Other example implementations, aspects and advantages will become apparent from the following detailed description taken in conjunction with the accompanying figures which illustrate, by way of example, the principles of some described example implementations. BRIEF DESCRIPTION OF THE FIGURE(S) [0021] Having thus described example implementations of the disclosure in general terms, reference will now be made to the accompanying figures, which are not necessarily drawn to scale, and wherein: [0022] FIG. 1 illustrates a telecommunications system that includes one or more public land mobile networks (PLMNs) coupled to one or more external data networks, according to some example implementations of the present disclosure; [0023] FIG. 2 illustrates a deployment of a PLMN, according to some example implementations; [0024] FIG. 3 more particularly depicts aspects of the deployment of FIG. 2, according to some example implementations; [0025] FIG. 4 illustrates the 5G Media Streaming (5GMS) architecture for unicast downlink media streaming, according to some example implementations; [0026] FIG. 5 illustrates a 5GMS deployment for downlink media streaming sessions, according to some example implementations; [0027] FIG. 6 is a signaling chart of 5GMS downlink (5GMSd) session initialization and streaming session procedures, according to some example implementations; [0028] FIGS. 7A, 7B, 7C, 7D, 7E, 7F, 7G and 7H are flowcharts illustrating various steps in a method according to various example implementations; [0029] FIGS. 8A, 8B, 8C, 8D, 8E and 8F are flowcharts illustrating various steps in a method according to various example implementations; [0030] FIGS. 9A, 9B, 9C, 9D, 9E, 9F, 9G, 9H and 9I are flowcharts illustrating various steps in a method according to various example implementations; and [0031] FIG. 10 illustrates an apparatus according to some example implementations. DETAILED DESCRIPTION [0032] Some implementations of the present disclosure will now be described more fully hereinafter with reference to the accompanying figures, in which some, but not all implementations of the disclosure are shown. Indeed, various implementations of the disclosure may be embodied in many different forms and should not be construed as limited
to the implementations set forth herein; rather, these example implementations are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art. Like reference numerals refer to like elements throughout. [0033] Unless specified otherwise or clear from context, references to first, second or the like should not be construed to imply a particular order. A feature described as being above another feature (unless specified otherwise or clear from context) may instead be below, and vice versa; and similarly, features described as being to the left of another feature else may instead be to the right, and vice versa. Also, while reference may be made herein to quantitative measures, values, geometric relationships or the like, unless otherwise stated, any one or more if not all of these may be absolute or approximate to account for acceptable variations that may occur, such as those due to engineering tolerances or the like. [0034] As used herein, unless specified otherwise or clear from context, the “or” of a set of operands is the “inclusive or” and thereby true if and only if one or more of the operands is true, as opposed to the “exclusive or” which is false when all of the operands are true. Thus, for example, “[A] or [B]” is true if [A] is true, or if [B] is true, or if both [A] and [B] are true. Further, the articles “a” and “an” mean “one or more,” unless specified otherwise or clear from context to be directed to a singular form. Furthermore, it should be understood that unless otherwise specified, the terms “data,” “content,” “digital content,” “information,” and similar terms may be at times used interchangeably. The term “network” may refer to a group of interconnected computers including clients and servers; and within a network, these computers may be interconnected directly or indirectly by various means including via one or more switches, routers, gateways, access points or the like. [0035] Reference may be made herein to terms specific to a particular system, architecture or the like, but it should be understood that example implementations of the present disclosure may be equally applicable to any of a number of systems, architectures and the like. For example, reference may be made to 3GPP technologies such as Global System for Mobile Communications (GSM), UMTS, LTE, LTE Advanced, 5G NR, 5G Advanced and 6G; however, it should be understood that example implementations of the present disclosure may be equally applicable to non-3GPP technologies such as IEEE 802, Bluetooth and Bluetooth Low Energy. [0036] Further, as used in this application, the term “circuitry” may refer to one or more or all of the following: (a) hardware-only circuit implementations (such as implementations in only analog and/or digital circuitry); (b) combinations of hardware circuits and software, such as
(as applicable): (i) a combination of analog and/or digital hardware circuit(s) with software/firmware and (ii) any portions of hardware processor(s) with software (including digital signal processor(s)), software, and memory(ies) that work together to cause an apparatus, such as a mobile phone or server, to perform various functions); or (c) hardware circuit(s) and/or processor(s), such as a microprocessor(s) or a portion of a microprocessor(s), that requires software (e.g., firmware) for operation, but the software may not be present when it is not needed for operation. [0037] The above definition of circuitry applies to all uses of this term in this application, including in any claims. As a further example, as used in this application, the term circuitry also covers an implementation of merely a hardware circuit or processor (or multiple processors) or portion of a hardware circuit or processor and its (or their) accompanying software and/or firmware. The term circuitry also covers, for example and if applicable to the particular claim element, a baseband integrated circuit or processor integrated circuit for a mobile device or a similar integrated circuit in server, a cellular network device, or other computing or network device. [0038] FIG. 1 illustrates a telecommunications system 100 according to various example implementations of the present disclosure. The telecommunications system generally includes one or more telecommunications networks. As shown, for example, the system includes one or more public land mobile networks (PLMNs) 102 coupled to one or more other external data networks 104 – notably including a wide area network (WAN) such as the Internet. Each of the PLMNs includes a core network (CN) 106 backbone such as the Evolved Packet Core (EPC) of LTE, the 5G core network (5GC) or the like; and each of the core networks and the Internet are coupled to one or more radio access networks (RANs) 108, air interfaces or the like that implement one or more radio access technologies (RATs). As used herein, a “network device” refers to any suitable device at a network side of a telecommunications network. Examples of suitable network devices are described in greater detail below. [0039] In addition, the system includes one or more radio units that may be varyingly known as user equipment (UE) 110, terminal device, terminal equipment, mobile station or the like. The UE is generally a device configured to communicate with a network device or a further UE in a telecommunication network. The UE may be a portable computer (e.g., laptop, notebook, tablet computer), mobile phone (e.g., cell phone, smartphone), wearable computer (e.g., smartwatch), or the like. In other examples, the UE may be an Internet of Things (IoT) device, an industrial IoT (IIoT device), a vehicle equipped with a vehicle-to- everything (V2X) communication technology, or the like. In some examples, as referenced by
3GPP, the UE may be a narrowband IoT (NB-IoT) device, an enhanced machine-type communication (eMTC) device, a reduced capability (RedCap) device, an ambient IoT device, or the like. [0040] In operation, these UEs may be configured to connect to one or more of the RANs 108 according to their particular radio access technologies to thereby access a particular CN 106 of a PLMN 102, or to access one or more of the external data networks 104 (e.g., the Internet). The external data network may be configured to provide Internet access, operator services, 3rd party services, etc. For example, the International Telecommunication Union (ITU) has classified 5G mobile network services into three categories: enhanced mobile broadband (eMBB), ultra-reliable and low-latency communications (URLLC), and massive machine type communications (mMTC) or massive internet of things (MIoT). [0041] Examples of radio access technologies include 3GPP radio access technologies such as GSM, UMTS, LTE, LTE Advanced, 5G NR, 5G Advanced, and 6G. Other examples of radio access technologies include IEEE 802 technologies such as IEEE 802.11 (Wi-Fi), IEEE 802.15 (including 802.15.1 (WPAN/Bluetooth), 802.15.4 (Zigbee) and 802.15.6 (WBAN)), Bluetooth, Bluetooth Low Energy (BLE), ultra wideband (UWB), and the like. Generally, a radio access technology may refer to any 2G, 3G, 4G, 5G, 6G or higher generation mobile communication technology and their different versions, as well as to any other wireless radio access technology that may be arranged to interwork with such a mobile communication technology to provide access to the CN 106 of a mobile network operator (MNO). [0042] In various examples, a RAN 108 may be configured as one or more macrocells, microcells, picocells, femtocells or the like. The RAN may generally include one or more radio access nodes that are configured to interact with UEs 110. In various examples, a radio access node may be referred to as a base station (BS), access point (AP), base transceiver station (BTS), Node B (NB), evolved NB (eNB), macro BS, NB (MNB) or eNB (MeNB), home BS, NB (HNB) or eNB (HeNB), next generation NB (gNB), enhanced gNB (en-gNB), next generation eNB (ng-eNB), or the like. The RAN may include some type of network controlling/governing entity responsible for control of the radio access nodes. The network controlling/governing entity and radio access node may be separate or integrated into a single apparatus. The network controlling/governing entity may include processing circuity configured to carry out various management functions, etc. The processing circuity may be associated with a memory, computer-readable storage medium or database for maintaining information required in the management functions.
[0043] A RAN 108 may be centralized or distributed. In various examples, components of a RAN may be interconnected by Ethernet, Gigabit Ethernet, Asynchronous Transfer Mode (ATM), optical fiber, dark fiber, passive wavelength division multiplexing (WDM), WDM passive optical network (WDM-PON), optical transport network (OTN), time sensitive networking (TSN) and/or any other data link layer network, possibly including radio links. The RAN may be connected to a CN 106 through one or more gateways, network functions or the like. [0044] As will be appreciated, a PLMN 102 may be deployed in a number of different manners. In a 4G LTE deployment, the EPC is the CN 106, and the evolved UMTS terrestrial radio access network (E-UTRAN) is the RAN 108; and the E-UTRAN includes one or more eNBs (radio access nodes) configured to connect UEs 110 to the E-UTRAN to thereby access the EPC. FIG.2 illustrates a deployment 200, such as a 5G or 6G deployment. As shown, the 5GC 202 is the CN, and the next generation (NG) radio access network (NG-RAN) 204 is the RAN; and the NG-RAN includes one or more gNBs 206 (radio access nodes) configured to connect UEs 208 to the NG-RAN to thereby access the 5GC. The term ‘gNB’ in 5G may correspond to the eNB in 4G LTE. [0045] Some 4G LTE and 5G deployments are considered standalone (SA) deployments. Other deployments combine 4G LTE and 5G technologies, and are referred to as non- standalone (NSA) deployments. In some deployments, the E-UTRAN includes one or more ng-eNBs that are configured to communicate with the 5GC, and that may also be configured to communicate with one or more gNBs. Similarly, in another deployment, the NG-RAN may include one or more en-gNBs that are configured to communicate with the EPC, and that may also be configured to communicate with one or more eNBs. In various instances, a single UE 110, a dual-mode or multimode UE, may support multiple (two or more) RANs—thereby being configured to connect to multiple RANs, such as 4G LTE and 5G. [0046] FIG. 3 more particularly depicts aspects of the deployment 200 for a MNO, according to some example implementations. As shown, the deployment includes the 5GC 202, and NG-RAN 204 with one or more gNBs 206 configured to connect UEs 208 to the NG-RAN to thereby access the 5GC. The 5GC may include a number of network functions (NFs) divided between the control plane and the user plane. In particular, the 5GC may include, for example, an access and mobility management function (AMF) 302, a session management function (SMF) 304, a user plane function (UPF) 306, a policy and charging function (PCF) 308, a network exposure function (NEF) 310, and/or an application function (AF) 312. Other examples of suitable NFs include a network repository function (NRF), a network slice
selection function (NSSF), a unified data management (UDM), or the like. Also shown is a server hosting an application, referred to as application server (AS) 314. [0047] In the control plane, the AMF 302 is configured to provide UE-based authentication, authorization, mobility management, etc. The PCF 308 may be responsible for policy enforcement and management, controlling Quality of Service (QoS), charging, and resource allocation for subscribers. The PCF may facilitate efficient resource utilization, optimizing network performance, and delivering a quality user experience. [0048] The SMF 304 is configured to provide various functionality including session management (SM), UE Internet Protocol (IP) address allocation and management, selection and control of UPF(s) 306, control part of policy application and QoS, lawful intercept, termination of SM parts of NAS messages, Downlink Data Notification (DNN), roaming functionality, handle local enforcement to apply QoS for Service Level Agreements (SLAs), charging data collection and charging interface, etc. If the UE 208 has multiple sessions, different SMFs may be allocated to each session to manage them individually and possibly provide different functionalities per session. [0049] The UPF 306 supports various user plane operations and functionalities, such as packet routing and forwarding, traffic handling (e.g., applying QoS policies), an anchor point for intra-RAT/inter-RAT mobility (when applicable), packet inspection and policy rule application, lawful intercept (UP collection), traffic accounting and reporting, etc. The UPF is the point of interconnect between the 5GC and at least one external data network (DN) 316 (i.e., point of ingress or egress for a DN), and routes packets to and from the DN. The DN may be configured to provide Internet access, operator services, 3rd party services, etc. [0050] The AF 312 may interact with the 5GC 202 to enable the deployment of specific services and applications. The AF communicates with other NFs to request and manage network resources, ensuring that the network adapts to the requirements of different applications and services. The NEF 310 allows authorized third-party applications and services to access specific network functions and services in a controlled manner. The NEF enables the exposure of network capabilities to external entities, fostering innovation and the development of new services. [0051] In some deployments, such as deployment 200, operations of the gNB 206 or other radio access node may be carried out, at least partly, in a central/centralized unit (CU), such as a server, host or node, operationally coupled to a distributed unit (DU), such as a radio head/node. It is also possible that node operations may be distributed among a plurality of servers, hosts or nodes. It should also be understood that the distribution of work between
5GC 202 (or other CN) operations and gNB (or other radio access node) operations may vary depending on implementation. [0052] A 5G network architecture may be based on a so-called CU-DU split. One gNB-CU (central node) may control one or more gNB-DUs. The gNB-CU may control a plurality of spatially separated gNB-DUs, acting at least as transmit/receive (Tx/Rx) nodes. In some example implementations, however, the gNB-DUs (also called DU) may include, for example, a radio link control (RLC), medium access control (MAC) layer and a physical (PHY) layer, whereas the gNB-CU (also called a CU) may include the layers above the RLC layer, such as a packet data convergence protocol (PDCP) layer, a radio resource control (RRC), and an IP layer. Other functional splits are also possible. It is considered that a skilled person is familiar with the open systems interconnection (OSI) model and the functionalities within each layer. [0053] In some example implementations, the server or CU may generate a virtual network through which the server communicates with the radio node. In general, virtual networking may involve a process of combining hardware and software network resources and network functionality into a single, software-based administrative entity, a virtual network. Such virtual network may provide flexible distribution of operations between the server and the radio head/node. In practice, any digital signal processing task may be performed in either the CU or the DU, and the boundary where the responsibility is shifted between the CU and the DU may be selected according to implementation. [0054] In 3GPP, the 5G Media Streaming (5GMS) architecture supports enhanced media streaming in the 5G system, such as for dynamic and adaptive streaming over HTTP (DASH), HTTP live streaming (HLS) and the like. In this context, streaming refers to the delivery of time-continuous media as the predominant media. The media is predominantly sent only in a single direction, such as downlink to a UE 110 at which the media is consumed as the media is received. Media content may be produced before being streamed (on-demand streaming), or media content may be streamed as the media content is produced (live streaming). Streaming media content may also be delivered in non-real time and stored for later consumption on demand. In various deployments, for example, the 5GMS architecture supports MNO and third-party downlink media streaming services, and related network and UE functions and application programming interfaces (APIs). [0055] FIG. 4 illustrates the 5GMS architecture 400 for unicast downlink media streaming, according to some example implementations. As shown, the 5GMS architecture for unicast downlink media streaming includes three main functions, namely, a 5GMS downlink
(5GMSd) AF 402 (e.g., AF 312), a 5GMSd AS 404 (e.g., AS 314), and a 5GMSd client 406. The 5GMSd client may include a media session handler 408 a media player 410. Also shown is a 5GMSd application provider 412 configured to use 5GMS for streaming services. The 5GMSd application provider may provide a 5GMS aware-application 414 on the UE to make use of the 5GMS client and NFs using interfaces and APIs defined in 5GMS. [0056] The 5GMSd AF 402 is an AF 312 dedicated to downlink 5G media streaming. The 5GMSd AF interfaces to the 5GMSd application provider 412 via the reference point M1d (5GMSd provisioning API), and the 5GMSd AF interfaces to the media session handler 408 via the reference point M5d (media session handling API). The 5GMS AF may also interface to the 5GMS AS 404 via the reference point M3d. The 5GMSd AF provides various control functions to the 5GMSd application provider and/or the media session handler. The 5GMSd AM may also relay or initiate a request for different treatment from the PCF 308 using reference point N33 of the 5G system, or interact with other NFs via the NEF 310 using reference point N5 of the 5G system. [0057] The 5GMSd AS 404 is an AS 314 dedicated to downlink 5G media streaming. The 5GMSd AS interfaces to the 5GMSd application provider 412 via the reference point M2d (5GMSd ingest API), and the 5GMSd AS interfaces to the media player 410 via the reference point M4d (media streaming APIs). The 5GMSd AS hosts 5G media functions, such as enabling the media player to stream media content in real time or download media content in non-real time. The 5GMS AS supports a number of features, including content hosting features such as ingesting media content from the 5GMSd application provider, caching media content, content preparation geographic restrictions on content access by the media player (“geofencing”), and the like. The 5GMSd may be realized in a number of different manners, including the distribution of 5GMSd AS functionality between different physical hosts or servers, such as in a content delivery network (CDN). [0058] The 5GMSd client 406 is an internal function of the UE 208 that is dedicated to downlink 5G media streaming. The 5GMSd client is the receiver of a 5GMS downlink media streaming service. The media session handler 408 is a subfunction of the 5GMSd client that communicates with the 5GMSd AF 402 to establish, control and support the delivery of a media session, and may perform additional functions such as consumption and quality of experience (QoE) metrics collection and reporting. The media session handler may interface with the media player 410 and the 5GMSd-aware application 414 via the reference point M6d (UE media session handling APIs). The media player is a subfunction of the 5GMSd client that communicates with the 5GMSd AS 404 to stream media content in real time or download
media content in non-real time. The media player may interface with the media session handler and 5GMSd-aware application via the reference point M7d (UE media player APIs). Alternatively, the UE may be implemented in a self-contained manner such that interfaces M6d and M7d are not exposed. [0059] The 5GMSd-aware application 414 is an external media application (e.g., an app) that controls the 5GMSd client 406. The 5GMSd-aware application implements external application or content service provider specific logic and enables a media session to be established. The 5GMSd-aware application is external to the 5GMS architecture, but makes use of 5GMSd client and NFs using 5GMSd interfaces and APIs. As also shown, the 5GMSd- aware application may interface with the 5GMSd application provider 412 via the M8d reference point (application API), which is out of scope of 5GMS. [0060] In today’s adaptive streaming, the overall delivery is client-driven. The client downloads a manifest (e.g., media presentation description (MPD) for DASH, playlist for HLS) from a server that includes information that describes representations of media content for a given media streaming service. The representations offer different levels of bit rate, in multiple resolutions, formats, and codecs. In some more particular examples, the representations may reflect standard definition (SD), high definition (HD), 2K, 4K and/or 8K representations of media content. In cases in which the media content is encoded in segments, the information provided by the manifest tells the client where to download the segments from. Based on the representations available in the manifest, the client then starts its adaptive bit rate (ABR) logic and progressively downloads and decodes the segments, and plays back the media content. When a fluctuation in bandwidth occurs, the ABR logic on the client can switch to downloading segments at a higher or lower bit rate, to avoid rebuffering and keep playing the media content in real-time. [0061] A number of congestion-oriented protocols have been developed. One example of such as protocol is low latency, low loss, scalable throughput (L4S), which enables real-time applications to experience low latency no matter how congested the network. L4S leverages explicit congestion notification (ECN) bits in the IP header of packets to mark packets with an indication of congested links. Depending on the number or percentage of marked packets, the applications adjust their coding rate. [0062] While congestion-oriented protocols such as L4S exists, these protocols are source- driven. In this regard, packets are marked when transported through the network, and indicate to the client on the receiving end if there is an early sign of congestion. In case of detected
congestion, the client is expected to notify the server in order for the source to react accordingly (e.g., by lowering the bit rate). [0063] Leveraging a congestion-oriented protocol such as L4S for a client-driven delivery such as video on demand (VOD) / subscription VOD (SVOD) is counter-intuitive as all bit- rate variations are expected to be referenced in the manifest. The client therefore does not normally need congestion information signaled by the network, as the client can lower the bit rate if progressive download gets out of real-time. The server, however, lacks the ability to optimize its behavior based on network congestion. Leveraging congestion-oriented protocols such as L4S in client-driven scenarios is currently not supported by applicative specifications like 5GMS or digital video broadcasting (DVB)-DASH. [0064] In view of the foregoing, example implementations of the present disclosure enable client-driven delivery media streaming solutions to leverage congestion aware-protocols to optimize the server and maximize the overall user quality of experience. According to example implementations, at least one network (e.g., CND) over which media content is streamed may provide indications of network congestion without dropping packets transported through the network(s). In some examples, a CDN including a plurality of media caches and/or servers may mark IP packets transported through the CDN with congestion markers, such as ECN bits. The indications of network congestion may be used to determine network congestion information, such as network congestion rate, network congestion trend, and/or localization of network congestion, which may be used to optimize delivery of media content during media streaming sessions when early signs of network congestion are detected. [0065] When applied to the 5GMS architecture, example implementations of the present disclosure may enable a 5GMSd AS 404 and network(s) (e.g., CDN) to leverage L4S for client-driven (e.g., DASH) downlink media streaming sessions, and enable a 5GMSd client 406 to feed network congestion information back to the 4GMSd AS. The 5GMSd may then be configured to determine a level of network congestion, and perform at least one congestion control operation according to the level of network congestion. [0066] In some examples in which media content is encoded in segments that are requested by an delivered to 5GMSd client(s) during media session(s), the 5GMSd AS 404 may replace a requested segment with a first bit rate, with a corresponding segment associated with a lower, second bit rate (“fooling” the client). In another example, the 5GMSd AS may predict upcoming request(s) for segment(s) and run a transcoding task to lower the bit rate of those segment(s). This transcoding task may be a simple transrating task. Additionally or
alternatively, the transcoding task may include resolution downscaling, frame-rate adaptation, denoising, switching to a more efficient codec or profile, or the like. [0067] Additionally or alternatively, the 5GMSd AS 404 may send a notification to the 5GMSd client(s) 406. The notification may be sent in a number of different manners, and in some examples, the 5GMSd AS may leverage an existing messaging format, such as the common media server data (CMSD) dynamic response header, or use an alternative mechanism, such as by leveraging 5GMS control plane. In the notification, the 5GMSd AS may, for example, notify the 5GMSd client(s) of the level of network congestion, such as when the level of network congestion increases from a first level to a greater, second level. The 5GMSd AS may ask the 5GMSd client(s) requesting media content associated with a first bit rate to at least temporarily request segment(s) at a lower, second bit rate. Likewise, the 5GMSd AS may notify the 5GMSd client(s) when the level of network congestion decreases back to the first level. In yet another example, the 5GMSd AS may notify the 5GMSd client(s) about an update in a manifest of information describing representations of the media content associated with different bit rates, such as to add a new representation at another bit rate. [0068] In some examples, for 5GMSd client(s) 406 of new media streaming session(s), the 5GMSd AS 404 may update the manifest to be provided during initialization of the new media streaming session(s) to remove from the manifest at least one of the representations with a higher bit rate of the different bit rates. Additionally or alternatively, for example, the 5GMSd AS may send the 5GMSd client(s) a notification during initialization of the new media streaming session(s) to indicate the level of network congestion. In some examples, the notification may include a recommended resolution, such as an indication of one of the representations that is recommended based on the different bit rates and the level of network congestion. [0069] Example implementations of the present disclosure therefore provide an application server, such as a 5GMSd AS 404, configured to deliver media content over at least one network (e.g., CDN) to at least one client, such as at least one 5GMSd client 406, during at least one media streaming session. The 5GMSd client(s) may be configured to receive the media content. In some examples, the media content is encoded in segments. In some of these examples, the 5GMSd client(s) may be configured to request segments of the media content from the 5GMSd AS, and receive the segments from the 5GMSd AS. [0070] The 5GMSd client(s) 406 may also be configured to receive indications of network congestion from the network(s) without dropping packets of the media content. In particular,
for example, the media content may be received in IP packets including IP headers marked by the network(s) with ECN bits. The 5GMSd client(s) may be configured to determine network congestion information based on the indications of network congestion received from the network(s), and report the network congestion information to the 5GMSd AS. The network congestion information may include, for example, a network congestion rate that indicates a percentage of received packets maked with ECN bits. Additionally or alternatively, the network congestion information may include a network congestion trend (e.g., increasing, stable, decreasing), which may be determined based on a trend in ECN marking. Even further, for example, the network congestion information may include localization information regarding the 5GMSd client(s), which may in turn localize the network congestion. [0071] The 5GMSd AS 404 may be configured to receive network congestion information reported by the 5GMSd client(s) 406. The 5GMSd AS may receive the network congestion information in a number of different manners. In this regard, the 5GMS architecture 400 provides event exposure of UE data, such as downlink media streaming UE data, such as by a data collection AF that may be instantiated in the 5GMSd AF 402. The types of events that may be exposed include, for example, QoE metrics for downlink media streaming, consumption of downlink media streaming, invocations of downlink dynamic policies, invocations of AF-based downlink network assistance, downlink media streaming access activity, and invocations of access network bitrate recommendation (ANBR)-based downlink network assistance. According to some example implementations, the event exposure may be extended to incorporate the network congestion information, such as by a new type of event or extension of an existing type of event (e.g., consumption of downlink media streaming). [0072] Regardless of the manner by which the 5GMS AS 404 is configured to receive the network congestion information, the 5GMSd AS may be configured to determine a level of network congestion based on the network congestion information from the 5GMSd client(s) 406. And the 5GMSd AS may be configured to perform at least one congestion control operation for the media streaming session(s), or at least one new media streaming session, according to the level of network congestion. The 5GMSd AS may be configured to perform any of a number of different congestion control operation(s) for the media streaming session(s). [0073] In some examples, the 5GMSd AS 404 may be configured to replace at least one segment of the media content that is requested at a first bit rate with at least one corresponding segment associated with a second bit rate that is lower than the first bit rate,
the at least one corresponding segment delivered to the 5GMSd client(s) 406 during the media streaming session(s). [0074] In some examples, the 5GMSd AS 404 may be configured to predict at least one upcoming request for at least one segment of the media content, and transcode the segment(s) to reduce a bit rate of the segment(s) that is delivered to the 5GMSd client(s) 406 when requested during the media streaming session(s). [0075] In some examples, the 5GMSd AS 404 may be configured to send a notification regarding the level of network congestion to the 5GMSd client(s) 406. The notification may include, for example, a request for the 5GMSd client(s) to switch from requesting a first representation of the media content associated with a first bit rate to requesting a second representation of the media content associated with a second bit rate lower than the first bit rate. The notification may further include an indication of a time duration for which the 5GMSd client(s) is requested to switch from requesting the first representation of the media content to requesting the second representation of the media content. The 5GMSd client(s), then, may be configured to switch to requesting segments(s) with the lower, second bit rate based on the notification, at least for the time duration that may be indicated. [0076] In some examples, the media content is one of a plurality of media contents (e.g., presentations), and representations each media content with different bit rates may be available for delivery. In some of these examples, the 5GMSd AS 404 may be configured to create one or more additional representations of one or more media contents of the plurality of media contents associated with a bit rate other than the different bit rates. These may be intermediate bit rates between those already offered, higher bit rates or lower bit rates, depending on the level of network congestion. In some of these examples, the 5GMSd AS may be further configured to send a notification to the 5GMSd client(s) 406 that includes an indication of the additional representation(s) of the media content. [0077] In some examples, a manifest comprising information describing representations of the media content associated with different bit rates is provided during initialization of the media streaming session(s). The 5GMSd AS 404 may be configured to update the manifest to be provided during initialization of new media streaming session(s) to remove at least one of the representations with a higher bit rate of the different bit rates from the manifest. The 5GMSd AD AS may send a notification to the 5GMSd client(s) 406 regarding the level of network congestion, and including an updated manifest in which at least one of the representations with a higher bit rate of the different bit rates is removed from the manifest. Additionally or alternatively, the 5GMSd AS may send a notification regarding the level of
network congestion during initialization of the new media streaming session(s), and the notification may include an indication of one of the representations that is recommended based on the different bit rates and the level of network congestion. [0078] In addition to or in lieu of the 5GMSd AS 404, a 5GMS client (e.g., 5GMSd client 406, 5GMS uplink (5GMSu) client) may be configured to access network congestion information, and perform one or more congestion control operations based on the network congestion information. This may be beneficial when a 5GMS client’s location updates are handled on the server side based on image or video data from the 5GMS client. The 5GMS client may use the congestion information to lower the bit rate of the image or video data, or in case of heavy congestion, handle the pose estimation on the client side. [0079] In another scenario, client-side use of the congestion information may be beneficial for a 5GMS client using a video or holographic type of communication, where the 5GMS client sends video data to the server. Depending on congestion information, the 5GMS client may adjust the bit rate or even switch from a video call to an avatar call. Additionally or alternatively, a 5GMS client may use congestion information to request a certain (e.g., lower) bit rate during establishment, modification or release of a packet data unit (PDU) session over which a media streaming session may be carried. [0080] In examples in which a 5GMS client accesses network congestion information to perform congestion control operation(s), the network congestion information may be determined at the 5GMSd client based on indications of network congestion (e.g., ECN markings) received from network(s) during a media streaming session, as described above. In these examples, the 5GMSd client may further report the network congestion information to the 5GMSd AS 404, as also described above. In other examples, the network congestion information may be accessed by the 5GMSd client 406 from an application function, such as a 5GMS AF (e.g., 5GMSd AF 402 or 5GMSu AF), in a network assistance session in which the network congestion information is requested from and received from the 5GMS AF. [0081] In some examples in which the congestion information is accessed from a 5GMS AF, the congestion information may be exposed to the 5GMS client through network assistance, such as by an extension of downlink network assistance otherwise provided by the 5GMS architecture 400. In this regard, the 5GMS client may initiate a network assistance session with the 5GMS AF during which the network may provide downlink streaming delivery assisting functions to the 5GMS client. During the network assistance session, the 5GMS client may request a congestion estimation for a media streaming session from the 5GMS AF,
and the 5GMS AF may communicate an observed congestion status (e.g., network congestion rate) and/or network congestion trend in the client area to the 5GMS client. [0082] Regardless of the manner by which the 5GMS client is configured to access the network congestion information, the 5GMS client may be configured to perform any of a number of different congestion control operation(s) for the media streaming session based on the network congestion information. In some examples, in which a 5GMSd client 406 is requesting segments of media content associated with a first bit rate, the 5GMSd client may be configured to switch to request at least one of the segments with a second bit rate lower than the first bit rate based on the network congestion information. In this regard, the 5GMSd client may incorporate the network congestion information in its ABR logic. [0083] According to these examples, network congestion information based on indications from the network(s), such as ECN markings, may provide an earlier sign of network congestion than otherwise recognized by the ABR logic of the 5GMSd client 406. In some examples, the ABR logic may restrict a highest downloadable representation of media content if the network congestion rate is above a threshold or in a given interval, which may be set by a threshold policy configured to the 5GMSd client. In particular, for example, the ABR logic may restrict media content to no greater than HD when the congestion rate is above 80%, or restrict the media content to no greater than 2K when the congestion rate is in the interval 40- 80%. The threshold policy may be set equally among 5GMSd clients, or may depend on a user service subscription. In this regard, premium users may have a different threshold policy than free ad-supported users. [0084] In some examples in which a media streaming session is carried over a PDU session with the 5GC 202 or other core network, the 5GMS client (e.g., 5GMSd client 406, 5GMSu client) may be configured to use the congestion information to optimize establishment of the PDU session to thereby achieve bettter connectivity. In this regard, the 5GMS client may be configured to request establishment of a PDU session to carry the media streaming session, based on the network congestion information. More particularly, for example, the 5GMS client may be configured to send a PDU session establishment request message including the network congestion information (e.g., network congestion rate, network congestion trend) to a session management function, such as SMF 304. If the connectivity is accepted by the network, the SMF may create a PDU session establishment accept message based on QoS rules according to the network congestion information, and send the PDU session establishment accept message back to the 5GMS client. The network may also reject the PDU
session establishment request based on the network congestion rate and/or network congestion trend according to the current network conditions. [0085] Additionally or alternatively, the 5GMS client may be configured to use the congestion information to optimize a media streaming session carried over an established PDU session to get better connectivity. In some of these examples, the 5GMS client may be configured to request modification to the PDU session based on the network congestion information. The 5GMS client may be configured to send a PDU session modification request message including the network congestion information to the SMF 304 or other session management function. The SMF may then initiate a PDU session modification procedure based on the network congestion information. Alternatively, the SMF may reject the PDU session modification request, such as based on current capacity. [0086] Even further, in some examples, the 5GMS client may be configured to request release of an established PDU session, such as in situations in which application-related parameters are not achieved. In this regard, the 5GMS client may be configured to request release of the PDU session based on the network congestion information. The 5GMS client may then request etablishment of a new PDU session to carry the media streaming session, which in some examples may be requested based on new QoS rules considering the network congestion information, as described above. [0087] FIG. 5 illustrates a 5GMS deployment 500 for downlink media streaming sessions, according to some example implementations. As shown, the 5GMS deployment includes a cache server 502 configured to implement a 5GMSd AS 404. The 5GMS deployment also includes a number of 5GMSd clients 406, including in particular client A 406A, client B 406B, client C 406C, client D 406D, client E 406E and client F 406F. The cache server has ongoing media streaming sessions with clients A, B, C over first and second networks 504, 506, and with clients E and F over the first network. The clients A, B, C, E and F of the ongoing media sessions have respective copies of a MPD 508 (manifest) for the media content, and that are reporting congestion information to the cache server. The other client, namely client D, is a new client for a new streaming media session. [0088] The congestion information from client A 406A, client B 406B and client C 406C indicates that the second network 506 in the area of client D 406D is experiencing at least a threshold level of network congestion. In response, the cache server 502 (5GMSd AS 404) may remove the higher bit rate (HD and 4K) representations of the media content from the MPD 510 provided to new client D 406D. Additionally or alternatively, the cache server may perform other congestion control operation(s) for the media content delivered to clients A, B
and C, as described above. In some examples, the cache server may coordinate with a 5GMSd AF 402 to check network congestion information at an instantiated data collection AF to determine if the reported congestion rate for the geographical area of the client(s) is above a predefined threshold, and perform congestion control operation(s), as described above. [0089] To further illustrate some example implementations of the present disclosure, FIG. 6 is a signaling chart 600 of 5GMSd session initialization and streaming session procedures. As shown at step 601, the 5GMSd session initialization procedure includes the 5GMSd-aware application 414 starts media playback. The media player 410 of the 5GMSd client 406 at step 602 requests a media player entry from the 5GMSd AS 404. The 5GMSd AS at step 603 notifies the 5GMSd AF 402 about a new request, and the 5GMSd AF at step 604 acquires congestion information from an instantiated data collection AF 620. [0090] The 5GMSd AF 620 at step 605 decides on how the 5GMSd AS 404 should handle the request, and if some additional processing is required. The processing decision can be triggered if the congestion rate in the media player 410 current location is above a pre- defined threshold. [0091] The 5GMSd AF 402 at step 606 sends a decision on how to process the request to the 5GMSd AS 404. If a processing has been decided, the 5GMSd AS at step 607 runs one or more processing tasks. The processing task(s) may include, for example, edit the manifest to remove highest bit rate (resolution), run a transcoding task to create intermediate bit rate, run a transrating operation on request service to provide lower bit rate, adapt format or coding profile, drop non-essential frames (resulting in a lower bitrate, but still providing a decodable bitstream). [0092] The 5GMSd AS 404 at step 608 sends the media player entry back to the media player 410. The media player then at step 609 processes the media player entry and identifies that content is available from different data networks (the local media server and the 5GMSd AS). Under the control of the 5GMSd-aware application 414, the media player at step 610 selects the content and different content options to complete the 5GMSd session initialization. The 5GMSd streaming session procedure is then performed, during which a 5GMSd streaming loop is run by the media player, progressively requesting and downloading media segments from the 5GMSd AS, as shown at steps 611 and 612. [0093] FIGS. 7A – 7H are flowcharts illustrating various steps in a method 700 according to various example implementations. The method includes delivering media content over at least one network to at least one client during at least one media streaming session, as shown
at block 702 of FIG. 7A. The method includes receiving network congestion information reported by the at least one client, the network congestion information based on indications of network congestion received from the at least one client by the at least one without the at least one network dropping packets of the media content, as shown at block 704. The method includes determining a level of network congestion based on the network congestion information from the at least one client, as shown at block 706. And the method includes performing at least one congestion control operation for the at least one media streaming session, or at least one new media streaming session, according to the level of network congestion, as shown at block 708. [0094] In some examples, the media content is encoded in segments that are requested by and delivered to the at least one client. In some of these examples, performing the at least one congestion control operation at block 708 comprises replacing at least one segment of the media content that is requested at a first bit rate with at least one corresponding segment associated with a second bit rate that is lower than the first bit rate, the at least one corresponding segment delivered to the at least one client during the at least one media streaming session, as shown at block 710 of FIG. 7B. [0095] In some examples in which the media content is encoded in segments that are requested by and delivered to the at least one client, performing the at least one congestion control operation at block 708 comprises predicting at least one upcoming request for at least one segment of the media content, as shown at block 712 of FIG. 7C. In some of these examples, performing the at least one congestion control operation also comprises transcoding the at least one segment to reduce a bit rate of the at least one segment of the media content that is delivered to the at least one client when requested during the at least one media streaming session, as shown at block 714. [0096] In some examples, performing the at least one congestion control operation at block 708 comprises sending a notification regarding the level of network congestion to the at least one client, as shown at block 716 of FIG. 7D. In some of these examples, the notification comprises a request for the at least one client to switch from requesting a first representation of the media content associated with a first bit rate to requesting a second representation of the media content associated with a second bit rate lower than the first bit rate. [0097] In some examples, the notification further comprises an indication of a time duration for which the at least one client is requested to switch from requesting the first representation of the media content to requesting the second representation of the media content.
[0098] In some examples, the media content is one of a plurality of media contents available for delivery, and wherein each of the media contents of the plurality of media contents are associated with representations encoded for different bit rates available for delivery. In some of these examples, performing the at least one congestion control operation at block 708 comprises creating one or more additional representations of one or more media contents of the plurality of media contents associated with a bit rate other than the different bit rates, as shown at block 718 of FIG. 7E. [0099] In some examples, the one or more media contents of the media contents comprise the media content delivered during the at least one media streaming session. In some of these examples, performing the at least one congestion control operation at block 708 further comprises sending a notification to the at least one client, the notification comprising an indication of the one or more additional representations, as shown at block 720 of FIG. 7F. [0100] In some examples, a manifest comprising information describing representations of the media content associated with different bit rates is provided during initialization of the at least one media streaming session. In some of these examples, performing the at least one congestion control operation at block 708 comprises updating the manifest to be provided during initialization of the at least one new media streaming session to remove at least one of the representations with a higher bit rate of the different bit rates from the manifest, as shown at block 722 of FIG. 7G. [0101] In some examples, representations of the media content associated with different bit rates are available for delivery. In some of these examples, performing the at least one congestion control operation at block 708 comprises sending a notification regarding the level of network congestion during initialization of the at least one new media streaming session, as shown at block 724 of FIG. 7H. Also in some of these examples, the notification comprises an indication of one of the representations that is recommended based on the different bit rates and the level of network congestion. [0102] FIGS. 8A – 8F are flowcharts illustrating various steps in a method 800 according to various example implementations. The method includes receiving media content delivered by an application server over at least one network during a media streaming session, as shown at block 802 of FIG. 8A. The method includes receiving indications of network congestion from the at least one without the at least one network dropping packets of the media content, as shown at block 804. The method includes determining network congestion information based on the indications of network congestion received from the at least one network, as shown at block 806. And the method includes reporting the network congestion information to the
application server for performance of at least one congestion control operation for the media streaming session according to a level of network congestion based on the network congestion information, as shown at block 808. [0103] In some examples, the media content is encoded in segments, and the method 800 further includes requesting segments of the media content, as shown at block 810 of FIG. 8B. In some of these examples, receiving the media content at block 802 comprises receiving the segments, as shown at block 812. [0104] In some examples, requesting the segments of the media content at block 810 comprises requesting segments associated with a first bit rate from the application server, as shown at block 814 of FIG. 8C. In some of these examples, receiving the segments at block 812 comprises receiving at least one corresponding segment in place of at least one segment of the segments associated with the first bit rate, the at least one corresponding segment associated with a second bit rate lower that the first bit rate, as shown at block 816. [0105] In some examples, the segments of the media content are requested at block 810 from the application server at which the at least one congestion control operation is performed before at least one segment is requested, as shown in FIG.8D. The at least one congestion control operation is performed to transcode the at least one segment to reduce a bit rate of the at least one segment. And receiving at the segments block 812 comprises receiving the at least one segment as transcoded, as shown at block 818. [0106] In some examples, the segments are requested at block 810 with a first bit rate, and the method 800 further includes receiving a notification regarding the level of network congestion from the application server, as shown at block 820 of FIG. 8E. In some of these examples, the method also includes switching to requesting at least one of the segments with a second bit rate lower than the first bit rate based on the notification, as shown at block 822. [0107] In some examples, a manifest comprising information describing representations of the media content associated with different bit rates is received during initialization of the media session. In some of these examples, the method 800 further includes receiving a notification regarding the level of network congestion from the application server, the notification comprising an updated manifest in which at least one of the representations with a higher bit rate of the different bit rates is removed from the manifest, as shown at block 824 of FIG.8F. [0108] FIGS. 9A – 9I are flowcharts illustrating various steps in a method 900 according to various example implementations. The method includes initiating a media streaming session for receiving media content delivered by an application server over at least one network, as
shown at block 902 of FIG. 9A. The method includes accessing network congestion information for the media streaming session, the network congestion information determined based on indications of network congestion received from at least one without the at least one network dropping packets transported through the at least one network, as shown at block 904. And the method includes performing at least one congestion control operation for the media streaming session based on the network congestion information, as shown at block 906. [0109] In some examples, accessing the network congestion information at block 904 comprises carrying out a network assistance session with an application function in which the network congestion information is requested from and received from the application function, as shown at block 908 of FIG. 9B. [0110] In some examples, accessing the network congestion information at block 904 comprises receiving the indications of network congestion from the at least one network during the media streaming session, as shown at block 910 of FIG. 9C. In some of these examples, accessing the network congestion information also comprises determining the network congestion information based on the indications of network congestion, as shown at block 912. [0111] In some examples, the media content is encoded in segments, and the method 900 further comprises requesting segments of the media content associated with a first bit rate, and receiving the segments of the media content, as shown at blocks 914 and 916 of FIG. 9D. In some of these examples, performing the at least one congestion control operation at block 906 comprises switching to requesting at least one of the segments with a second bit rate lower than the first bit rate based on the network congestion information, as shown at block 918. [0112] In some examples, performing the at least one congestion control operation at block 906 comprises requesting establishment of a packet data unit (PDU) session to carry the media streaming session, based on the network congestion information, as shown at block 920 of FIG. 9E. [0113] In some examples, requesting establishment of the PDU session at block 920 comprises sending a PDU session establishment request comprising the network congestion information, where the PDU session establishment request sent to a session management function for creation of a PDU session establishment accept message based on quality of service rules according to the network congestion information, as shown at block 922 of FIG. 9F. In some of these examples, reqeusting establishment of the PDU session also includes
receiving the PDU session establishment accept message from the session management function, as shown at block 924. [0114] In some examples, the media streaming session is carried over a packet data unit (PDU) session, and performing the at least one congestion control operation at block 906 comprises requesting modification to the PDU session based on the network congestion information, as shown at block 926 of FIG. 9G. [0115] In some examples, requesting modification of the PDU session at block 926 comprises sending a PDU session modification request comprising the network congestion information, as shown at block 928 of FIG. 9H. In some of these exampels, the PDU session modification request is sent to a session management function for initiation of a PDU session modification procedure, or rejection of the PDU session modification request, based on the network congestion information. [0116] In some examples in which the media streaming session is carried over a PDU session, performing the at least one congestion control operation at block 906 comprises requesting release of the PDU session based on the network congestion information, as shown at block 930 of FIG. 9I. [0117] According to example implementations of the present disclosure, a telecommunications system 100 or PLMN 102, and its components such as a UE 110, CN 106, RAN 108, 5GC 202, NG-RAN 204, gNB 206, UE 208, AMF 302, SMF 304, UPF 306, PCF 308, NEF 310, AF 312, AS 314, 5GMSd AF 402, 5GMSd AS 404, 5GMSd client 406, media session handler 408 media player 410, 5GMSd application provider 412, 5GMS aware-application 414, and/or data collection AF 620 may be implemented by various means. Means for implementing the system and its components may include hardware, firmware, software, or combinations thereof. In some examples, one or more apparatuses may be configured to function as or otherwise implement the system and its components shown and described herein. In examples involving more than one apparatus, the respective apparatuses may be connected to or otherwise in communication with one another in a number of different manners, such as directly or indirectly via a wired or wireless network or the like. [0118] According to some example implementations, at least some of the method 700 described with respect to FIGS.7A-7H may be carried out by an apparatus comprising means for performing functions corresponding steps of the method. Similarly, at least some of the method 800 described with respect to FIGS. 8A-8F may be carried out by an apparatus comprising means for performing functions corresponding steps of the method. And at least some of the method 900 described with respect to FIGS. 9A-9I may be carried out by an
apparatus comprising means for performing functions corresponding steps of the method Examples of a suitable apparatus may include a gNB (e.g., gNB-DU, gNB-CU), ng-eNB or any suitable apparatus, such as a server, host or node. Other examples of a suitable apparatus may include a user equipment, user device, user terminal or the like. [0119] FIG. 10 illustrates an apparatus 1000 in which means for performing various functions includes hardware, alone or under direction of one or more computer programs from a computer-readable storage medium or other memory, such as computer memory, according to some example implementations of the present disclosure. Generally, an apparatus of example implementations of the present disclosure may comprise, include or be embodied in one or more fixed or portable electronic devices. Examples of suitable electronic devices include a wearable computer, mobile phone, portable computer, desktop computer, workstation computer, server (server computer) or the like. The apparatus may include one or more of each of a number of components such as, for example, processing circuitry 1002 connected to computer-readable storage medium or other memory 1004. [0120] The processing circuitry 1002 may be composed of one or more processors alone or in combination with one or more computer-readable storage media. The processing circuitry is generally any piece of computer hardware that is capable of processing information such as, for example, data, computer programs and/or other suitable electronic information. The processing circuitry is composed of a collection of electronic circuits some of which may be packaged as an integrated circuit or multiple interconnected integrated circuits (an integrated circuit at times more commonly referred to as a “chip”). The processing circuitry may be configured to execute computer programs, which may be stored onboard the processing circuitry or otherwise stored in the memory 1004 (of the same or another apparatus). [0121] The processing circuitry 1002 may be a number of processors, a multi-core processor or some other type of processor, depending on the particular implementation. Further, the processing circuitry may be implemented using a number of heterogeneous processor systems in which a main processor is present with one or more secondary processors on a single chip. As another illustrative example, the processing circuitry may be a symmetric multi-processor system containing multiple processors of the same type. In yet another example, the processing circuitry may be embodied as or otherwise include one or more ASICs, FPGAs or the like. Thus, although the processing circuitry may be capable of executing a computer program to perform one or more functions, the processing circuitry of various examples may be capable of performing one or more functions without the aid of a computer program. In
either instance, the processing circuitry may be appropriately programmed to perform functions or operations according to example implementations of the present disclosure. [0122] The memory 1004 is generally any piece of computer hardware that is capable of storing information such as, for example, data, computer programs, instructions 1006 (e.g., computer-readable program code) and/or other suitable information either on a temporary basis and/or a permanent basis. The memory may include volatile and/or non-volatile memory, and may be fixed or removable. Examples of suitable memory include recording media, random access memory (RAM), read-only memory (ROM), a hard drive, a flash memory, a thumb drive, a removable computer diskette, an optical disk or some combination thereof. [0123] The memory 1004 is a non-transitory device capable of storing information. One example of a suitable memory is a computer-readable storage medium, which is distinguishable from a computer-readable transmission medium capable of carrying information from one location to another. Examples of suitable computer-readable transmission media comprise electronic carrier signals, telecommunications signals, software distribution packages, or some combination thereof. As used herein, the term “non-transitory” is a limitation of the medium itself (i.e., tangible, not a signal) as opposed to a limitation on data storage persistency (e.g., RAM versus ROM). A computer-readable medium as described herein generally refers to a computer-readable storage medium or computer- readable transmission medium. A computer-readable medium is any entity or device capable in which information, such as one or more computer programs or portions thereof, may be stored and carried. [0124] In addition to the memory 1004 (e.g., computer-readable storage medium), the processing circuitry 1002 may also be connected to one or more interfaces for displaying, transmitting and/or receiving information. The interfaces may include a communications interface 1008 and/or one or more user interfaces. The communications interface may be configured to transmit and/or receive information, such as to and/or from other apparatus(es), network(s) or the like. The communications interface may be configured to transmit and/or receive information by physical (wired) and/or wireless communications links. Examples of suitable communication interfaces include a network interface controller (NIC), wireless NIC (WNIC) or the like. [0125] The user interfaces may include a display 1010 and/or one or more user input interfaces 1012. The display may be configured to present or otherwise display information to a user, suitable examples of which include a liquid crystal display (LCD), light-emitting
diode (LED) display, organic LED (OLED) display, active-matrix OLED (AMOLED) or the like. The user input interfaces may be wired or wireless, and may be configured to receive information from a user into the apparatus, such as for processing, storage and/or display. Suitable examples of user input interfaces include a microphone, image or video capture device, keyboard or keypad, joystick, touch-sensitive surface (separate from or integrated into a touchscreen), biometric sensor or the like. The user interfaces may further include one or more interfaces for communicating with peripherals such as printers, scanners or the like. [0126] Execution of the instructions 1006 by the processing circuitry 1002, or storage of the instructions in the memory 1004, supports combinations of operations for implementing example implementations of the present disclosure. In this manner, an apparatus 1000 may comprise at least one processing circuitry and at least one memory coupled to the at least one processing circuitry, where the at least one processing circuitry is configured to execute instructions stored in the at least one memory. It will also be understood that one or more functions, and combinations of functions, may be implemented by special purpose hardware- based computer systems and/or processing circuitry which perform the specified functions, or combinations of special purpose hardware and program code instructions. [0127] Some example implementations of the present disclosure may also be carried out in the form of a computer process defined by one or more computer programs or portions thereof. Example implementations of the present disclosure may be carried out by executing at least one portion of a computer program comprising instructions. The computer program may be in source code form, object code form, or in some intermediate form. The computer program may be stored in a computer-readable medium that is readable by a computer, processing circuitry or other suitable apparatus. As indicated above, for example, the computer program may be stored in a memory, such as a computer-readable storage medium. Additionally or alternatively, for example, the computer program may be stored in a computer-readable transmission medium. The coding of software for carrying out example implementations of the present disclosure is well within the scope of a person of ordinary skill in the art. [0128] As will be appreciated, any suitable instructions may be loaded onto a computer, a processing circuitry or other programmable apparatus from a memory or a computer-readable medium (e.g., computer-readable storage medium, computer-readable transmission medium) to produce a particular machine, such that the particular machine becomes a means for implementing the functions specified herein. The instructions may also be stored in a computer-readable medium that can direct a computer, a processing circuitry or other
programmable apparatus to function in a particular manner to thereby generate a particular machine or particular article of manufacture. In some examples, the instructions stored in the computer-readable medium may produce an article of manufacture, where the article of manufacture becomes a means for implementing functions described herein. The instructions may be retrieved from a computer-readable medium and loaded into a computer, processing circuitry or other programmable apparatus to configure the computer, processing circuitry or other programmable apparatus to execute operations to be performed on or by the computer, processing circuitry or other programmable apparatus. [0129] Retrieval, loading and execution of instructions comprising program code instructions may be performed sequentially such that one instruction is retrieved, loaded and executed at a time. In some example implementations, retrieval, loading and/or execution may be performed in parallel such that multiple instructions are retrieved, loaded, and/or executed together. Execution of the program code instructions may produce a computer-implemented process such that the instructions executed by the computer, processing circuitry or other programmable apparatus provide operations for implementing functions described herein. [0130] As explained above and reiterated below, the present disclosure includes, without limitation, the following example implementations. [0131] Clause 1. An apparatus comprising: at least one memory configured to store instructions; and at least one processing circuitry configured to access the at least one memory, and execute the instructions to cause the apparatus to at least: deliver media content over at least one network to at least one client during at least one media streaming session; receive network congestion information reported by the at least one client, the network congestion information based on indications of network congestion received from the at least one client by the at least one network without the at least one network dropping packets of the media content; determine a level of network congestion based on the network congestion information from the at least one client; and perform at least one congestion control operation for the at least one media streaming session, or at least one new media streaming session, according to the level of network congestion. [0132] Clause 2. The apparatus of clause 1, wherein the media content is encoded in segments that are requested by and delivered to the at least one client, and wherein the apparatus caused to perform the at least one congestion control operation comprises the apparatus caused to replace at least one segment of the media content that is requested at a first bit rate with at least one corresponding segment associated with a second bit rate that is
lower than the first bit rate, the at least one corresponding segment delivered to the at least one client during the at least one media streaming session. [0133] Clause 3. The apparatus of clause 1 or clause 2, wherein the media content is encoded in segments that are requested by and delivered to the at least one client, and wherein the apparatus caused to perform the at least one congestion control operation comprises the apparatus caused to: predict at least one upcoming request for at least one segment of the media content; transcode the at least one segment to reduce a bit rate of the at least one segment of the media content that is delivered to the at least one client when requested during the at least one media streaming session. [0134] Clause 4. The apparatus of any of clauses 1 to 3, wherein the apparatus caused to perform the at least one congestion control operation comprises the apparatus caused to send a notification regarding the level of network congestion to the at least one client, the notification comprising a request for the at least one client to switch from requesting a first representation of the media content associated with a first bit rate to requesting a second representation of the media content associated with a second bit rate lower than the first bit rate. [0135] Clause 5. The apparatus of clause 4, wherein the notification further comprises an indication of a time duration for which the at least one client is requested to switch from requesting the first representation of the media content to requesting the second representation of the media content. [0136] Clause 6. The apparatus of any of clauses 1 to 5, wherein the media content is one of a plurality of media contents available for delivery, and wherein each of the media contents of the plurality of media contents are associated with representations encoded for different bit rates available for delivery, and wherein the apparatus caused to perform the at least one congestion control operation comprises the apparatus caused to create one or more additional representations of one or more media contents of the plurality of media contents associated with a bit rate other than the different bit rates. [0137] Clause 7. The apparatus of clause 6, wherein the one or more media contents of the media contents comprise the media content delivered during the at least one media streaming session, and wherein the apparatus caused to perform the at least one congestion control operation further comprises the apparatus caused to send a notification to the at least one client, the notification comprising an indication of the one or more additional representations. [0138] Clause 8. The apparatus of any of clauses 1 to 7, wherein a manifest comprising information describing representations of the media content associated with different bit rates
is provided during initialization of the at least one media streaming session, and wherein the apparatus caused to perform the at least one congestion control operation comprises the apparatus caused to update the manifest to be provided during initialization of the at least one new media streaming session to remove at least one of the representations with a higher bit rate of the different bit rates from the manifest. [0139] Clause 9. The apparatus of any of clauses 1 to 8, wherein representations of the media content associated with different bit rates are available for delivery, and wherein the apparatus caused to perform the at least one congestion control operation comprises the apparatus caused to send a notification regarding the level of network congestion during initialization of the at least one new media streaming session, the notification comprising an indication of one of the representations that is recommended based on the different bit rates and the level of network congestion. [0140] Clause 10. An apparatus comprising: means for delivering media content over at least one network to at least one client during at least one media streaming session; means for receiving network congestion information reported by the at least one client, the network congestion information based on indications of network congestion received from the at least one client by the at least one without the at least one network dropping packets of the media content; means for determining a level of network congestion based on the network congestion information from the at least one client; and means for performing at least one congestion control operation for the at least one media streaming session, or at least one new media streaming session, according to the level of network congestion. [0141] Clause 11. The apparatus of clause 10, wherein the media content is encoded in segments that are requested by and delivered to the at least one client, and wherein the means for performing the at least one congestion control operation comprises means for replacing at least one segment of the media content that is requested at a first bit rate with at least one corresponding segment associated with a second bit rate that is lower than the first bit rate, the at least one corresponding segment delivered to the at least one client during the at least one media streaming session. [0142] Clause 12. The apparatus of clause 10 or clause 11, wherein the media content is encoded in segments that are requested by and delivered to the at least one client, and wherein the means for performing the at least one congestion control operation comprises: means for predicting at least one upcoming request for at least one segment of the media content; means for transcoding the at least one segment to reduce a bit rate of the at least one
segment of the media content that is delivered to the at least one client when requested during the at least one media streaming session. [0143] Clause 13. The apparatus of any of clauses 10 to 12, wherein the means for performing the at least one congestion control operation comprises means for sending a notification regarding the level of network congestion to the at least one client, the notification comprising a request for the at least one client to switch from requesting a first representation of the media content associated with a first bit rate to requesting a second representation of the media content associated with a second bit rate lower than the first bit rate. [0144] Clause 14. The apparatus of clause 13, wherein the notification further comprises an indication of a time duration for which the at least one client is requested to switch from requesting the first representation of the media content to requesting the second representation of the media content. [0145] Clause 15. The apparatus of any of clauses 10 to 14, wherein the media content is one of a plurality of media contents available for delivery, and wherein each of the media contents of the plurality of media contents are associated with representations encoded for different bit rates available for delivery, and wherein the means for performing the at least one congestion control operation comprises means for creating one or more additional representations of one or more media contents of the plurality of media contents associated with a bit rate other than the different bit rates. [0146] Clause 16. The apparatus of clause 15, wherein the one or more media contents of the media contents comprise the media content delivered during the at least one media streaming session, and wherein the means for performing the at least one congestion control operation further comprises means for sending a notification to the at least one client, the notification comprising an indication of the one or more additional representations. [0147] Clause 17. The apparatus of any of clauses 10 to 16, wherein a manifest comprising information describing representations of the media content associated with different bit rates is provided during initialization of the at least one media streaming session, and wherein the means for performing the at least one congestion control operation comprises means for updating the manifest to be provided during initialization of the at least one new media streaming session to remove at least one of the representations with a higher bit rate of the different bit rates from the manifest. [0148] Clause 18. The apparatus of any of clauses 10 to 17, wherein representations of the media content associated with different bit rates are available for delivery, and wherein the
means for performing the at least one congestion control operation comprises means for sending a notification regarding the level of network congestion during initialization of the at least one new media streaming session, the notification comprising an indication of one of the representations that is recommended based on the different bit rates and the level of network congestion. [0149] Clause 19. A method comprising: delivering media content over at least one network to at least one client during at least one media streaming session; receiving network congestion information reported by the at least one client, the network congestion information based on indications of network congestion received from the at least one client by the at least one without the at least one network dropping packets of the media content; determining a level of network congestion based on the network congestion information from the at least one client; and performing at least one congestion control operation for the at least one media streaming session, or at least one new media streaming session, according to the level of network congestion. [0150] Clause 20. The method of clause 19, wherein the media content is encoded in segments that are requested by and delivered to the at least one client, and wherein performing the at least one congestion control operation comprises replacing at least one segment of the media content that is requested at a first bit rate with at least one corresponding segment associated with a second bit rate that is lower than the first bit rate, the at least one corresponding segment delivered to the at least one client during the at least one media streaming session. [0151] Clause 21. The method of clause 19 or clause 20, wherein the media content is encoded in segments that are requested by and delivered to the at least one client, and wherein performing the at least one congestion control operation comprises: predicting at least one upcoming request for at least one segment of the media content; transcoding the at least one segment to reduce a bit rate of the at least one segment of the media content that is delivered to the at least one client when requested during the at least one media streaming session. [0152] Clause 22. The method of any of clauses 19 to 21, wherein performing the at least one congestion control operation comprises sending a notification regarding the level of network congestion to the at least one client, the notification comprising a request for the at least one client to switch from requesting a first representation of the media content associated with a first bit rate to requesting a second representation of the media content associated with a second bit rate lower than the first bit rate.
[0153] Clause 23. The method of clause 22, wherein the notification further comprises an indication of a time duration for which the at least one client is requested to switch from requesting the first representation of the media content to requesting the second representation of the media content. [0154] Clause 24. The method of any of clauses 19 to 23, wherein the media content is one of a plurality of media contents available for delivery, and wherein each of the media contents of the plurality of media contents are associated with representations encoded for different bit rates available for delivery, and wherein performing the at least one congestion control operation comprises creating one or more additional representations of one or more media contents of the plurality of media contents associated with a bit rate other than the different bit rates. [0155] Clause 25. The method of clause 24, wherein the one or more media contents of the media contents comprise the media content delivered during the at least one media streaming session, and wherein performing the at least one congestion control operation further comprises sending a notification to the at least one client, the notification comprising an indication of the one or more additional representations. [0156] Clause 26. The method of any of clauses 19 to 25, wherein a manifest comprising information describing representations of the media content associated with different bit rates is provided during initialization of the at least one media streaming session, and wherein performing the at least one congestion control operation comprises updating the manifest to be provided during initialization of the at least one new media streaming session to remove at least one of the representations with a higher bit rate of the different bit rates from the manifest. [0157] Clause 27. The method of any of clauses 19 to 26, wherein representations of the media content associated with different bit rates are available for delivery, and wherein performing the at least one congestion control operation comprises sending a notification regarding the level of network congestion during initialization of the at least one new media streaming session, the notification comprising an indication of one of the representations that is recommended based on the different bit rates and the level of network congestion. [0158] Clause 28. A computer-readable storage medium that is non-transitory and has instructions stored therein that, in response to execution by at least one processing circuitry, causes an apparatus to at least: deliver media content over at least one network to at least one client during at least one media streaming session; receive network congestion information reported by the at least one client, the network congestion information based on indications of
network congestion received from the at least one client by the at least one network without the at least one network dropping packets of the media content; determine a level of network congestion based on the network congestion information from the at least one client; and perform at least one congestion control operation for the at least one media streaming session, or at least one new media streaming session, according to the level of network congestion. [0159] Clause 29. The computer-readable storage medium of clause 28, wherein the media content is encoded in segments that are requested by and delivered to the at least one client, and wherein the apparatus caused to perform the at least one congestion control operation comprises the apparatus caused to replace at least one segment of the media content that is requested at a first bit rate with at least one corresponding segment associated with a second bit rate that is lower than the first bit rate, the at least one corresponding segment delivered to the at least one client during the at least one media streaming session. [0160] Clause 30. The computer-readable storage medium of clause 28 or clause 29, wherein the media content is encoded in segments that are requested by and delivered to the at least one client, and wherein the apparatus caused to perform the at least one congestion control operation comprises the apparatus caused to: predict at least one upcoming request for at least one segment of the media content; transcode the at least one segment to reduce a bit rate of the at least one segment of the media content that is delivered to the at least one client when requested during the at least one media streaming session. [0161] Clause 31. The computer-readable storage medium of any of clauses 28 to 30, wherein the apparatus caused to perform the at least one congestion control operation comprises the apparatus caused to send a notification regarding the level of network congestion to the at least one client, the notification comprising a request for the at least one client to switch from requesting a first representation of the media content associated with a first bit rate to requesting a second representation of the media content associated with a second bit rate lower than the first bit rate. [0162] Clause 32. The computer-readable storage medium of clause 31, wherein the notification further comprises an indication of a time duration for which the at least one client is requested to switch from requesting the first representation of the media content to requesting the second representation of the media content. [0163] Clause 33. The computer-readable storage medium of any of clauses 28 to 32, wherein the media content is one of a plurality of media contents available for delivery, and wherein each of the media contents of the plurality of media contents are associated with representations encoded for different bit rates available for delivery, and wherein the
apparatus caused to perform the at least one congestion control operation comprises the apparatus caused to create one or more additional representations of one or more media contents of the plurality of media contents associated with a bit rate other than the different bit rates. [0164] Clause 34. The computer-readable storage medium of clause 33, wherein the one or more media contents of the media contents comprise the media content delivered during the at least one media streaming session, and wherein the apparatus caused to perform the at least one congestion control operation further comprises the apparatus caused to send a notification to the at least one client, the notification comprising an indication of the one or more additional representations. [0165] Clause 35. The computer-readable storage medium of any of clauses 28 to 34, wherein a manifest comprising information describing representations of the media content associated with different bit rates is provided during initialization of the at least one media streaming session, and wherein the apparatus caused to perform the at least one congestion control operation comprises the apparatus caused to update the manifest to be provided during initialization of the at least one new media streaming session to remove at least one of the representations with a higher bit rate of the different bit rates from the manifest. [0166] Clause 36. The computer-readable storage medium of any of clauses 28 to 35, wherein representations of the media content associated with different bit rates are available for delivery, and wherein the apparatus caused to perform the at least one congestion control operation comprises the apparatus caused to send a notification regarding the level of network congestion during initialization of the at least one new media streaming session, the notification comprising an indication of one of the representations that is recommended based on the different bit rates and the level of network congestion. [0167] Clause 37. An apparatus comprising means for performing the method of any of clauses 19 to 27. [0168] Clause 38. A computer-readable medium comprising instructions that, in response to execution by at least one processing circuitry, causes an apparatus to perform the method of any of clauses 19 to 27. [0169] Clause 39. A computer-readable storage medium comprising instructions that, in response to execution by at least one processing circuitry, causes an apparatus to perform the method of any of clauses 19 to 27.
[0170] Clause 40. A computer program comprising instructions that, in response to execution by at least one processing circuitry, causes an apparatus to perform the method of any of clauses 19 to 27. [0171] Clause 41. An apparatus comprising: at least one memory configured to store instructions; and at least one processing circuitry configured to access the at least one memory, and execute the instructions to cause the apparatus to at least: receive media content delivered by an application server over at least one network during a media streaming session; receive indications of network congestion from the at least one without the at least one network dropping packets of the media content; determine network congestion information based on the indications of network congestion received from the at least one network; and report the network congestion information to the application server for performance of at least one congestion control operation for the media streaming session according to a level of network congestion based on the network congestion information. [0172] Clause 42. The apparatus of clause 41, wherein the media content is encoded in segments, wherein the at least one processing circuitry is configured to execute the instructions to cause the apparatus to further request segments of the media content, and wherein the apparatus caused to receive the media content comprises the apparatus caused to receive the segments. [0173] Clause 43. The apparatus of clause 42, wherein the apparatus caused to request the segments of the media content comprises the apparatus caused to request segments associated with a first bit rate from the application server, and wherein the apparatus caused to receive the segments comprises the apparatus caused to receive at least one corresponding segment in place of at least one segment of the segments associated with the first bit rate, the at least one corresponding segment associated with a second bit rate lower that the first bit rate. [0174] Clause 44. The apparatus of clause 42 or clause 43, wherein the segments of the media content are requested from the application server before at least one segment is requested, and the at least one congestion control operation is performed to transcode the at least one segment to reduce a bit rate of the at least one segment, and wherein the apparatus caused to receive the segments comprises the apparatus caused to receive the at least one segment as transcoded. [0175] Clause 45. The apparatus of any of clauses 42 to 44, wherein the segments are requested with a first bit rate, and wherein the at least one processing circuitry is configured to execute the instructions to cause the apparatus to further at least: receive a notification regarding the level of network congestion from the application server; and switch to
requesting at least one of the segments with a second bit rate lower than the first bit rate based on the notification. [0176] Clause 46. The apparatus of any of clauses 41 to 45, wherein a manifest comprising information describing representations of the media content associated with different bit rates is received during initialization of the media session, and wherein the at least one processing circuitry is configured to execute the instructions to cause the apparatus to further receive a notification regarding the level of network congestion from the application server, the notification comprising an updated manifest in which at least one of the representations with a higher bit rate of the different bit rates is removed from the manifest. [0177] Clause 47. An apparatus comprising: means for receiving media content delivered by an application server over at least one network during a media streaming session; means for receiving indications of network congestion from the at least one without the at least one network dropping packets of the media content; means for determining network congestion information based on the indications of network congestion received from the at least one network; and means for reporting the network congestion information to the application server for performance of at least one congestion control operation for the media streaming session according to a level of network congestion based on the network congestion information. [0178] Clause 48. The apparatus of clause 47, wherein the media content is encoded in segments, wherein the apparatus further comprises means for requesting segments of the media content, and wherein the means for receiving the media content comprises means for receiving the segments. [0179] Clause 49. The apparatus of clause 48, wherein the means for requesting the segments of the media content comprises means for requesting segments associated with a first bit rate from the application server associated with a lower, second bit rate, and wherein the means for receiving the segments comprises means for receiving at least one corresponding segment in place of at least one segment of the segments associated with the first bit rate, the at least one corresponding segment associated with a second bit rate lower that the first bit rate. [0180] Clause 50. The apparatus of clause 48 or clause 49, wherein the segments of the media content are requested from the application server before at least one segment is requested, and the at least one congestion control operation is performed to transcode the at least one segment to reduce a bit rate of the at least one segment, and wherein the means for receiving the segments comprises means for receiving the at least one segment as transcoded.
[0181] Clause 51. The apparatus of any of clauses 48 to 50, wherein the segments are requested with a first bit rate, and wherein the apparatus further comprises: means for receiving a notification regarding the level of network congestion from the application server; and means for switching to requesting at least one of the segments with a second bit rate lower than the first bit rate based on the notification. [0182] Clause 52. The apparatus of any of clauses 47 to 51, wherein a manifest comprising information describing representations of the media content associated with different bit rates is received during initialization of the media session, and wherein the apparatus further comprises means for receiving a notification regarding the level of network congestion from the application server, the notification comprising an updated manifest in which at least one of the representations with a higher bit rate of the different bit rates is removed from the manifest. [0183] Clause 53. A method comprising: receiving media content delivered by an application server over at least one network during a media streaming session; receiving indications of network congestion from the at least one without the at least one network dropping packets of the media content; determining network congestion information based on the indications of network congestion received from the at least one network; and reporting the network congestion information to the application server for performance of at least one congestion control operation for the media streaming session according to a level of network congestion based on the network congestion information. [0184] Clause 54. The method of clause 53, wherein the media content is encoded in segments, wherein the method further comprises requesting segments of the media content, and wherein receiving the media content comprises receiving the segments. [0185] Clause 55. The method of clause 54, wherein requesting the segments of the media content comprises requesting segments associated with a first bit rate from the application server, and wherein receiving the segments comprises receiving at least one corresponding segment in place of at least one segment of the segments associated with the first bit rate, the at least one corresponding segment associated with a second bit rate lower that the first bit rate. [0186] Clause 56. The method of clause 54 or clause 55, wherein the segments of the media content are requested from the application server before at least one segment is requested, and the at least one congestion control operation is performed to transcode the at least one segment to reduce a bit rate of the at least one segment, and wherein receiving the segments comprises receiving the at least one segment as transcoded.
[0187] Clause 57. The method of any of clauses 54 to 56, wherein the segments are requested with a first bit rate, and wherein the method further comprises: receiving a notification regarding the level of network congestion from the application server; and switching to requesting at least one of the segments with a second bit rate lower than the first bit rate based on the notification. [0188] Clause 58. The method of any of clauses 53 to 57, wherein a manifest comprising information describing representations of the media content associated with different bit rates is received during initialization of the media session, and wherein the method further comprises receiving a notification regarding the level of network congestion from the application server, the notification comprising an updated manifest in which at least one of the representations with a higher bit rate of the different bit rates is removed from the manifest. [0189] Clause 59. A computer-readable storage medium that is non-transitory and has instructions stored therein that, in response to execution by at least one processing circuitry, causes an apparatus to at least: receive media content delivered by an application server over at least one network during a media streaming session; receive indications of network congestion from the at least one without the at least one network dropping packets of the media content; determine network congestion information based on the indications of network congestion received from the at least one network; and report the network congestion information to the application server for performance of at least one congestion control operation for the media streaming session according to a level of network congestion based on the network congestion information. [0190] Clause 60. The computer-readable storage medium of clause 59, wherein the media content is encoded in segments, wherein the computer-readable storage medium has further instructions stored therein that, in response to execution by the at least one processing circuitry, causes the apparatus to further request segments of the media content, and wherein the apparatus caused to receive the media content comprises the apparatus caused to receive the segments. [0191] Clause 61. The computer-readable storage medium of clause 60, wherein the apparatus caused to request the segments of the media content comprises the apparatus caused to request segments associated with a first bit rate from the application server, and wherein the apparatus caused to receive the segments comprises the apparatus caused to receive at least one corresponding segment in place of at least one segment of the segments
associated with the first bit rate, the at least one corresponding segment associated with a second bit rate lower that the first bit rate. [0192] Clause 62. The computer-readable storage medium of clause 60 or clause 61, wherein the segments of the media content are requested from the application server before at least one segment is requested, and the at least one congestion control operation is performed to transcode the at least one segment to reduce a bit rate of the at least one segment, and wherein the apparatus caused to receive the segments comprises the apparatus caused to receive the at least one segment as transcoded. [0193] Clause 63. The computer-readable storage medium of any of clauses 60 to 62, wherein the segments are requested with a first bit rate, and wherein the computer-readable storage medium has further instructions stored therein that, in response to execution by the at least one processing circuitry, causes the apparatus to further at least: receive a notification regarding the level of network congestion from the application server; and switch to requesting at least one of the segments with a second bit rate lower than the first bit rate based on the notification. [0194] Clause 64. The computer-readable storage medium of any of clauses 59 to 63, wherein a manifest comprising information describing representations of the media content associated with different bit rates is received during initialization of the media session, and wherein the computer-readable storage medium has further instructions stored therein that, in response to execution by the at least one processing circuitry, causes the apparatus to further receive a notification regarding the level of network congestion from the application server, the notification comprising an updated manifest in which at least one of the representations with a higher bit rate of the different bit rates is removed from the manifest. [0195] Clause 65. An apparatus comprising means for performing the method of any of clauses 53 to 58. [0196] Clause 66. A computer-readable medium comprising instructions that, in response to execution by at least one processing circuitry, causes an apparatus to perform the method of any of clauses 53 to 58. [0197] Clause 67. A computer-readable storage medium comprising instructions that, in response to execution by at least one processing circuitry, causes an apparatus to perform the method of any of clauses 53 to 58. [0198] Clause 68. A computer program comprising instructions that, in response to execution by at least one processing circuitry, causes an apparatus to perform the method of any of clauses 53 to 58.
[0199] Clause 69. An apparatus comprising: at least one memory configured to store instructions; and at least one processing circuitry configured to access the at least one memory, and execute the instructions to cause the apparatus to at least: initiate a media streaming session to receive media content delivered by an application server over at least one network; access network congestion information for the media streaming session, the network congestion information determined based on indications of network congestion received from at least one without the at least one network dropping packets transported through the at least one network; and perform at least one congestion control operation for the media streaming session based on the network congestion information. [0200] Clause 70. The apparatus of clause 69, wherein the apparatus caused to access the network congestion information comprises the apparatus caused to carry out a network assistance session with an application function in which the network congestion information is requested from and received from the application function. [0201] Clause 71. The apparatus of clause 69 or clause 70, wherein the apparatus caused to access the network congestion information comprises the apparatus caused to: receive the indications of network congestion from the at least one network during the media streaming session; and determine the network congestion information based on the indications of network congestion. [0202] Clause 72. The apparatus of any of clauses 69 to 71, wherein the media content is encoded in segments, wherein the at least one processing circuitry is configured to execute the instructions to cause the apparatus to further at least: request segments of the media content associated with a first bit rate; and receive the segments of the media content, and wherein the apparatus caused to perform the at least one congestion control operation comprises the apparatus caused to switch to request at least one of the segments with a second bit rate lower than the first bit rate based on the network congestion information. [0203] Clause 73. The apparatus of any of clauses 69 to 72, wherein the apparatus caused to perform the at least one congestion control operation comprises the apparatus caused to request establishment of a packet data unit (PDU) session to carry the media streaming session, based on the network congestion information. [0204] Clause 74. The apparatus of clause 73, wherein the apparatus caused to request establishment of the PDU session comprises the apparatus caused to: send a PDU session establishment request comprising the network congestion information, the PDU session establishment request sent to a session management function for creation of a PDU session establishment accept message based on quality of service rules according to the network
congestion information; and receive the PDU session establishment accept message from the session management function. [0205] Clause 75. The apparatus of any of clauses 69 to 74, wherein the media streaming session is carried over a packet data unit (PDU) session, and the apparatus caused to perform the at least one congestion control operation comprises the apparatus caused to request modification to the PDU session based on the network congestion information. [0206] Clause 76. The apparatus of clause 75, wherein the apparatus caused to request modification of the PDU session comprises the apparatus caused to send a PDU session modification request comprising the network congestion information, the PDU session modification request sent to a session management function for initiation of a PDU session modification procedure, or rejection of the PDU session modification request, based on the network congestion information. [0207] Clause 77. The apparatus of any of clauses 69 to 76, wherein the media streaming session is carried over a packet data unit (PDU) session, and the apparatus caused to perform the at least one congestion control operation comprises the apparatus caused to request release of the PDU session based on the network congestion information. [0208] Clause 78. An apparatus comprising: means for initiating a media streaming session for receiving media content delivered by an application server over at least one network; means for accessing network congestion information for the media streaming session, the network congestion information determined based on indications of network congestion received from at least one without the at least one network dropping packets transported through the at least one network; and means for performing at least one congestion control operation for the media streaming session based on the network congestion information. [0209] Clause 79. The apparatus of clause 78, wherein the means for accessing the network congestion information comprises means for carrying out a network assistance session with an application function in which the network congestion information is requested from and received from the application function. [0210] Clause 80. The apparatus of clause 78 or clause 79, wherein the means for accessing the network congestion information comprises: means for receiving the indications of network congestion from the at least one network during the media streaming session; and means for determining the network congestion information based on the indications of network congestion. [0211] Clause 81. The apparatus of any of clauses 78 to 80, wherein the media content is encoded in segments, wherein the apparatus further comprises: means for requesting
segments of the media content associated with a first bit rate; and means for receiving the segments of the media content, and wherein the means for performing the at least one congestion control operation comprises means for switching to requesting at least one of the segments with a second bit rate lower than the first bit rate based on the network congestion information. [0212] Clause 82. The apparatus of any of clauses 78 to 81, wherein the means for performing the at least one congestion control operation comprises means for requesting establishment of a packet data unit (PDU) session to carry the media streaming session, based on the network congestion information. [0213] Clause 83. The apparatus of clause 82, wherein the means for requesting establishment of the PDU session comprises: means for sending a PDU session establishment request comprising the network congestion information, the PDU session establishment request sent to a session management function for creation of a PDU session establishment accept message based on quality of service rules according to the network congestion information; and means for receiving the PDU session establishment accept message from the session management function. [0214] Clause 84. The apparatus of any of clauses 78 to 83, wherein the media streaming session is carried over a packet data unit (PDU) session, and the means for performing the at least one congestion control operation comprises means for requesting modification to the PDU session based on the network congestion information. [0215] Clause 85. The apparatus of clause 84, wherein the means for requesting modification of the PDU session comprises means for sending a PDU session modification request comprising the network congestion information, the PDU session modification request sent to a session management function for initiation of a PDU session modification procedure, or rejection of the PDU session modification request, based on the network congestion information. [0216] Clause 86. The apparatus of any of clauses 78 to 85, wherein the media streaming session is carried over a packet data unit (PDU) session, and the means for performing the at least one congestion control operation comprises means for requesting release of the PDU session based on the network congestion information. [0217] Clause 87. A method comprising: initiating a media streaming session for receiving media content delivered by an application server over at least one network; accessing network congestion information for the media streaming session, the network congestion information determined based on indications of network congestion received from at least
one without the at least one network dropping packets transported through the at least one network; and performing at least one congestion control operation for the media streaming session based on the network congestion information. [0218] Clause 88. The method of clause 87, wherein accessing the network congestion information comprises carrying out a network assistance session with an application function in which the network congestion information is requested from and received from the application function. [0219] Clause 89. The method of clause 87 or clause 88, wherein accessing the network congestion information comprises: receiving the indications of network congestion from the at least one network during the media streaming session; and determining the network congestion information based on the indications of network congestion. [0220] Clause 90. The method of any of clauses 87 to 89, wherein the media content is encoded in segments, wherein the method further comprises: requesting segments of the media content associated with a first bit rate; and receiving the segments of the media content, and wherein performing the at least one congestion control operation comprises switching to requesting at least one of the segments with a second bit rate lower than the first bit rate based on the network congestion information. [0221] Clause 91. The method of any of clauses 87 to 90, wherein performing the at least one congestion control operation comprises requesting establishment of a packet data unit (PDU) session to carry the media streaming session, based on the network congestion information. [0222] Clause 92. The method of clause 91, wherein requesting establishment of the PDU session comprises: sending a PDU session establishment request comprising the network congestion information, the PDU session establishment request sent to a session management function for creation of a PDU session establishment accept message based on quality of service rules according to the network congestion information; and receiving the PDU session establishment accept message from the session management function. [0223] Clause 93. The method of any of clauses 87 to 92, wherein the media streaming session is carried over a packet data unit (PDU) session, and performing the at least one congestion control operation comprises requesting modification to the PDU session based on the network congestion information. [0224] Clause 94. The method of clause 93, wherein requesting modification of the PDU session comprises sending a PDU session modification request comprising the network congestion information, the PDU session modification request sent to a session management
function for initiation of a PDU session modification procedure, or rejection of the PDU session modification request, based on the network congestion information. [0225] Clause 95. The method of any of clauses 87 to 94, wherein the media streaming session is carried over a packet data unit (PDU) session, and performing the at least one congestion control operation comprises requesting release of the PDU session based on the network congestion information. [0226] Clause 96. A computer-readable storage medium that is non-transitory and has instructions stored therein that, in response to execution by at least one processing circuitry, causes an apparatus to at least: initiate a media streaming session to receive media content delivered by an application server over at least one network; access network congestion information for the media streaming session, the network congestion information determined based on indications of network congestion received from at least one without the at least one network dropping packets transported through the at least one network; and perform at least one congestion control operation for the media streaming session based on the network congestion information. [0227] Clause 97. The computer-readable storage medium of clause 96, wherein the apparatus caused to access the network congestion information comprises the apparatus caused to carry out a network assistance session with an application function in which the network congestion information is requested from and received from the application function. [0228] Clause 98. The computer-readable storage medium of clause 96 or clause 97, wherein the apparatus caused to access the network congestion information comprises the apparatus caused to: receive the indications of network congestion from the at least one network during the media streaming session; and determine the network congestion information based on the indications of network congestion. [0229] Clause 99. The computer-readable storage medium of any of clauses 96 to 98, wherein the media content is encoded in segments, wherein the computer-readable storage medium has further instructions stored therein that, in response to execution by the at least one processing circuitry, causes the apparatus to further at least: request segments of the media content associated with a first bit rate; and receive the segments of the media content, and wherein the apparatus caused to perform the at least one congestion control operation comprises the apparatus caused to switch to request at least one of the segments with a second bit rate lower than the first bit rate based on the network congestion information. [0230] Clause 100. The computer-readable storage medium of any of clauses 96 to 99, wherein the apparatus caused to perform the at least one congestion control operation
comprises the apparatus caused to request establishment of a packet data unit (PDU) session to carry the media streaming session, based on the network congestion information. [0231] Clause 101. The computer-readable storage medium of clause 100, wherein the apparatus caused to request establishment of the PDU session comprises the apparatus caused to: send a PDU session establishment request comprising the network congestion information, the PDU session establishment request sent to a session management function for creation of a PDU session establishment accept message based on quality of service rules according to the network congestion information; and receive the PDU session establishment accept message from the session management function. [0232] Clause 102. The computer-readable storage medium of any of clauses 96 to 101, wherein the media streaming session is carried over a packet data unit (PDU) session, and the apparatus caused to perform the at least one congestion control operation comprises the apparatus caused to request modification to the PDU session based on the network congestion information. [0233] Clause 103. The computer-readable storage medium of clause 102, wherein the apparatus caused to request modification of the PDU session comprises the apparatus caused to send a PDU session modification request comprising the network congestion information, the PDU session modification request sent to a session management function for initiation of a PDU session modification procedure, or rejection of the PDU session modification request, based on the network congestion information. [0234] Clause 104. The computer-readable storage medium of any of clauses 96 to 103, wherein the media streaming session is carried over a packet data unit (PDU) session, and the apparatus caused to perform the at least one congestion control operation comprises the apparatus caused to request release of the PDU session based on the network congestion information. [0235] Clause 105. An apparatus comprising means for performing the method of any of clauses 87 to 95. [0236] Clause 106. A computer-readable medium comprising instructions that, in response to execution by at least one processing circuitry, causes an apparatus to perform the method of any of clauses 87 to 95. [0237] Clause 107. A computer-readable storage medium comprising instructions that, in response to execution by at least one processing circuitry, causes an apparatus to perform the method of any of clauses 87 to 95.
[0238] Clause 108. A computer program comprising instructions that, in response to execution by at least one processing circuitry, causes an apparatus to perform the method of any of clauses 87 to 95. [0239] Many modifications and other implementations of the disclosure set forth herein will come to mind to one skilled in the art to which the disclosure pertains having the benefit of the teachings presented in the foregoing description and the associated figures. Therefore, it is to be understood that the disclosure is not to be limited to the specific implementations disclosed and that modifications and other implementations are intended to be included within the scope of the appended claims. Moreover, although the foregoing description and the associated figures describe example implementations in the context of certain example combinations of elements and/or functions, it should be appreciated that different combinations of elements and/or functions may be provided by alternative implementations without departing from the scope of the appended claims. In this regard, for example, different combinations of elements and/or functions than those explicitly described above are also contemplated as may be set forth in some of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.
Claims
15. The method of claim 13 or claim 14, wherein the segments of the media content are requested from the application server before at least one segment is requested, and the at least one congestion control operation is performed to transcode the at least one segment to reduce a bit rate of the at least one segment, and wherein receiving the segments comprises receiving the at least one segment as transcoded. 16. The method of any of claims 13 to 15, wherein the segments are requested at a first bit rate, and wherein the method further comprises: receiving a notification regarding the level of network congestion from the application server; and switching to requesting at least one of the segments with a second bit rate lower than the first bit rate based on the notification. 17. The method of any of claims 12 to 16, wherein a manifest comprising information describing representations of the media content associated with different bit rates is received during initialization of the media session, and wherein the method further comprises receiving a notification regarding the level of network congestion from the application server, the notification comprising an updated manifest in which at least one of the representations with a higher bit rate of the different bit rates is removed from the manifest. 18. An apparatus comprising means for performing the method of any of claims 12 to 17. 19. A computer program comprising instructions that, in response to execution by at least one processing circuitry, causes an apparatus to perform the method of any of claims 12 to 17.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB2404499.2 | 2024-03-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2025201903A1 true WO2025201903A1 (en) | 2025-10-02 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11444850B2 (en) | Method and apparatus for communication network quality of service capability exposure | |
KR102519409B1 (en) | Method and Apparatus for Multipath Media Delivery | |
JP6254631B2 (en) | Information resource management concept | |
US10348796B2 (en) | Adaptive video streaming over preference-aware multipath | |
US20230179491A1 (en) | Integration of a device platform with a core network or a multi-access edge computing environment | |
CN103460782B (en) | QoE perception services conveying in cellular network | |
US10433239B2 (en) | Cross-layer optimized adaptive HTTP streaming | |
TWI575948B (en) | Method and apparatus for distribution and reception of content | |
EP3219106B1 (en) | Context-aware resource management for video streaming services | |
US10200883B2 (en) | Radio access network (RAN) transport evolved packet core (EPC) synergy | |
US9307450B2 (en) | Method and apparatus for content caching in a wireless communication network | |
US20130227106A1 (en) | Method and apparatus for video session management | |
US20220029700A1 (en) | Facilitating dynamic satellite and mobility convergence for mobility backhaul in advanced networks | |
CN103907331A (en) | Application performance improvements in radio networks | |
Zhang et al. | MoWIE: toward systematic, adaptive network information exposure as an enabling technique for cloud-based applications over 5G and beyond | |
US20250039694A1 (en) | Network slice replacement for multimedia services | |
US20240080275A1 (en) | Method and apparatus for quality of service assurance for webrtc sessions in 5g networks | |
WO2025201903A1 (en) | Congestion-aware media streaming | |
JP6468560B2 (en) | Wireless communication system and control method therefor, and communication control program | |
Smith et al. | Wireless adaptive video streaming with edge cloud | |
WO2025201904A1 (en) | ||
Longhao | Innovative content delivery solutions in the future network heterogeneous environment | |
한빙 | A Testbed for Mobile Named-Data Network integrated with 4G networking devices |