Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

M8 Reference point for Service Access Information - Media Entry Point #1

Closed
dsilhavy opened this issue Aug 25, 2022 · 1 comment
Closed

Comments

@dsilhavy
Copy link
Contributor

dsilhavy commented Aug 25, 2022

Feature description

The 5GMS-Aware Application needs information from the 5GMS Application Provider in order to determine the Media Entry Point (MPD, master .m3u8) hosted on the 5GMS AS. This is provided by a proprietary protocol between the 5GMS Application Provider and the 5GMS-Aware Application using the interface at a reference point M8. The information conveyed via the interface at M8 is dependent on how the Application Provider wishes to manage the media assets. It is typically generated by a Content Management System (CMS) as part of a data feed that populates a content guide user experience.

The information provided via M8 can be used by the Application Provider in two distinct ways:

  1. A Provisioning Session for a single VoD catalogue item or linear stream
    • The M8 information contains only the Provisioning Session Id for a single content item or stream.
    • The Content Hosting Configuration was created with distributionConfiguration.entryPoint objects, with relative path details, which are then provided as absolute entry points in the M5 Service Access Information.
    • The application initiates playback via the Media Session Handler (reference point M6) using the Provisioning Session Id.
      • The Media Session Handler requests the Service Access Information via reference point M5, selects an entry point suitable for the Media Stream Handler/Media Player and tells the Media Stream Handler/Media Player to start playback (via reference point M7).
  2. A Provisioning Session intended to be used for multiple different VoD catalogue items or linear streams
    • The M8 information contains the Provisioning Session Id and entryPoints for a piece of media
    • The Application Provider set up a Provisioning Session for a common top-level media entry point prefix, but there are no distributionConfiguration.entryPoint objects in the ContentHostingConfiguration. Entry points for individual VoD catalogue items or linear streams are provided via M8 and there may be multiple different media all using the same Provisioning Session.
    • The application initiates media session handling (including reporting) by providing the Provisioning Session Id to the Media Session Handler via reference point M6 and may optionally pass the selected entry point URL to the Media Session Handler for it to initiate media playback in the Media Stream Handler (Media Player).
    • Or the application may directly initiate media playback by passing the selected entry point URL to the Media Stream Handler (Media Player) via reference point M7.

The information passed at interface at reference point M8 may also describe a mixture of these two approaches, with some media items having their own Provisioning Session and some sharing a common Provisioning Session.

For the use in the 5G-MAG examples we will come up with our own format for the messages at M8.

Single media for a Provisioning Session

When a Provisioning Session is just for a single piece of media (possibly in multiple formats such as DASH and HLS) then the entry points for the media can be provided to the 5GMS Application Function via the ContentHostingConfiguration, for example these two ContentHostingConfigurations (which for the sake of this example the Application Function will be attaching to Provisioning Sessions 2 & 3 respectively):

{
	"name": "AMP Demo Stream: Big Buck Bunny",
	"ingestConfiguration": {
		"pull": true,
		"protocol": "urn:3gpp:5gms:content-protocol:http-pull-ingest",
		"baseURL": "http://amssamples.streaming.mediaservices.windows.net/622b189f-ec39-43f2-93a2-201ac4e31ce1/BigBuckBunny.ism/"
	},
	"distributionConfigurations": [
		{
			"domainNameAlias": "rt.5g-mag.com",
			"entryPoint": {
				"relativePath": "manifest(format=mpd-time-csf)",
				"contentType": "application/dash+xml",
				"profiles": ["urn:mpeg:dash:profile:isoff-live:2011"]
			}
		},
		{
			"domainNameAlias": "rt.5g-mag.com",
                        "entryPoint": {
                                "relativePath": "manifest(format=m3u8-aapl-v3)",
                                "contentType": "application/vnd.apple.mpegurl"
                        }
		}
	]
}

...and...

