Congestion-aware media streaming
The system addresses the lack of network congestion control in media streaming by using congestion indications to optimize 5GMS sessions, ensuring smooth and adaptive media delivery.
Patent Information
- Application Number
- PCT/EP2025/056898
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-28
- Filing Date
- 2025-03-13
- Publication Date
- 2025-10-02
AI Technical Summary
Existing media streaming technologies lack the ability to effectively utilize network congestion information from networks to perform congestion control operations without dropping packets, particularly in client-driven scenarios like 5GMS and DVB-DASH, leading to suboptimal user experience.
Implementing a system that allows networks to provide congestion indications without packet dropping, enabling the 5GMS architecture to determine network congestion levels and perform congestion control operations, such as transcoding or bit rate adjustments, to optimize media streaming sessions.
Enhances user quality of experience by dynamically adapting to network congestion, preventing packet loss and maintaining smooth media streaming through proactive congestion management.
Smart Images

Figure EP2025056898_02102025_PF_FP_ABST
Abstract
Description
CONGESTION-AWARE MEDIA STREAMING TECHNOLOGICAL FIELD
[0001] The present disclosure relates generally to telecommunications and, in particular, tomedia streaming over a telecommunications system. BACKGROUND
[0002] A telecommunications system can be seen as a facility that enables communicationsessions 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 sessionbetween 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 appropriatecommunication 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 exampleenabling 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 inaccordance 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 alsotypically defined. One example of a telecommunications system is the Universal MobileTelecommunications 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 totelecommunications 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 onememory 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 fordelivering 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 networkcongestion received from the at least one client by the at least one without the at least onenetwork 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 mediacontent 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 isnon-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 onememory 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 receivingmedia content delivered by an application server over at least one network during a mediastreaming session; means for receiving indications of network congestion from the at leastone without the at least one network dropping packets of the media content; means fordetermining 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 mediacontent 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 isnon-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; receiveindications of network congestion from the at least one without the at least one networkdropping 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 onememory 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 serverover at least one network; access network congestion information for the media streamingsession, 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 initiatinga media streaming session for receiving media content delivered by an application server overat 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 mediastreaming 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 isnon-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 beapparent from a reading of the following detailed description together with the accompanyingfigures, which are briefly described below. The present disclosure includes any combinationof 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 specificexample implementation described herein. This disclosure is intended to be read holisticallysuch 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 forpurposes of summarizing some example implementations so as to provide a basic understanding of some aspects of the disclosure. Accordingly, it will be appreciated that theabove 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 landmobile 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 exampleimplementations;
[0024] FIG. 3 more particularly depicts aspects of the deployment of FIG. 2, according tosome example implementations;
[0025] FIG. 4 illustrates the 5G Media Streaming (5GMS) architecture for unicast downlinkmedia 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 andstreaming session procedures, according to some example implementations;
[0028] FIGS. 7A, 7B, 7C, 7D, 7E, 7F, 7G and 7H are flowcharts illustrating various steps in amethod according to various example implementations;
[0029] FIGS. 8A, 8B, 8C, 8D, 8E and 8F are flowcharts illustrating various steps in a methodaccording to various example implementations;
[0030] FIGS. 9A, 9B, 9C, 9D, 9E, 9F, 9G, 9H and 9I are flowcharts illustrating various stepsin 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 fullyhereinafter 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 limitedto 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 likeshould 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 ofoperands 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 clearfrom context to be directed to a singular form. Furthermore, it should be understood thatunless 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 orthe 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 maybe 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 allof 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 exampleimplementations of the present disclosure. The telecommunications system generally includes one or more telecommunications networks. As shown, for example, the system includes oneor more public land mobile networks (PLMNs) 102 coupled to one or more other externaldata networks 104 – notably including a wide area network (WAN) such as the Internet. Eachof 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 theInternet are coupled to one or more radio access networks (RANs) 108, air interfaces or thelike 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 knownas 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 by3GPP, 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 theRANs 108 according to their particular radio access technologies to thereby access aparticular CN 106 of a PLMN 102, or to access one or more of the external datanetworks 104 (e.g., the Internet). The external data network may be configured to provideInternet access, operator services, 3rd party services, etc. For example, the InternationalTelecommunication Union (ITU) has classified 5G mobile network services into threecategories: 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 suchas 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 communicationtechnology 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 moreradio access nodes that are configured to interact with UEs 110. In various examples, a radioaccess 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 aRAN 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 functionsor the like.
[0044] As will be appreciated, a PLMN 102 may be deployed in a number of differentmanners. 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 moreeNBs (radio access nodes) configured to connect UEs 110 to the E-UTRAN to thereby accessthe EPC. FIG.2 illustrates a deployment 200, such as a 5G or 6G deployment. As shown, the5GC 202 is the CN, and the next generation (NG) radio access network (NG-RAN) 204 is theRAN; and the NG-RAN includes one or more gNBs 206 (radio access nodes) configured toconnect UEs 208 to the NG-RAN to thereby access the 5GC. The term ‘gNB’ in 5G maycorrespond 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 moreng-eNBs that are configured to communicate with the 5GC, and that may also be configuredto 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, accordingto some example implementations. As shown, the deployment includes the 5GC 202, andNG-RAN 204 with one or more gNBs 206 configured to connect UEs 208 to the NG-RAN tothereby 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 sliceselection 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 policyenforcement 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 sessionmanagement (SM), UE Internet Protocol (IP) address allocation and management, selectionand 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 aspacket 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 isthe 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. TheDN 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 specificservices and applications. The AF communicates with other NFs to request and manage network resources, ensuring that the network adapts to the requirements of differentapplications and services. The NEF 310 allows authorized third-party applications andservices 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 otherradio 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 between5GC 202 (or other CN) operations and gNB (or other radio access node) operations may varydepending 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 networkthrough 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 mediastreaming 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 predominantlysent only in a single direction, such as downlink to a UE 110 at which the media is consumedas 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 shownis a 5GMSd application provider 412 configured to use 5GMS for streaming services. The5GMSd application provider may provide a 5GMS aware-application 414 on the UE to makeuse 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. The5GMSd 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 interfaceto the 5GMS AS 404 via the reference point M3d. The 5GMSd AF provides various controlfunctions to the 5GMSd application provider and / or the media session handler. The 5GMSdAM may also relay or initiate a request for different treatment from the PCF 308 usingreference point N33 of the 5G system, or interact with other NFs via the NEF 310 usingreference point N5 of the 5G system.
[0057] The 5GMSd AS 404 is an AS 314 dedicated to downlink 5G media streaming. The5GMSd 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 referencepoint 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 hostingfeatures such as ingesting media content from the 5GMSd application provider, cachingmedia 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 differentmanners, including the distribution of 5GMSd AS functionality between different physicalhosts 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 todownlink 5G media streaming. The 5GMSd client is the receiver of a 5GMS downlink mediastreaming service. The media session handler 408 is a subfunction of the 5GMSd client thatcommunicates with the 5GMSd AF 402 to establish, control and support the delivery of amedia session, and may perform additional functions such as consumption and quality of experience (QoE) metrics collection and reporting. The media session handler may interfacewith 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 clientthat communicates with the 5GMSd AS 404 to stream media content in real time or downloadmedia 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) thatcontrols the 5GMSd client 406. The 5GMSd-aware application implements externalapplication 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 M8dreference point (application API), which is out of scope of 5GMS.
[0060] In today’s adaptive streaming, the overall delivery is client-driven. The clientdownloads 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 ofsuch 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 detectedcongestion, 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 deliverysuch 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 enableclient-driven delivery media streaming solutions to leverage congestion aware-protocols tooptimize the server and maximize the overall user quality of experience. According toexample 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 congestionmarkers, such as ECN bits. The indications of network congestion may be used to determinenetwork 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 presentdisclosure may enable a 5GMSd AS 404 and network(s) (e.g., CDN) to leverage L4S forclient-driven (e.g., DASH) downlink media streaming sessions, and enable a 5GMSd client406 to feed network congestion information back to the 4GMSd AS. The 5GMSd may thenbe 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 requestedby an delivered to 5GMSd client(s) during media session(s), the 5GMSd AS 404 may replacea 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 predictupcoming request(s) for segment(s) and run a transcoding task to lower the bit rate of thosesegment(s). This transcoding task may be a simple transrating task. Additionally oralternatively, 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 the5GMSd 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), the5GMSd AS 404 may update the manifest to be provided during initialization of the newmedia 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 applicationserver, 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 networkcongestion 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 informationreported 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 accessactivity, 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 thenetwork 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 onesegment 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 themedia streaming session(s).
[0074] In some examples, the 5GMSd AS 404 may be configured to predict at least oneupcoming 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 whenrequested during the media streaming session(s).
[0075] In some examples, the 5GMSd AS 404 may be configured to send a notificationregarding the level of network congestion to the 5GMSd client(s) 406. The notification mayinclude, for example, a request for the 5GMSd client(s) to switch from requesting a firstrepresentation of the media content associated with a first bit rate to requesting a secondrepresentation of the media content associated with a second bit rate lower than the first bitrate. The notification may further include an indication of a time duration for which the5GMSd 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 beavailable for delivery. In some of these examples, the 5GMSd AS 404 may be configured tocreate 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 ASmay be further configured to send a notification to the 5GMSd client(s) 406 that includes anindication of the additional representation(s) of the media content.
[0077] In some examples, a manifest comprising information describing representations ofthe media content associated with different bit rates is provided during initialization of themedia streaming session(s). The 5GMSd AS 404 may be configured to update the manifest tobe 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. The5GMSd AD AS may send a notification to the 5GMSd client(s) 406 regarding the level ofnetwork 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 ofnetwork 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 client406, 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 beneficialfor 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 toperform 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 congestioninformation may be accessed by the 5GMSd client 406 from an application function, such asa 5GMS AF (e.g., 5GMSd AF 402 or 5GMSu AF), in a network assistance session in whichthe 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 5GMSclient 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 thenetwork 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 onthe network congestion information. In some examples, in which a 5GMSd client 406 isrequesting 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 indicationsfrom 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 auser 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 sessionwith the 5GC 202 or other core network, the 5GMS client (e.g., 5GMSd client 406, 5GMSuclient) 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 PDUsession 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 thecongestion 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 requestmessage including the network congestion information to the SMF 304 or other sessionmanagement 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 requestrelease 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 acache server 502 configured to implement a 5GMSd AS 404. The 5GMS deployment alsoincludes a number of 5GMSd clients 406, including in particular client A 406A, client B406B, client C 406C, client D 406D, client E 406E and client F 406F. The cache server hasongoing 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 theongoing media sessions have respective copies of a MPD 508 (manifest) for the mediacontent, 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 406Cindicates that the second network 506 in the area of client D 406D is experiencing at least athreshold 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 theMPD 510 provided to new client D 406D. Additionally or alternatively, the cache server mayperform other congestion control operation(s) for the media content delivered to clients A, Band C, as described above. In some examples, the cache server may coordinate with a5GMSd AF 402 to check network congestion information at an instantiated data collectionAF 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. 6is a signaling chart 600 of 5GMSd session initialization and streaming session procedures. Asshown at step 601, the 5GMSd session initialization procedure includes the 5GMSd-awareapplication 414 starts media playback. The media player 410 of the 5GMSd client 406 at step602 requests a media player entry from the 5GMSd AS 404. The 5GMSd AS at step 603notifies the 5GMSd AF 402 about a new request, and the 5GMSd AF at step 604 acquirescongestion 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 therequest, and if some additional processing is required. The processing decision can betriggered 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 the5GMSd AS 404. If a processing has been decided, the 5GMSd AS at step 607 runs one ormore 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 player410. The media player then at step 609 processes the media player entry and identifies thatcontent 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 selectsthe 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 segmentsfrom the 5GMSd AS, as shown at steps 611 and 612.
[0093] FIGS. 7A – 7H are flowcharts illustrating various steps in a method 700 according tovarious 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 shownat block 702 of FIG. 7A. The method includes receiving network congestion informationreported 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 atleast one network dropping packets of the media content, as shown at block 704. The methodincludes 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 anddelivered to the at least one client. In some of these examples, performing the at least onecongestion control operation at block 708 comprises replacing at least one segment of themedia content that is requested at a first bit rate with at least one corresponding segmentassociated with a second bit rate that is lower than the first bit rate, the at least onecorresponding segment delivered to the at least one client during the at least one mediastreaming session, as shown at block 710 of FIG. 7B.
[0095] In some examples in which the media content is encoded in segments that arerequested by and delivered to the at least one client, performing the at least one congestioncontrol operation at block 708 comprises predicting at least one upcoming request for at leastone segment of the media content, as shown at block 712 of FIG. 7C. In some of theseexamples, 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 themedia content that is delivered to the at least one client when requested during the at least onemedia streaming session, as shown at block 714.
[0096] In some examples, performing the at least one congestion control operation at block708 comprises sending a notification regarding the level of network congestion to the at leastone client, as shown at block 716 of FIG. 7D. In some of these examples, the notificationcomprises a request for the at least one client to switch from requesting a first representationof the media content associated with a first bit rate to requesting a second representation ofthe 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 durationfor 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 availablefor 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, asshown at block 718 of FIG. 7E.
[0099] In some examples, the one or more media contents of the media contents comprise themedia content delivered during the at least one media streaming session. In some of theseexamples, performing the at least one congestion control operation at block 708 furthercomprises sending a notification to the at least one client, the notification comprising anindication 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 ofthe media content associated with different bit rates is provided during initialization of the atleast one media streaming session. In some of these examples, performing the at least onecongestion control operation at block 708 comprises updating the manifest to be providedduring 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 shownat block 722 of FIG. 7G.
[0101] In some examples, representations of the media content associated with different bitrates are available for delivery. In some of these examples, performing the at least onecongestion control operation at block 708 comprises sending a notification regarding the levelof 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 notificationcomprises 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 tovarious 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 atblock 802 of FIG. 8A. The method includes receiving indications of network congestion fromthe at least one without the at least one network dropping packets of the media content, asshown 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 theapplication 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 800further 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 thesegments, as shown at block 812.
[0104] In some examples, requesting the segments of the media content at block 810comprises requesting segments associated with a first bit rate from the application server, asshown at block 814 of FIG. 8C. In some of these examples, receiving the segments at block812 comprises receiving at least one corresponding segment in place of at least one segmentof 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 fromthe 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 theat least one segment. And receiving at the segments block 812 comprises receiving the atleast 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, andthe method 800 further includes receiving a notification regarding the level of networkcongestion from the application server, as shown at block 820 of FIG. 8E. In some of theseexamples, 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 ofthe media content associated with different bit rates is received during initialization of themedia session. In some of these examples, the method 800 further includes receiving anotification regarding the level of network congestion from the application server, the notification comprising an updated manifest in which at least one of the representations witha higher bit rate of the different bit rates is removed from the manifest, as shown at block 824of FIG.8F.
[0108] FIGS. 9A – 9I are flowcharts illustrating various steps in a method 900 according tovarious example implementations. The method includes initiating a media streaming session for receiving media content delivered by an application server over at least one network, asshown at block 902 of FIG. 9A. The method includes accessing network congestioninformation 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 onenetwork dropping packets transported through the at least one network, as shown at block904. 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 904comprises 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 904comprises receiving the indications of network congestion from the at least one networkduring the media streaming session, as shown at block 910 of FIG. 9C. In some of theseexamples, 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 900further 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 block906 comprises switching to requesting at least one of the segments with a second bit ratelower 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 block906 comprises requesting establishment of a packet data unit (PDU) session to carry themedia streaming session, based on the network congestion information, as shown at block920 of FIG. 9E.
[0113] In some examples, requesting establishment of the PDU session at block 920comprises 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 ofservice 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 includesreceiving 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 congestioninformation, as shown at block 926 of FIG. 9G.
[0115] In some examples, requesting modification of the PDU session at block 926comprises sending a PDU session modification request comprising the network congestioninformation, as shown at block 928 of FIG. 9H. In some of these exampels, the PDU sessionmodification 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 PDUsession, performing the at least one congestion control operation at block 906 comprisesrequesting release of the PDU session based on the network congestion information, asshown at block 930 of FIG. 9I.
[0117] According to example implementations of the present disclosure, atelecommunications system 100 or PLMN 102, and its components such as a UE 110, CN106, 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, 5GMSaware-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 700described 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 themethod 800 described with respect to FIGS. 8A-8F may be carried out by an apparatuscomprising means for performing functions corresponding steps of the method. And at leastsome of the method 900 described with respect to FIGS. 9A-9I may be carried out by anapparatus 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 functionsincludes 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 incombination 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 processingcircuitry 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 processoror 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 maybe capable of performing one or more functions without the aid of a computer program. Ineither 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 ofstoring 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. Oneexample 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 ondata storage persistency (e.g., RAM versus ROM). A computer-readable medium asdescribed 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), theprocessing circuitry 1002 may also be connected to one or more interfaces for displaying,transmitting and / or receiving information. The interfaces may include a communicationsinterface 1008 and / or one or more user interfaces. The communications interface may beconfigured 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 inputinterfaces 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-emittingdiode (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 theinstructions in the memory 1004, supports combinations of operations for implementingexample implementations of the present disclosure. In this manner, an apparatus 1000 maycomprise 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 inthe 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, aprocessing 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 forimplementing the functions specified herein. The instructions may also be stored in acomputer-readable medium that can direct a computer, a processing circuitry or otherprogrammable 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 instructionsmay 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, withoutlimitation, the following example implementations.
[0131] Clause 1. An apparatus comprising: at least one memory configured to storeinstructions; 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 networkcongestion information based on indications of network congestion received from the at leastone 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 insegments 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 islower 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 encodedin 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 toperform 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 anindication 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 aplurality 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 themedia 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 comprisinginformation describing representations of the media content associated with different bit ratesis 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 mediacontent associated with different bit rates are available for delivery, and wherein the apparatus caused to perform the at least one congestion control operation comprises theapparatus caused to send a notification regarding the level of network congestion duringinitialization 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 leastone 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 mediacontent; means for determining a level of network congestion based on the networkcongestion 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 insegments 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 isencoded 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 onesegment 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 forperforming 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 anindication 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 oneof 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 themedia 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 comprisinginformation 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 themedia content associated with different bit rates are available for delivery, and wherein themeans 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 networkto 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 insegments 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 isencoded 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 onecongestion 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 anindication 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 secondrepresentation of the media content.
[0154] Clause 24. The method of any of clauses 19 to 23, wherein the media content is one ofa 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 themedia contents comprise the media content delivered during the at least one media streaming session, and wherein performing the at least one congestion control operation furthercomprises sending a notification to the at least one client, the notification comprising anindication of the one or more additional representations.
[0156] Clause 26. The method of any of clauses 19 to 25, wherein a manifest comprisinginformation describing representations of the media content associated with different bit rates is provided during initialization of the at least one media streaming session, and whereinperforming the at least one congestion control operation comprises updating the manifest tobe 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 themedia 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 hasinstructions 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 ofnetwork 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 mediacontent 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, whereinthe 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 thenotification 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 withrepresentations encoded for different bit rates available for delivery, and wherein theapparatus 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 mediacontents of the plurality of media contents associated with a bit rate other than the differentbit rates.
[0164] Clause 34. The computer-readable storage medium of clause 33, wherein the one ormore 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 leastone congestion control operation further comprises the apparatus caused to send a notificationto 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 mediastreaming session, and wherein the apparatus caused to perform the at least one congestioncontrol 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, thenotification comprising an indication of one of the representations that is recommended basedon the different bit rates and the level of network congestion.
[0167] Clause 37. An apparatus comprising means for performing the method of any ofclauses 19 to 27.
[0168] Clause 38. A computer-readable medium comprising instructions that, in response toexecution 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, inresponse 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 executionby 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 storeinstructions; 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 insegments, 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 thesegments 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 themedia 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 arerequested 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 torequesting 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 comprisinginformation 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, thenotification comprising an updated manifest in which at least one of the representations witha 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 byan 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 insegments, 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 segmentsof 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 themedia 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 arerequested 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 comprisinginformation 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 applicationserver 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 insegments, 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 mediacontent 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 mediacontent 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 requestedwith 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 comprisinginformation 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 hasinstructions 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 themedia content; determine network congestion information based on the indications ofnetwork 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 mediacontent 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 theapparatus 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 segmentsassociated 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, whereinthe 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, andwherein the computer-readable storage medium has further instructions stored therein that, inresponse 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 representationswith 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 ofclauses 53 to 58.
[0196] Clause 66. A computer-readable medium comprising instructions that, in response toexecution 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, inresponse 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 executionby 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 storeinstructions; 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 thenetwork 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 toaccess 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 isencoded 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 toperform 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 requestestablishment 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 networkcongestion 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 streamingsession 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 requestmodification 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 streamingsession 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 sessionfor receiving media content delivered by an application server over at least one network; means for accessing network congestion information for the media streaming session, thenetwork congestion information determined based on indications of network congestionreceived 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 networkcongestion 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 accessingthe 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 isencoded in segments, wherein the apparatus further comprises: means for requestingsegments 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 forperforming 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 requestingestablishment 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 streamingsession 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 modificationof 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 streamingsession 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 PDUsession based on the network congestion information.
[0217] Clause 87. A method comprising: initiating a media streaming session for receivingmedia 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 leastone 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 congestioninformation 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 networkcongestion 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 isencoded 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 onecongestion 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 PDUsession 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 streamingsession 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 PDUsession comprises sending a PDU session modification request comprising the network congestion information, the PDU session modification request sent to a session managementfunction 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 streamingsession 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 hasinstructions 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 contentdelivered by an application server over at least one network; access network congestioninformation 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 onenetwork dropping packets transported through the at least one network; and perform at leastone 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 theapparatus caused to access the network congestion information comprises the apparatus caused to carry out a network assistance session with an application function in which thenetwork 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, whereinthe 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 operationcomprises 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 theapparatus 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 theapparatus 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 ofclauses 87 to 95.
[0236] Clause 106. A computer-readable medium comprising instructions that, in response toexecution 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, inresponse 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 toexecution 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 willcome 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
CLAIMS1. 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 network 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.
2. The method of claim 1, wherein the media content is encoded in segments that arerequested 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.
3. The method of claim 1 or claim 2, wherein the media content is encoded in segments thatare 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.
4. The method of any of claims 1 to 3, wherein performing the at least one congestion controloperation 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 fromrequesting 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.
5. The method of claim 4, wherein the notification further comprises an indication of a timeduration 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.
6. The method of any of claims 1 to 5, wherein the media content is one of a plurality ofmedia 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.
7. The method of claim 6, wherein the one or more media contents of the media contentscomprise 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.
8. The method of any of claims 1 to 7, wherein a manifest comprising information describingrepresentations 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.
9. The method of any of claims 1 to 8, wherein representations of the media contentassociated with different bit rates are available for delivery, andwherein 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.
10. An apparatus comprising means for performing the method of any of claims 1 to 9.
11. A computer program comprising instructions that, in response to execution by at least oneprocessing circuitry, causes an apparatus to perform the method of any of claims 1 to 9.
12. 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 network 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.
13. The method of claim 12, wherein the media content is encoded in segments, wherein themethod further comprises requesting segments of the media content, and wherein receiving the media content comprises receiving the segments.
14. The method of claim 13, wherein requesting the segments of the media content comprisesrequesting 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.
15. The method of claim 13 or claim 14, wherein the segments of the media content arerequested 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 reducea bit rate of the at least one segment, andwherein 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 bitrate, 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 informationdescribing 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 oneprocessing circuitry, causes an apparatus to perform the method of any of claims 12 to 17.
Citation Information
Patent Citations
Communication method and apparatus
EP4391639A1
Communication method and apparatus
WO2023046118A1