Scope Project Roadmap GitHub Repos Releases Tutorials Video Library Requirements

Scope

In the context of 3GPP standards, 5G Media Streaming (5GMS) is defined as a framework designed to enable high-quality, efficient delivery of media. The architecture supports services from mobile network operators and third parties including both Downlink (5GMSd) and Uplink (5GMSu) Media Streaming. The 5GMS architecture is functionally divided into independent components enabling deployments with various degrees of integration between 5G MNOs and Content Providers.

Technical documentation providing context to this project can be found in the link below.

Tech: Streaming, Media Delivery & Data Collection

A list of relevant specifications can be found in the link below.

Standards: 5G Media Streaming

What is being implemented?

The functional entities of 5G Media Streaming, instantiated for 5G Unicast Downlink Media Streaming (5GMSd), including support for various of the features specified, reference points and APIs.

A functional 5GMSd implementation is available with the building blocks highlighted with the green tick below.

This includes the implementation of the following entities: 5GMSd Application Provider, 5GMSd AS, 5GMSd AF, 5GMSd Client (with Media Session Handler and Media Player) and 5GMSd-Aware Application.

To the GitHub Repos

The following tutorials cover the deployment of an end-to-end 5GMSd implementation.

Go to the Tutorial: 5G MSd End-to-End deployment (with Docker)

Go to the Tutorial: 5G MSd End-to-End deployment with 5G Network

The following tutorials cover the deployment and testing of 5GMSd AS and AF.

Go to the Tutorial: Developing and Testing the 5GMS Application Server

Go to the Tutorial: Testing the 5GMS Application Function

Go to the Tutorial: Testing M1 and M5 APIs with Postman

Note that before the required features of the 5GMS System can be used by 5GMS Clients, they are first provisioned by a 5GMS Application Provider creating one or more Provisioning Sessions. The 5GMSd Application Provider can then specify one or more 5GMSd features in the Provisioning Session. The Provisioning Session information may include Content Hosting Configurations, Content Preparation Templates, Server Certificates, Policy Templates, a Consumption Reporting Configuration, Metrics Reporting Configurations, Edge Resources Configurations and Event Data Processing Configurations.

Once created, this is a representation of a Provisioning Session:

{
  "provisioningSessionId": "string",
  "provisioningSessionType": "DOWNLINK",
  "aspId": "string",
  "appId": "string",
  "serverCertificateIds": [
    "string"
  ],
  "contentPreparationTemplateIds": [
    "string"
  ],
  "metricsReportingConfigurationIds": [
    "string"
  ],
  "policyTemplateIds": [
    "string"
  ],
  "edgeResourcesConfigurationIds": [
    "string"
  ],
  "eventDataProcessingConfigurationIds": [
    "string"
  ]
}

Where:

  • provisioningSessionId: A unique identifier for this Provisioning Session.
  • provisioningSessionType: The type of Provisioning Session.
  • aspId: The identity of the Application Service Provider responsible for this Provisioning Session.
  • appId: The Application Identifier to which this Provisioning Session pertains.

Feature: Content Hosting

The content hosting feature provides a service equivalent to a Content Delivery Network (CDN) deployed inside or outside the Trusted DN. It includes selecting the ingest protocol and format, caching and proxying of media objects, content preparation, access protection (e.g. URL signing) and indicating a target distribution area (e.g. through geofencing).

The following are the reference points and APIs.

Once a Provisioning Session is established using the API at interface M1d, Content Hosting can be configured. The security of the content published to the 5GMS System may be guaranteed by a provisioned Server Certificate.

This is a JSON scheme of a Content Hosting Configuration:

{
  "name": "string",
  "ingestConfiguration": {
    "pull": true,
    "protocol": "string",
    "baseURL": "string"
  },
  "distributionConfigurations": [
    {
      "entryPoint": {
        "relativePath": "string",
        "contentType": "string",
        "profiles": [
          "string"
        ]
      },
      "contentPreparationTemplateId": "string",
      "edgeResourcesConfigurationId": "string",
      "canonicalDomainName": "string",
      "domainNameAlias": "string",
      "baseURL": "string",
      "pathRewriteRules": [
        {
          "requestPathPattern": "string",
          "mappedPath": "string"
        }
      ],
      "cachingConfigurations": [
        {
          "urlPatternFilter": "string",
          "cachingDirectives": {
            "statusCodeFilters": [
              0
            ],
            "noCache": true,
            "maxAge": 0
          }
        }
      ],
      "geoFencing": {
        "locatorType": "string",
        "locators": [
          "string"
        ]
      },
      "urlSignature": {
        "urlPattern": "string",
        "tokenName": "string",
        "passphraseName": "string",
        "passphrase": "string",
        "tokenExpiryName": "string",
        "useIPAddress": true,
        "ipAddressName": "string"
      },
      "certificateId": "string",
      "supplementaryDistributionNetworks": [
        {
          "distributionNetworkType": "NETWORK_EMBMS",
          "distributionMode": "MODE_EXCLUSIVE"
        }
      ]
    }
  ]
}

