The Digital Media Project

Date

2013/02/23

No.

1334

Source

L. Chiariglione

Title

The OCTV implementation

The OCTV implementation

1        Introduction

“Connected TV” is seen by many as the means to provide the much sought-after convergence between traditional broadcast television and various new forms of video delivery. However, the largely proprietary implementations of Connected TV are a major impediment to the development of a promising new market of content, products, services and applications.

The Digital Media Project (DMP) has developed a Specification of Connected TV (dmp1317) called Open Connected TV (OCTV) and commissioned a Software Implementation of (OCTV) made available to DMP members subject to the OCTV implementation software licence (dmp1331).

2        Walkthrough

The OCTV implementation refers to the following usage scenario.

Fig. 1 – OCTV Devices of the usage scenario

where

  1. OCTV Devices are devices built according to the subset of OCTV technologies employed in the OCTV Specification (dmp1317).
  2. Creator operates Source to upload video and metadata to an OCTV Device called Server
  3. Server prepares video for DASH streaming and presents all videos and corresponding metadata to a web page
  4.     End User operates Sink to view information on videos and eventually request DASH streaming of a specific video.

Source is an OCTV Device by means of which a Creator can

  1.     Create MP21 files (Content) with
    1. Audio-visual sequence
    2. Metadata
    3. Licence
  2.     Store Content to Server

Server is an OCTV Device performing the following functions

  1.     Prepare audiovisual sequences for DASH streaming
  2.     Post Content
  3.     Receive Content requests
  4.     Stream audiovisual sequences according to the DASH standard as requested by Sink

Sink is an OCTV Device by means of which an End User can

  1.     Request DI of a given audio-visual sequence from Server
  2.     Present metadata and licence information to the user
  3.     Verify licence
  4.     Request Server to DASH-stream audio-visual sequence

Table 1 is the walkthrough where

  1.     the 1st column represents the entities (humans and Devices) involved
  2.     the 2nd column represents the functions performed by an entity
  3.     the 3rd column represents the technologies involved.

Table 1 – Walkthrough and technologies

Who

What

How

Creator

    Launches app in Source

 

Source

    Presents forms

 

Creator

    Uploads audio-visual sequence

AVC+AAC

 

    Inputs metadata

Subset of SMP

 

    Inputs licence data

REL

Source

    Creates Content

DI, MP21 file

Creator

    Stores Content to Server

Store Content ES

Server

    Stores audio-visual sequence

MPEG21 File, DI

 

    Prepares audio-visual sequence for streaming

DASH preparation

 

    Stores Digital Item

 
 

    Posts Digital Item

Post Content ES

End User

    Visits Server’s web page

 
 

    Selects Content

 
 

    Requests Digital Item

Request Content ES

Sink

    Presents Metadata & Licence

DI, SMP, REL

 

    Plays Digital Item

 
 

    Verify licence

Verify Licence ES

 

    If licence terms allow, requests video

DASH

 

5.     Play video

Media Framework

Server

    DASH streams audio-visual sequence

Deliver Content, DASH

3        Architecture

The 3 OCTV Devices in Fig. 1 conform to the 3-layer architecture of ISO/IEC 23006-1 MPEG-M Architecture.

Fig. 2 – OCTV Device Architecture

Currently the “Security” functionality is not implemented.

4        Engines

The OCTV Implementation provides the list of MXM Engines supporting the walkthrough described in Chapter 2.

Table 1 – Protocol and Technology Engines required

Protocol Engine

Technology Engine

Create Content

DI

Create Licence

REL

 

Media Framework

Describe Content

Metadata

Identify Content

 

Package Content

MP21

 

Media framework

Source code of Protocol and Technology Engines can be found at http://wg11.sc29.org/mxmsvn/repos/java.

5        OCTV Devices

The following Applications, Protocol Engines and Technology Engines are used in the 3 OCTV Devices, as follows

Table 1: Applications, Functionalities and Engines

Device

Applications

Protocol Engines

Technology Engines

Source

App presents GUI

   
 

User inputs resource URI

   
 

User inputs metadata

 

MetadataTE

 

User inputs licence

 

LicenseTE

 

App creates DI

createContentPE

 
 

App creates MP21 File

 

MP21FFTE

 

App uploads MP21 File

   

Server

App1 waits for Source ES requests

createContentPE

MetadataTE

     

LicenseTE

     

DigitalItemTE

   

identifyContentPE

 
 

App1 unpacks MP21 File

 

MP21FFTE

 

App1 creates video segments/MPD

 

MediaFrameworkTE

 

App1 posts DI

 

DigitalItemTE

 

App2 receives requests from Sink

   
 

App2 prepares page with each DI having

   
 

- some metadata

 

MetadataTE

 

- licence data

 

LicenseTE

 

- upload date

 

DigitalItemTE

 

- DI URI

   

Sink

App lets User requests page from Server

   
 

User selects a Digital Item

   
 

App parses Digital Item, metadata, license

 

DigitalItemTE

     

MetadataTE

     

LicenseTE

 

If authorised à play

 

MediaFrameworkTE

The table shows that total of 4 Applications, 3 Protocol Engines and 5 Technology Engines.

The following table gives a technology walkthrough.

Table 2: Source-Server-Sink walkthrough

Device

Function

Source

CREATOR user uses MyCLIENT1APP to

  1.     (optionally) import an MP21FF
  2.     Input data  (resource, metadata, licence elements) as presented by CREATOR
  3.     Invokes Create Content
  4.     Makes MP21FF locally
  5. Stores MP21FF in Server

Server

Source-Server App

  1.     createContent
  2.     Invokes Server to createContent / identifyContent
  3.     When requested stores MP21FF locally
  4.     Parses MP21FF
  5. Creates VIDEO adaptations and segments
  6. Creates the MPD (asynchronously)
  7. Updates DI

Server

Server-Sink App

When requested, creates HTML page with a list of DIs each with

  1.     some metadata
  2.     license data
  3.     upload date
  4.     DI URI

Sink

CONSUMER user uses web-browser to

  1.     digits  http://research.cedeo.net:8080/.../OCTV
  2.     is presented a list of DIs
  3.     browse for the available DIs
  4.     download locally the chosen DI

Sink

CONSUMER user uses MyCLIENT2APP to

  1.     Open the DI
  2.     Present the metadata to the screen
  3.     If authorized, a PLAY button appears, otherwise the NOT_AUTHORIZED explanation is printed out
  4.     send MPD_URL to the MEDIAFRAMEWORK

Sink

MEDIAFRAMEWORK

  1.     opens the MPD_URL triggering a set of HTTP requests
  2.     renders the VIDEO

Fig. 2 represents the architecture of the 3 OCTV Devices.

Figure 2: MXM Engines for Source, Server and Sink

Wherever possible Open Source Software (OSS) packages have been employed. Table 3 gives a list of all OSS packages in the OCTV implementation.

Table 3: Open Source environments used in the Work

Name

Licence

Purpose

   

Source

Server

Sink

Hibernate

LGPL v2.1

 

X

 

GStreamer

LGPL

 

X

 

Jboss

LGPL

 

X

 

Mule

Common Public Attribution License

 

X

 

MXM

BSD

X

X

X

Spring

Apache 2.0

 

X

 

VLC

GPL

   

X