{
	"name": "AMP Demo Stream: Caminandes: Llama Drama",
	"ingestConfiguration": {
		"pull": true,
		"protocol": "urn:3gpp:5gms:content-protocol:http-pull-ingest",
		"baseURL": "http://amssamples.streaming.mediaservices.windows.net/634cd01c-6822-4630-8444-8dd6279f94c6/CaminandesLlamaDrama4K.ism/"
	},
	"distributionConfigurations": [
		{
			"domainNameAlias": "rt.5g-mag.com",
			"entryPoint": {
				"relativePath": "manifest(format=mpd-time-csf)",
				"contentType": "application/dash+xml",
				"profiles": ["urn:mpeg:dash:profile:isoff-live:2011"]
			}
		},
		{
			"domainNameAlias": "rt.5g-mag.com",
                        "entryPoint": {
                                "relativePath": "manifest(format=m3u8-aapl-v3)",
                                "contentType": "application/vnd.apple.mpegurl"
                        }
		}
	]
}

This will then allow the 5GMS AF to provide Service Access Information for these two streams via the interface at reference point M5.

For the two examples these would be:

http://rt.5g-mag.com:7778/3gpp-m5/v2/service-access-information/2

{
    "provisioningSessionId": "2",
    "provisioningSessionType": "DOWNLINK",
    "streamingAccess":	{
        "entryPoints":	[
	    {
	        "locator": "http://rt.5g-mag.com/m4d/provisioning-session-2/manifest(format=mpd-time-csf)",
	        "contentType": "application/dash+xml",
	        "profiles": ["urn:mpeg:dash:profile:isoff-live:2011"]
	    },
	    {
		"locator": "http://rt.5g-mag.com/m4d/provisioning-session-2/manifest(format=m3u8-aapl-v3)",
                "contentType": "application/vnd.apple.mpegurl"
	    }
	]
    }
}

...and...
http://rt.5g-mag.com:7778/3gpp-m5/v2/service-access-information/3

{
    "provisioningSessionId": "3",
    "provisioningSessionType": "DOWNLINK",
    "streamingAccess":	{
        "entryPoints":	[
	    {
	        "locator": "http://rt.5g-mag.com/m4d/provisioning-session-3/manifest(format=mpd-time-csf)",
	        "contentType": "application/dash+xml",
	        "profiles": ["urn:mpeg:dash:profile:isoff-live:2011"]
	    },
	    {
		"locator": "http://rt.5g-mag.com/m4d/provisioning-session-3/manifest(format=m3u8-aapl-v3)",
                "contentType": "application/vnd.apple.mpegurl"
	    }
	]
    }
}

Because the entryPoints are surfaced in the ServiceAccessInformation, which is retrieved by the Media Session Handler using the interface at reference point M5, it is not necessary to provide these entry points over M8.

Therefore the M8 information could look like:

{
	"m5BaseUrl": "http://rt.5g-mag.com:7778/3gpp-m5/v2/",
	"serviceList": [
		{
			"provisioningSessionId": "2",
			"name": "AMP Demo Stream: Big Buck Bunny"
		},
		{
			"provisioningSessionId": "3",
			"name": "AMP Demo Stream: Caminandes: Llama Drama"
		}
	]
}

This allows the 5GMS-Aware Application to show the available stream names to the user, allowing them to select one for playback. Once selected the 5GMS-Aware Application will then ask the Media Session Handler to start media session handling for the selected Provisioning Session Id and start playback.

In this sequence, the Media Session Handler selects a suitable entryPoint for the Media Stream Handler/Media Player and to ask it to play back that stream. The 5GMS-Aware Application could supply a preferred MIME content type and/or set of profiles as additional parameters to help the Media Session Handler choose a suitable Media Entry Point from those advertised in the Service Access Information.

Multiple media for a Provisioning Session

Instead of establishing each piece of media as its own Provisioning Session (and for a VoD service there may be a few hundred thousand pieces of media) it is also possible in the framework for the Application Provider to set up a single Provisioning Session with a Content Hosting Configuration pointing to a top level URL path that can be used for multiple different media located underneath that top level. In this case the Content Hosting Configuration points to a media service rather than an individual piece of media. In such cases, the Content Hosting Configuration (and hence the Service Access Information) does not describe specific Media Entry Points.