Note that the supported protocols in 3GPP Release 17 are:

  • HTTP pull-based content ingest protocol: urn:3gpp:5gms:content-protocol:http-pull-ingest
  • DASH-IF push-based content ingest protocol urn:3gpp:5gms:content-protocol:dash-if-ingest

Examples are available in: https://github.com/5G-MAG/rt-5gms-examples/example-files

The following tutorials describe several steps showing how to create a Provisioning Session, add Content Hosting configuration and provisioning of Server Certificates.

Go to the Tutorial: 5G MSd End-to-End deployment (with Docker)

Go to the Tutorial: Testing the 5GMS Application Function

Go to the Tutorial: Testing M1 and M5 APIs with Postman

Feature: Network Assistance

The network assistance feature enables the 5GMS Client in the UE to interrogate or manipulate the network Quality of Service for an ongoing media streaming session. It defines two mechanisms for obtaining network assistance via interactions with the PCF (AF-based network assistance) or via ANBR signalling interactions between the UE modem and the RAN (ANBR-based network assistance).

Both mechanisms allow to obtain:

  • Bit Rate Recommendation (Throughput Estimation), which allows the 5GMS Client to stay synchronized with the network’s current capabilities.
    • The client asks the 5GMS System for a bit rate estimate. The system then queries the Policy Control Function (PCF) to determine the available throughput for that specific session.
    • The client uses this data to proactively adjust its streaming speed—either by switching media quality levels (downlink).
    • It prevents stuttering and lag, ensuring a stable and consistent Quality of Experience (QoE) by staying within the network’s “QoS envelope.”
  • Delivery Boost, which is a reactive feature used to request extra network performance when needed.
    • The client requests a temporary increase in bit rate. The 5GMS System asks the PCF to modify the session parameters to grant this extra capacity.
    • If the network has spare capacity, the boost is granted. The client uses this “boost” of speed to quickly refill a depleted buffer or finish a large file transfer faster.
    • It helps the user recover from potential playback interruptions or speeds up time-sensitive data tasks.

The following are the reference points and APIs.

Note that the network assistance feature is not explicitly provisioned by the 5GMS Application Provider. It is either available for a particular media streaming session or not, depending on system pre-configuration and/or policy.

Feature: Dynamic Policies

The dynamic policies feature enables the 5GMS Client in the UE to manipulate the network traffic handling policies for an ongoing media streaming session.

The following are the reference points and APIs.

When the dynamic policy feature is offered and selected, the 5GMSd Application Provider specifies a set of policies which can be invoked for the unicast downlink streaming session. The UE becomes aware of the selected policies in the form of a list of valid Policy Template Ids.

Examples are available in: https://github.com/5G-MAG/rt-5gms-examples/example-files

This is a JSON scheme of a Policy Template:

{
  "externalReference": "string",
  "qoSSpecification": {
    "qosReference": "string",
    "maxBtrUl": "string",
    "maxBtrDl": "string",
    "maxAuthBtrUl": "string",
    "maxAuthBtrDl": "string",
    "defPacketLossRateDl": 0,
    "defPacketLossRateUl": 0
  },
  "applicationSessionContext": {
    "sliceInfo": {
      "sst": 255,
      "sd": "string"
    },
    "dnn": "string"
  },
  "chargingSpecification": {
    "sponId": "string",
    "sponStatus": "SPONSOR_DISABLED",
    "gpsi": [
      "string"
    ]
  }
}

The following tutorials describe several steps showing how to create and provision Policy Templates.

Go to the Tutorial: 5G MSd End-to-End deployment (with Docker)

Go to the Tutorial: Testing the 5GMS Application Function

Go to the Tutorial: Testing M1 and M5 APIs with Postman

