Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Reference Video Application

Reference application for online video streaming.

This application is implemented to be a reference video catalogue and player application for DASH content on HbbTV 1.5 and 2.0.1 devices, with various DRM and subtitle tests.

Application prowides test cases and test material done with tools included in tools

  • DASH Clear content AVC / HEVC
  • DRM (Playready, Marlin, Clearkey)
  • Out-of-Band Subtitles
  • Inband subtitles
  • Inband CueData
  • Audio selection
  • Ad insertion (pre-roll and mid-roll)
  • Live DASH
  • MultiPeriod DASH

The software is under continuous development and licensed with MIT License. Issues can be reported here in github (PLEASE REMEMBER TO ASSIGN YOUR ISSUE TO JUHA JOKI) or you may send email to for any problems or questions

Usage, testing, installation, integration:



  • Updated in line with Test Suite, 3 times a year
  • HbbTV 2.0.1 and 1.5 Playready and Marlin DRM streams
  • Also non-DRM streams for reference and including MSE/EME for non HbbTV browsers
  • Subtitle and audio stream selection via color buttons
  • Live and VOD DASH profiles
  • available at


  • Intended for testing of new features considered stable enough
  • Will be in line with github repository
  • Low latency (multi moof/mdat) Live and VOD DASH
  • available at


Multiperiod DASH content

Please refer to multi-period text file for information regarding multi-period DASH content.

From the user point of view one should see on the TV screen

  • the notifications/pop-ups of received EMSG and MPD events
  • the transitions between main content (llama drama cartoon) and ad contents (orange test video with time counters).

Always check the readme for complete list of events. Transitions are listed below, and the device should follow this timeline.

Period p1: 00:00:00-00:01:00, 60s, 00_llama (main 00:00:00-00:01:00)
00:00:00 ( 0s)   MPD event,  value=1a2b3m, id=10
00:00:01 ( 1s)   MPD event,  value=1a2b3m, id=11
00:00:08 ( 8s)   EMSG event, value=1a2b3c, id=1 (segment 5.m4s)
00:01:00 (60s)   MPD event,  value=1a2b3m, id=12
Period p2: 00:01:00-00:01:30, 30s, test01 (advert 1 00:00:00-00:00:30)
Period p3: 00:01:30-00:02:00, 30s, test02 (advert 2 00:00:00-00:00:30)
Period p4: 00:02:00-00:02:30, 30s, test03 (advert 3 00:00:00-00:00:30)
Period p5: 00:02:30-00:03:30, 60s, 00_llama (main 00:01:00-00:02:00)
Period p6: 00:03:30-00:04:00, 30s, test01 (advert 1 00:00:00-00:00:30)
Period p7: 00:04:00-00:04:30, 30s, test02 (advert 2 00:00:00-00:00:30)
Period p8: 00:04:30-00:05:00, 30s, test03 (advert 3 00:00:00-00:00:30)
Period p9: 00:05:00-00:06:00, 60s, 00_llama (main 00:02:00-00:03:00)
Period p10: 00:06:00-00:07:30, 90s, test00 (advert 1+2+3 00:00:00-00:01:30)
Period p11: 00:07:30-00:10:56, 206s, 00_llama (main 00:03:00-06:26:00)


Components and modules:

See components and modules listing at integration guide

Catalogue menu structure:

Mainmenu, submenus, assets and actions are configured in config.json file.

The file can be changed to any endpoint for data to make static menu dynamic.

Menu structure for the catalogue app should respect used json structure that is designed to represent a vod catalogue build by mainmenu and submenus.

Overall menu structure or datamodel is documented here: datamodel


No description or website provided.





No releases published


No packages published

Contributors 4