Skip to main content
Media Streaming and Advanced Media Delivery

5GMSd End-to-End deployment with 5G Network

In short

This tutorial allows to: Deploy 5G Media Streaming with a 5G Network and COTS UE.

This guide describes how to setup and configure the Reference Tools to create an end to end setup consisting of the 5G Downlink Media Streaming components and a 5G Network based on Open5GS (the 5G core network) and srsRAN (the Radio Access Network, RAN).

What you will build: the same end-to-end 5GMSd deployment as the Docker end-to-end tutorial, but with the stream delivered over a real 5G Network to a commercial off-the-shelf (COTS) User Equipment (UE) rather than over the local network.

Components​

Early Access Early Access: available to members first

5GMS Application Function (AF)rt-5gms-application-function
rt-5gms-application-function-v1.4.72026-08-03 · 12w ago
5GMS Application Server (AS)rt-5gms-application-server
rt-5gms-application-server-1.2.52026-08-03 · 12w ago
5GMS-Aware Applicationrt-5gms-application
rt-5gms-application-v1.3.02026-05-26 · 22w ago
5GMS Media Session Handlerrt-5gms-media-session-handler
rt-5gms-media-session-handler-v1.3.02026-05-26 · 22w ago
5GMS Media Stream Handlerrt-5gms-media-stream-handler
rt-5gms-media-stream-handler-v1.3.02026-05-26 · 22w ago
5GMS Common Android Libraryrt-5gms-common-android-library
rt-5gms-common-android-library-v1.3.02026-05-26 · 22w ago
Common Shared Toolsrt-common-shared
rt-common-shared-v1.0.02026-08-03 · 12w ago

Prerequisites​

This tutorial reuses the server-side and client-side setup from the basic end-to-end guide; complete that first. The only 5G-specific difference is that you point the ingestURL in your streams.json at your own local webserver (see Step 6 below), and you run the whole setup over the 5G Network described next.

5G Network with COTS UE setup​

To setup the 5G Network and connect a COTS device please refer to the corresponding documentation.

5G Media Streaming setup​

Server-side setup​

Step 0: Using a local server (Skip if your content is hosted in the internet)​

Install the express.js webserver​

The express.js webserver acts as a local CDN for unicast delivery. Installation instructions are in its repository:

simple-express-serverActs as a local CDN, serving the transcoded HLS/DASH output over unicast.

Configure ffmpeg​

First, configure the ffmpeg output. Navigate to flute-ffmpeg/files and open ffmpeg-hls.sh or ffmpeg-dash.sh depending on the output format you want to create. Change the following two lines and point them to the path of the local webserver installed previously. If there is no watchfolder/hls or watchfolder/dashfolder on your webserver yet create that as well.

-hls_segment_filename /home/dsi/5gmag/simple-express-server/public/watchfolder/hls/stream_%v_data%02d.ts \
-var_stream_map "v:0,a:0" /home/dsi/5gmag/simple-express-server/public/watchfolder/hls/stream_%v.m3u8

Run ffmpeg and the express.js webserver​

Navigate to flute-ffmpeg/files and run sh ffmpeg-hls.sh or sh ffmpeg-dash.sh.

Start the express.js webserver​

Run npm start in simple-express-server. The files created by ffmpeg are now hosted and available via unicast. Try to query the master manifest to check for the availability of the files. A successful response returns the HLS master playlist, as shown below:

curl http://192.168.11.1:3333/watchfolder/hls/manifest.m3u8
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-STREAM-INF:BANDWIDTH=2305600,RESOLUTION=1280x720,CODECS="avc1.64001f,mp4a.40.2"
stream_0.m3u8

Step 1: Install the Application Function​

For details please refer to the corresponding section in the basic end-to-end guide.

Step 2: Install the Application Server​

For details please refer to the corresponding section in the basic end-to-end guide.

Step 3: Start the Application Server​

For details please refer to the corresponding section in the basic end-to-end guide.

Step 4: Basic Configuration of the Application Function​

Follow the basic configuration steps documented in the basic end-to-end guide.

Step 5: Start the Application Function​

Follow the command documented in the basic end-to-end guide.

Step 6: Create a Content Hosting Configuration and Provisioning Session​

Follow the steps to create a content hosting configuration and a provisioning session using the msaf-configuration tool.

Note that you need to point the ingestURL of your streams.json to the URL of your webserver.

Client-side setup​

With the server-side set up, focus shifts to the client side.

Step 1: Installation, Configuration and Running the 5GMSd Client​

Please follow the instructions documented in the basic end-to-end guide setup guide.

You now have the 5GMSd deployment running end-to-end over a real 5G Network. The stream travels from your Application Function and Application Server, through the Open5GS core and srsRAN RAN, to your COTS UE.

Next steps​