Feature: Consumption Reporting

The consumption reporting feature allows consumption of downlink media streaming to be logged by the 5GMS System and exposed for analysis.

The following are the reference points and APIs.

Once a Provisioning Session is established using the API at interface M1d, Consumption Reporting can be configured.

This is a JSON scheme of a Consumption Reporting Configuration:

{
  "reportingInterval": 1,
  "samplePercentage": 100,
  "locationReporting": true,
  "accessReporting": true
}

Where:

  • reportingInterval: The interval between two consecutive consumption reports. The value shall be greater than zero.
  • samplePercentage: The proportion of media streaming clients that shall report media consumption, expressed as a floating point value between 0.0 and 100.0.
  • locationReporting: Stipulates whether the Media Session Handler is required to provide location data to the 5GMSd AF in consumption reporting messages.
  • accessReporting: Stipulates whether the Media Session Handler is required to provide consumption reporting messages to the 5GMSd AF when the access network changes during a media streaming session.

Examples are available in: https://github.com/5G-MAG/rt-5gms-examples/example-files

The following tutorials describe several steps showing how to create a Consumption Reporting Configuration.

Go to the Tutorial: 5G Media Streaming with Consumption Reporting

Go to the Tutorial: Testing the 5GMS Application Function

Go to the Tutorial: Testing M1 and M5 APIs with Postman

Feature: QoE Metrics Reporting

The QoE metrics reporting feature enables the 5GMS System to log and expose streaming performance data for further analysis.

The framework defines two distinct reporting paths:

  • RAN-based Reporting: Metrics are sent to the Operations, Administration, and Maintenance (OAM) system via the Radio Access Network.

  • AF-based Reporting: Metrics are sent directly to the network-side components (AF) of the 5GMS System.

The following are the reference points and APIs.

Once a Provisioning Session is established using the API at interface M1d, QoE Metrics Reporting can be configured.

This is a JSON scheme of a Metrics Reporting Configuration:

{
  "metricsReportingConfigurationId": "string",
  "sliceScope": [
    {
      "sst": 255,
      "sd": "string"
    }
  ],
  "scheme": "string",
  "dataNetworkName": "string",
  "reportingInterval": 0,
  "samplePercentage": 100,
  "urlFilters": [
    "string"
  ],
  "samplingPeriod": 0,
  "metrics": [
    "string"
  ]
}

Where the field metrics for downlink media streaming and for the 3GPP scheme urn:3GPP:ns:PSS:DASH:QM10 corresponds, for example, to one or more of the following quality metrics for DASH (see in green the currently supported):

  • HTTP request/response urn:3GPP:ns:PSS:DASH:QM10#HTTPList
  • List of Representation Switch Events: urn:3GPP:ns:PSS:DASH:QM10#RepSwitchList
  • Average Throughput: urn:3GPP:ns:PSS:DASH:QM10#AvgThroughput
  • Initial Playout Delay: urn:3GPP:ns:PSS:DASH:QM10#InitialPlayoutDelay
  • Buffer Level: urn:3GPP:ns:PSS:DASH:QM10#BufferLevel
  • Play List: urn:3GPP:ns:PSS:DASH:QM10#PlayList
  • MPD Information: urn:3GPP:ns:PSS:DASH:QM10#MPDInformation
  • Playout Delay for Media Start-up: urn:3GPP:ns:PSS:DASH:QM10#PlayoutDelayforMediaStartup
  • Device information: urn:3GPP:ns:PSS:DASH:QM10#DeviceInformationList

Examples are available in: https://github.com/5G-MAG/rt-5gms-examples/example-files

The following tutorials describe several steps showing how to create a QoE Metrics Reporting Configuration.

Go to the Tutorial: 5G Media Streaming with QoE Metrics Reporting

Go to the Tutorial: Testing the 5GMS Application Function

Go to the Tutorial: Testing M1 and M5 APIs with Postman

Feature: Data collection, reporting and exposure

The data collection, reporting and exposure feature enables the 5GMS System to log data relating to media streaming sessions and to expose this to subscribers in the form of Events.

The following are the reference points and APIs.

At the moment, a generic architecture for UE Data Collection and Reporting is available in the 5G-MAG Reference Tools under the following project: UE Data Collection, Reporting and Event Exposure. Note these entities are not yet implemented within the framework of 5GMS.