For example (for the sake of this example we will attach this to Provisioning Session 1 in the Application Function):

{
	"name": "Azure Media Player Sample Streams",
	"ingestConfiguration": {
		"pull": true,
		"protocol": "urn:3gpp:5gms:content-protocol:http-pull-ingest",
		"baseURL": "http://amssamples.streaming.mediaservices.windows.net/"
	},
	"distributionConfigurations": [
		{
			"domainNameAlias": "rt.5g-mag.com"
		}
	]
}

The corresponding Service Access Information, provided by the 5GMS Application Function via the interface at reference point M5 would look like:

{
      "provisioningSessionId": "1",
      "provisioningSessionType": "DOWNLINK"
}

(The Service Access Information may also contain properties such as clientConsumptionReportingConfiguration for consumption reporting of the media that is played back, so is still useful to the Media Session Handler)

Now in this case the M8 information needs to provide the entry points for each piece of media the 5GMS Aware Application will make available, therefore the M8 information could look like:

{
	"m5BaseUrl": "http://rt.5g-mag.com:7778/3gpp-m5/v2/",
	"serviceList": [
		{
			"provisioningSessionId": "1",
			"name": "Big Buck Bunny",
			"entryPoints": [
				{
					"locator": "http://rt.5g-mag.com/622b189f-ec39-43f2-93a2-201ac4e31ce1/BigBuckBunny.ism/manifest(format=mpd-time-csf)",
					"contentType": "application/dash+xml",
					"profiles": ["urn:mpeg:dash:profile:isoff-live:2011"]
				},
				{
					"locator": "http://rt.5g-mag.com/622b189f-ec39-43f2-93a2-201ac4e31ce1/BigBuckBunny.ism/manifest(format=m3u8-aapl-v3)",
					"contentType": "application/vnd.apple.mpegurl"
				}
			]
		},
		{
			"provisioningSessionId": "1",
			"name": "Caminandes: Llama Drama",
			"entryPoints": [
				{
                                        "locator": "http://rt.5g-mag.com/634cd01c-6822-4630-8444-8dd6279f94c6/CaminandesLlamaDrama4K.ism/manifest(format=mpd-time-csf)",
                                        "contentType": "application/dash+xml",
                                        "profiles": ["urn:mpeg:dash:profile:isoff-live:2011"]
                                },
                                {
                                        "locator": "http://rt.5g-mag.com/634cd01c-6822-4630-8444-8dd6279f94c6/CaminandesLlamaDrama4K.ism/manifest(format=m3u8-aapl-v3)",
                                        "contentType": "application/vnd.apple.mpegurl"
                                }
                        ]
		}
	]
}

This M8 information contains multiple (in this case 2) media items all using the same Provisioning Session ID.

The 5GMS-Aware Application will present the media items to the user in much the same way it did for the Single media for a Provisioning Session case. When the user selects the media item for playback the 5GMS-Aware Application initialises the Media Session Handler with the Provisioning Session ID for the media. However, in this case it is up to the 5GMS-Aware Application to select a suitable Media Entry Point from the list provided over M8 and to request, via the Media Session Handler API at reference point M6 or directly via the Media Stream Handling API at reference point M7, that the Media Stream Handler (Media Player) begins playback.

Relevant specifications and corresponding sections

26.501 - 5G Media Streaming (5GMS); General description and architecture (Release 17)
26.512 - 5G Media Streaming (5GMS); Protocols (Release 17)

gcris-dolby added a commit that referenced this issue Jan 19, 2023
@davidjwbbc
Copy link

Updated the description of this issue with the two main use cases and some example M8 JSON for each case.

@5G-MAG 5G-MAG locked and limited conversation to collaborators Mar 31, 2023
@dsilhavy dsilhavy converted this issue into discussion #6 Mar 31, 2023

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants