Skip to main content
DVB-I Services over 5G

Tutorials

Three tutorials cover the DVB-I tools themselves, each complete on its own:

Two more tutorials add the 5G parts, each complete on its own:

The walkthroughs below cover a phone on Wi-Fi and the DVB-I-aware 5GMS application. The first runs the DVB-I chain on a laptop and plays it on a phone over Wi-Fi with the Android DVB-I client. The second stands up a DVB-I-aware 5GMS application and walks through verifying that DVB-I service discovery is working, on top of the plain 5GMS end-to-end deployment. For background on the specifications and architecture it exercises, see the Implementation status page; for the underlying repositories, see Repositories on the project index.

DVB-I on a phone over Wi-Fi​

What you will build: the DVB-I chain of rt-dvb-i-examples on a laptop (a Service List Registry, the Application Provider with its service list and content guide, and a media origin encoding your own files live as DASH), with the DVB-I over 5G Reference App (on the phone, 5G-MAGflix for DVB-I), the Android client of rt-dvb-i-android-application, discovering the list and playing the channels on a phone on the same Wi-Fi network.

Media origin not yet public

The demo serves its media from rt-media-origin, which is not yet public. Until it is, the steps below cannot be run end to end from the public repositories alone.

1. Prerequisites​

  • On the laptop: Node.js 18 or newer with npm, ffmpeg (with ffprobe), python3 and curl, and the repositories checked out side by side as the demo's README lists them. Your own H.264/AAC MP4 files, in the directory CONTENT_ROOT in env.sh points at.
  • The genre classification schemes the registry needs, in GENRE_CS_DIR (the registry's README says where each comes from).
  • To build the app: a JDK 17 or 21 and the Android SDK with platform android-37.0 and build-tools 37.0.0, installed as the app's README shows.
  • A phone with Android 10 or newer, on the same Wi-Fi network as the laptop.

2. Start the DVB-I chain on the laptop's Wi-Fi address​

Set DEMO_HOST to the laptop's own address on the Wi-Fi network:

cd rt-dvb-i-examples/scripts/dvbi-live-demo
DEMO_HOST=192.168.1.202 ./start-all.sh

The media origin then also listens on the network, and the service list, the logos, the content guide endpoints and the registry give out that address instead of localhost. ./status.sh shows every channel as LIVE once its encoder is publishing.

3. Build and install the app​

cd rt-dvb-i-android-application/
./gradlew assembleDvbiDebug # app/build/outputs/apk/dvbi/debug/app-dvbi-debug.apk
adb devices
adb install -r app/build/outputs/apk/dvbi/debug/app-dvbi-debug.apk

The app reaches plain HTTP only on the hosts named at build time. The default is 192.168.1.202; for another address, build with -PdvbiCleartextHosts=<address>, and set the default endpoints with -PdvbiServiceListUrl=... and -PdvbiRegistryUrl=....

4. Discover the list and play​

On the phone, the defaults point at the laptop: the service list at http://192.168.1.202:4000/service-list.xml and the Service List Registry at http://192.168.1.202:7000/query. In Settings, Query the registry and pick a list sends the query and offers the lists with the default marked; Save installs the chosen one.

  • The home screen shows the services with their channel numbers, now and next, and badges for ratings, access services and delivery.
  • Selecting a service plays it with Media3 ExoPlayer; the schedule, the programme guide and programme information come from the provider's content guide.
  • While the endpoints are reached without TLS, a notice under the top bar says so; a tap opens the warning. ETSI TS 103 770 V1.2.1 clause 7.3: "For the specific case that a DVB-I client connects to a DVB-I metadata endpoint located on the same private subnet (see clause 3 of IETF RFC 1918 [27]), HTTP may be used without TLS."

When you are done, stop the chain with the same DEMO_HOST:

DEMO_HOST=192.168.1.202 ./stop-all.sh
You now have a phone discovering a DVB-I service list and playing its channels from your own media.

DVB-I with 5G Media Streaming​

The 5GMSd-Aware Application and the Exo DVB-I Player are built from rt-5gms-application. Its README describes the 5GMSd-Aware Application as driven by the M8 JSON source list of the 5GMS end-to-end tutorial, not by a DVB-I service list, and the Exo DVB-I Player is a patched ExoPlayer demo whose launch URL is fixed in the patch. No documented procedure points either at a service list of your own.

What you can do today is follow the DVB-I over 5G with 5G Media Streaming tutorial: it publishes a service list whose service instance points at a 5GMS Media Entry Point (M4d) and shows what the browser client does with it. Sections that need a 5GMS Application Function and Application Server are marked Not run on that page.

You now have a DVB-I-aware 5GMS application running, with playback driven by DVB-I service discovery instead of a hard-coded stream.

Next steps​

Watch

Developer Exchange​

Our YouTube channel hosts some practical videos provided by developers on the use of the Reference Tools.

Some of the videos are also available here.

The recorded talk below demonstrates the DVB-I over 5G Reference Tools in use.

No DVB-I Services over 5G Systems-specific videos are curated here yet. In the meantime, here's what's recent from the wider Developer Exchange:

Video

Connecting MBSTF to the MBS System - Developer Exchange

Josep Ribes Rodríguez-Moldes (iTEAM-UPV)

Video

Introducing the Avatar Real-Time Communication Project - Developer Exchange

Nils Duval (Motion Spell)

Video

5G Media Streaming: Latest Additions - Developer Exchange

Daniel Silhavy (Fraunhofer FOKUS)

Video

MBS User Services for 5G MBS (Release 18) - Developer Exchange

Richard Bradbury, Dev Audsin and David Waring (BBC)

Video

Advanced Media Delivery: CMCD Metrics in Action - Developer Exchange

Shilin Ding (Qualcomm)

Video

Initial steps exposing APIs to AI systems through the MCP - Developer Exchange

Aarón Montilla (iTEAM-UPV)

Browse all 5G-MAG videos →