Summary of features supported by the 5GMS Application Function

The release versions of the 5GMSd Application Function support differing sets of interfaces, as described by the different versions of the 3GPP specifications, and differing levels of feature support for those interfaces. The following attempts to capture the feature sets and specification versions for each release, starting with the most recent release or upcoming releases.

Key

Where a feature of the specifications is supported the entry will be marked with ☑, where it is being worked on and slated for the next release the feature will be marked with ✎ and where it is unimplemented in that version the feature will be marked with ☐.

Interface reference pointSpecifications & VersionsProtocolsFeatures
M1 (server)
  • TS 26.501 v17.6.0
  • TS 26.512 v17.6.0
  • ☑ HTTP/1.1
  • ☐ HTTP/2.0
  • ☑ HTTP/1.1 over SSL/TLS
  • ☐ HTTP/2.0 over SSL/TLS
  • ☑ Content Hosting Provisioning
  • ☑ Content Protocols Discovery
  • ☑ Provisioning Sessions
  • ☑ Server Certificates Provisioning
  • ☑ Consumption Reporting Provisioning
  • ☐ Content Preparation Templates Provisioning
  • ☐ Edge Resources Provisioning
  • ☐ Event Data Processing Provisioning
  • ☑ Metrics Reporting Provisioning
  • ☑ Policy Templates Provisioning
M3 (client)
  • 5G-MAG prototype
  • ☑ HTTP/1.1
  • ☑ HTTP/2.0
  • ☑ HTTP/1.1 over SSL/TLS
  • ☑ HTTP/2.0 over SSL/TLS
  • ☑ Content Hosting Provisioning
  • ☑ Server Certificates Provisioning
M5 (server)
  • TS 26.501 v17.6.0
  • TS 26.512 v17.6.0
  • ☑ HTTP/1.1
  • ☐ HTTP/2.0
  • ☑ HTTP/1.1 over SSL/TLS
  • ☐ HTTP/2.0 over SSL/TLS
  • ☑ Service Access Information
  • ☑ Consumption Reporting
  • ☑ Dynamic Policies
      Service Data Flow Description Methods:
    • ☐ 2 Tuple
    • ☑ 5 Tuple
    • ☐ ToS
    • ☐ Flow Label
    • ☐ Domain Name
  • ☑ Metrics Reporting
  • ☑ Network Assistance
    • ☐ Throughput Estimation
    • ☑ Delivery Boost
N5 (Npcf client/server)
  • TS 29.514 v17.8.0
  • ☑ HTTP/2.0
  • ☑ HTTP/2.0 over SSL/TLS
  • ☑ Policy Authorization
  • ☑ Policy Authorization Notifications
N33 (client)
  • TS 29.591 v17.9.0
  • ☐ HTTP/2.0
  • ☐ HTTP/2.0 over SSL/TLS
  • ☐ Event Exposure
R4 (server)
  • TS 26.512 v17.6.0
  • ☐ HTTP/1.1
  • ☐ HTTP/2.0
  • ☐ HTTP/1.1 over SSL/TLS
  • ☐ HTTP/2.0 over SSL/TLS
  • ☐ Media Streaming Access
R5/R6 (client/server)
  • TS 26.512 v17.6.0
  • TS 29.517 v17.9.0
  • ☐ HTTP/1.1
  • ☐ HTTP/2.0
  • ☐ HTTP/1.1 over SSL/TLS
  • ☐ HTTP/2.0 over SSL/TLS
  • ☐ Media Streaming QoE Event
  • ☐ Media Streaming Consumption Event
  • ☐ Media Streaming Network Assistance Invocation Event
  • ☐ Media Streaming Dynamic Policy Invocation Event
  • ☐ Media Streaming Access Event
  • ☐ Event Subscription
Nbsf (client)
  • TS 29.513 v17.10.0
  • TS 29.521 v17.8.0
  • ☑ HTTP/2.0
  • ☑ HTTP/2.0 over SSL/TLS
  • ☑ Binding Information Retrieval

Summary of APIs supported for 5G Media Streaming

Relevant specifications

The table contains the 3GPP 5G Media Streaming APIs for Release 17 (TS 26.512) and Release 18 (TS 26.510 & TS 26.512). Note that the current reference implementation of the 5GMSd AF and 5GMSd AS are based on Release 17 (TS 26.510 does not exist in Release 17). In Release 18, the media session handling APIs were moved from TS 26.512 into TS 26.510 to generalise them to support the Real-Time media Communication (RTC) System as well as the 5G Media Streaming (5GMS) System. More information about the relevant specifications can be found in the following pages:

Release 17 Release 18
TS26512_CommonData.yaml TS26510_CommonData.yaml, TS26512_CommonData.yaml
TS26512_M1_ConsumptionReportingProvisioning.yaml TS26510_Maf_Provisioning_ConsumptionReporting.yaml
TS26512_M1_ContentHostingProvisioning.yaml TS26510_Maf_Provisioning_ContentHosting.yaml
TS26512_M1_ContentPreparationTemplatesProvisioning.yaml TS26510_Maf_Provisioning_ContentPreparationTemplates.yaml
TS26512_M1_ContentProtocolsDiscovery.yaml TS26510_Maf_Provisioning_ContentProtocols.yaml
TS26512_M1_EdgeResourcesProvisioning.yaml TS26510_Maf_Provisioning_EdgeResources.yaml
TS26512_M1_EventDataProcessingProvisioning.yaml TS26510_Maf_Provisioning_EventDataProcessing.yaml
TS26512_M1_MetricsReportingProvisioning.yaml TS26510_Maf_Provisioning_MetricsReporting.yaml
TS26512_M1_PolicyTemplatesProvisioning.yaml TS26510_Maf_Provisioning_PolicyTemplates.yaml
TS26512_M1_ProvisioningSessions.yaml TS26510_Maf_Provisioning_ProvisioningSessions.yaml
TS26512_M1_ServerCertificatesProvisioning.yaml TS26510_Maf_Provisioning_ServerCertificates.yaml
N/A TS26510_Maf_Provisioning_ContentPublishing.yaml
N/A TS26510_Maf_Provisioning_RealTimeCommunication.yaml
TS26512_M5_ConsumptionReporting.yaml TS26510_Maf_SessionHandling_ConsumptionReporting.yaml
TS26512_M5_DynamicPolicies.yaml TS26510_Maf_SessionHandling_DynamicPolicy.yaml
TS26512_M5_MetricsReporting.yaml TS26510_Maf_SessionHandling_MetricsReporting.yaml
TS26512_M5_NetworkAssistance.yaml TS26510_Maf_SessionHandling_NetworkAssistance.yaml
TS26512_M5_ServiceAccessInformation.yaml TS26510_Maf_SessionHandling_ServiceAccessInformation.yaml
PreStd* TS26512_Mas_Configuration_ContentHosting.yaml
PreStd* TS26512_Mas_Configuration_ContentPreparationTemplates.yaml
PreStd* TS26512_Mas_Configuration_ContentPublishing.yaml
PreStd* TS26512_Mas_Configuration_ServerCertificates.yaml
N/A TS26512_R2_DataReporting.yaml
TS26512_R4_DataReporting.yaml TS26512_R4_DataReporting.yaml
N/A TS26512_EventExposure.yaml

Legend

TEXT = Already implemented in 5G-MAG Reference Tools

TEXT = In the implementation roadmap in 5G-MAG Reference Tools

PreStd* = Implementatio of a pre-standardisation variant of the 5GMS AS configuration API at reference point M3d that is similar to what eventually appeared in Release 18. The service name is different and so are some details.

Note that not all aspects of these APIs are implemented. For example Content Preparation, Edge resources, Geo-fencing and URL signing in TS26512_M1_ContentHostingProvisioning.yaml are not implemented.

High-level architectures

5G Media Streaming: Repositories 3GPP RAN and Core Platforms: Repositories Common Tools: Repositories

5G Media Streaming: Repositories UE Data Collection, Reporting and Event Exposure: Repositories 3GPP RAN and Core Platforms: Repositories Common Tools: Repositories

5G Media Streaming: Repositories 5GC Service Consumers: Repositories 3GPP RAN and Core Platforms: Repositories Common Tools: Repositories

5G Media Streaming: Repositories 5G Broadcast: Repositories Multimedia content delivery protocols: Repositories 3GPP RAN and Core Platforms: Repositories Common Tools: Repositories

Docker deployment support

Docker-Compose setups are provided to run the 5GMS Application Function, the 5GMS Application Server and the 5GMS Application Provider in Docker container environments.

5G Media Streaming: Repositories


Back to top

Copyright © 5G-MAG - The Media Connectivity Association