The Digital Media Project

Date

2012/03/26

No.

1312/OCTV

Source

GA30

Title

Draft Core OCTV specification

Draft Core OCTV specification

1        Introduction

2        Terms, acronyms and definitions

3        Use cases

3.1        Real-time streaming

3.2        Creation and uploading of rich content

3.3        Push distribution of rich content

3.4        Pull distribution of rich content

4        Requirements

4.1        General requirements

4.2        Functional  requirements

4.3        Platform requirements

5        Architecture

5.1        Architecture for OCTV devices

5.2        Device set up for Core OCTV

5.2.1        Source

5.2.2        Sink

5.2.3        Server

6        Component and service technologies

6.1        Component technologies

6.2        Service technologies

7        Reference Software (Platform)

7.1        Functionality and technologies

7.2        Server technologies

7.3        Client technologies

Annex A – Technology walkthroughs

A.1      Technologies for real-time streaming

A.2      Technologies for content creation and upload

A.3      Technologies for push distribution

A.4      Technologies for pull distribution

Annex B – Guidelines for the OCTV project execution

B.1       Definitions

B.2       Membership

B.3       Master plan

B.4       Initial steps

B.5       IPR management

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. 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.

This Open Connected TV (OCTV) specification (the Specification) has been designed to provide the means to support interactive rich media streaming services in a plurality of application domains, such as to enrich one-way TV services with support to interoperable multichannel two-way content access and delivery, interactive video service on mobile networks etc. Thus the Specification creates the conditions for the development of a global market for video services by providing a technical specification based on international standards and an industry-grade implementation of an Open Connected TV platform.

This is the first specification issued by the OCTV Project, an initiative of the Digital Media Project, and is called “Core OCTV Specification” (C-OCTV Specification). It is divided in 6 parts:

  1. Terms, acronyms and definitions
  2. Use cases
  3. Requirements
  4. Architecture
  5. Component and service technologies
  6. Reference software

This document includes two annexes. The first documents the walkthroughs that have been used to identify the component and service technologies and the second provides administrative background regarding the implementation and exploitation of the OCTV project.

This Specification is public. However, the code corresponding to part 6 Reference software is only available to OCTV members who have developed the portion of the software assigned to them and whose software has been accepted for inclusion in the OCTV Reference Software.

It should be noted that this document is not intended to be the specification and the software implementation of a complete product or a running service, but is a technology specification and an industry-grade implementation of software components that may be used by implementers in products and services according to the terms of the OCTV software licence.

2          Terms, acronyms and definitions

Term

Definition

Conditional access system

A system that enables a Service Provider to discriminate who can access its Service based on its own criteria

Client

The device used to provide or consume content from a Server by way of a network

Content

A content type that can be handled by the Specification

Content description

Technology allowing the description of content from different viewpoints (a.k.a. Metadata)

Content type

  1. Audio
  2. Video
  3. Images (natural pictures and static 2D graphics)
  4. Text
  5. Their combination ( “scene description”)

Core Open Connected TV

A restriction of Open Connected TV for the purpose of phase 1 of the Specification

Media framework

An organised collection of software to handle digital media, such as demuxers and decoders

Open Connected TV

Standard technologies to enrich one-way TV services with support to interoperable multichannel two-way content access and delivery

Platform

The Client and Server Reference Software implementing the Specification

Server

A device providing Services to Clients

Service

The organised provisioning of Content to Clients

Sink

A device acting as a Client to consume content from a Server

Source

A device acting as a Client to provide content to a Server

Specification

This specification

Trick mode

A set of functionality that allows users to play Content from a Server as if it were from a VCR, e.g. pause, fast forward, fast rewind, slow forward, slow rewind, jump to previous/future frame etc.

User management

A server component to define and manage who and how can use a Service

Content management

A server component supporting the collection, managing, and publishing of Content

3          Use cases

3.1        Real-time streaming

Server provides a service to its subscribers whereby a subscriber can stream real-time video to any other subscriber.

In this use case John sends a real-time video to Jane via Server.

  1. John uses a widget to
    1. Authenticate with Server
    2. Activate camera
    3. Request to stream AV sequence to Jane’s Sink
  2. Server requests Jane’s Sink to send environment description
  3. Jane’s Sink sends environment description to Server
  4. Camera streams AV sequence to Server
  5. Server
    1. Adapts video
    2. Encrypts adapted video
    3. Sends to Jane
      1. Encrypted video
      2. Encrypted keys
  6. Jane has a backgroud application on her Sink that
    1. Decrypts keys
    2. Decrypts video
    3. Decodes video
    4. Presents video

3.2        Creation and uploading of rich content

Server provides a service to its subscribers whereby a subscriber can upload content for distribution to a plurality of subscribers.

In this use case Mary creates and uploads a rich media video to Server.

  1. Mary uses a widget to
    1. Activate a camera
    2. Store AV sequence to her Source
    3. Edit AV sequence from her Source
    4. Compose a scene of which AV sequence is an element on her Source
    5. Create DI with metadata, template licence etc. on her Source
    6. Authenticate with Server
    7. Upload DI to Server

3.3        Push distribution of rich content

Server provides a service to its subscribers whereby a subscriber can upload content for distribution to a plurality of subscribers. In this use case Mary sends a non-real-time video to a group of friends.

  1. Mary requests Server to distribute video to Mary’s group of friends
  2. Server requests the Sinks of Mary’s group of friends to send their environment descriptions
  3. Server
    1. Adapts video independently for each member of Mary’s group of friends
    2. Sends the scene to Mary’s group of friends via parallel unicast sessions
  4. Each member of Mary’s group of friends has a backgroud application on their Sinks that
    1. Decodes scene
    2. Presents scene
  5. Each member of Mary’s group of friends interacts with scene

3.4        Pull distribution of rich content

Server provides content on demand service to its subscribers.

In this use case Mario watches Mary’s rich media video as content on demand.

  1. Mario uses a widget to
    1. Authenticate with Server
    2. Search for content on Server
  2. Server displays choices
  3. Mario selects Mary’s scene as content of interest
  4. Server
    1. Checks that selection is compatible with rights declared by Mary
    2. Requests environment description of Mario’s Sink
  5. Mario’s Sink sends environment description
  6. Server
    1. Adapts video to make it suitable to a Mario’s Sink’s characteristics
    2. Streams scene
  7. Mario
    1. Watches video
    2. Interacts with scene

4          Requirements

The Core OCTV specification shall satisfy the set of requirements given below.

4.1        General requirements

  1. C-OCTV functionalities impacting interoperability of implementations shall be based on international standards unless the required standards
    1. Do not exist
    2. Are demonstrably inferior to other openly available solutions

4.2        Functional  requirements

C-OCTV shall

  1. Support the following types of Content
    1. Audio
    2. Video
    3.  Images (natural pictures and static 2D graphics)
    4. Text
    5. Their combination ( “scene description”)
  2. Specify at least one default format for each Content type
  3. Support Content description
  4. Support Client search for Content in a Server
  5. Support real-time streaming of Content
  6. Support delivery of Content with a Conditional Access System
  7. Specify a default Conditional Access System
  8. Support trick modes playing of Content
  9. Support interactivity with Content
  10. Specify a widget based UI framework
  11. Be open to support application download to Clients
  12. Support protocols for remote service requests

4.3        Platform requirements

The Platform shall

  1. Be based on the MPEG-M architecture and APIs
  2. Be written in
    1. Client: C or C++
    2. Server: Java
  3. Be functional for
    1. Client: Android, Linux
    2. Server: Linux (Java-based)
  4. Support major open source media frameworks
  5. Support major open source rendering environments
  6. Support User management
  7. Support Content management
  8. Support Content storage
  9. Support Data Persistence and Processing System not bound to a specific DBMS
  10. 10.  Support data representation according to possible client requests (e.g. HTML/CSS or LASeR)
  11. 1 Support Web Services management (REST API or SOAP Web Services)
  12. 1 Provide a general security layer for relevant server and client components

5          Architecture

5.1        Architecture for OCTV devices

Fig. 1 provides a general architecture of an OCTV Device based on MPEG-M part In this architecture Applications running on an OCTV Device call the Engines in the Middleware via an Application-Middleware API.

Fig. 1 – Generic OCTV Device architecture

Fig. 2 shows how applications running in an OCTV Device communicate with Applications in a remote OCTV Device via MPEG-M service protocols.

Fig. 2 – Communication between two OCTV Devices

When the OCTV Device at the right hand side (a “client”) communicates with the Device at left hand side (a “server”) the following happens:

  1. A client Application invokes a server Service (e.g. an Elementary Service such as Create Licence)
  2. The corresponding server Application calls a specific Engine or, in the general case, its Orchestrator Engine
  3. The Orchestrator Engine sets up a chain of Engines: in this case the Protocol Engine processes the Create Licence Protocol and the Technology Engine (REL Engine) creates the requested licence.

5.2        Device set up for Core OCTV

The Specification provides the technologies necessary to support the use cases in chapter 3 satisfying the requirements in chapter 4 so as to enable interoperability of independent implementations of “Source”, “Server” and “Sink” depicted in Fig. 3.

Fig. 3 – Building blocks of the Core OCTV architecture

Please note that

  1. In the following “Content” means any audiovisual sequence or a scene, i.e. a composition of media
  2. Two out of three of these devices (e.g. Source and Sink) may coalesce into a single device.

5.2.1        Source

The Source is a device (e.g. a computer equipped with appropriate peripherals, a camera with processing capability and WiFi) by means of which a user can

  1. Capture an audio-visual sequence
  2. Stream it to the Server for storage or for distribution to Sinks
  3. Store it to a storage device (local or in the cloud)
  4. Edit the audio-visual sequence
  5. Upload the audio-visual sequence to the Server with
    1. Description
    2. Licences
  6. Compose a scene of which audio-visual sequences captured in real time or stored are elements
  7. Upload the scene to the Server

5.2.2        Sink

The Sink is a device (e.g. a computer equipped with appropriate peripherals) by means of which a user can

  1. Search for content on the Server
  2. Select content on the Server
  3. Receive streamed content from the Server possibly protected with a Conditional access system
  4. Interact with content on the Server via scene composition functionality and rich UI interface

5.2.3        Server

The Server is a device that

  1. Lets a Source stream content for uploading or streaming to a Sink
  2. Lets a Source upload a content
  3. Lets a Sink receive content via streaming or download
  4. Provides responses to content search by Sinks
  5. Checks that a selection of a content for streaming is compatible with rights declared by Source
  6. Adapts content to make it suitable to a Sink’s characteristics
  7. Streams content to a Sink possibly protected with a Conditional access system

6          Component and service technologies

6.1        Component technologies

The following technologies are proposed to satisfy the given functionality

Functionality

Technology

Video coding

AVC profile?

Audio coding

AAC

Still pictures

JPEG baseline

2D graphic image

PNG

Text

Unicode

Font

OFF

Composition

LASeR Mini profile

Metadata

MPEG-7 Simple Profile/TVA (which subset?)

Digital item

DID

Content identification

DII

File format

ISO Base Media FF (which part of it?)

 

MP4 FF

 

DI FF?

Licence

REL DAC profile

Conditional access system

MSAF

Streaming

MPEG-2 TS, RTSP

Presentation

Qt

Widget

MPEG-U part 1

6.2        Service technologies

The relevant technologies from the MPEG-M part 4 standard are given below

Elementary Service

Purpose

Adapt Content

 

Authenticate User

 

Create Content

 

Create Licence

 

Deliver Content

 

Describe Content

 

Identify Content

 

Identify User

 

Identify User

 

Package Content

 

Process Content

 

Search Content

 

Store Content

 

Verify Licence

 

7          Reference Software (Platform)

7.1        Functionality and technologies

The following functionality and technologies are used

Device

Functionality

Technology

Server

Environment

JEE + Spring

 

User management

Spring security

 

Content management and storage

Code to be developed ad hoc

 

Data Persistence and Processing System

Hibernate and DBMS (e.g. Postgres)

 

Data representation (Sink requests)

XML/HTML/CSS/LASeR

 

Web Services management

REST API

 

General security layer

Spring security

     

Source/Sink

Environment

Linux/C++

 

Streaming

GStreamer

 

Media Framework

GStreamer

 

Rendering

Qt

7.2        Server technologies

Fig. 2 depicts the combination of the component technologies above to implement the Core OCTV Server

Fig. 4 – A possible architecture of Core OCTV Server

7.3        Client technologies

TBD

Annex A – Technology walkthroughs

A.1Technologies for real-time streaming

The following protocols and technologies are needed to satisfy the given functionality

Device

Functionality

Protocol

Technology

Source

Authenticate with Server

Identify User

 
   

Authenticate User

 
 

Encode camera output

 

Media framework

 

Deliver to End User

Deliver Content

 

Server

Deliver to End user

Package Content

 
 

Adapt Content

Adapt Content

Media framework

 

Encrypt content

Process Content

IPMP components

 

Encrypt keys

Process Content

IPMP components

 

Stream content

Deliver Content

RTSP

 

Deliver to End User

Deliver Content

 

Sink

Stream receiver

Deliver Content

RTSP

 

Decrypt keys

Process Content

IPMP components

 

Decrypt content

Process Content

IPMP components

 

Decode content

Process Content

Media framework

A.2Technologies for content creation and upload

The following protocols and technologies are needed to satisfy the given functionality

Device

Functionality

Protocol

Technology

Source

Encode camera output

 

Media framework

 

Edit AV sequence

 

Media framework

 

Compose a scene

 

LASeR Mini Profile

 

Create DI

Create Content

DIDL

   

Describe Content

MPEG-7 SMP/TVA

   

Create Licence

REL

   

Identify Content

 
 

Authenticate with Server

Identify User

 
   

Authenticate User

 
 

Upload DI

Store Content

 

A.3Technologies for push distribution

The following protocols and technologies are needed to satisfy the given functionality

Device

Functionality

Protocol

Technology

Source

Request to distribute video

Deliver Content

 

Server

Adapts video for each destination

Adapt Content

Media framework

   

Deliver Content

RTSP

Sink

Stream receiver

Deliver Content

RTSP

 

Decode content

Process Content

Media framework

A.4Technologies for pull distribution

The following protocols and technologies are needed to satisfy the given functionality

Device

Functionality

Protocol

Technology

Sink

Authenticate with Server

Identify User

 
   

Authenticate User

 
 

Search for content

Search Content

 

Server

Displays choices

   

Sink

Selects content of interest

   
 

Checks compatibility with rights

Verify Licence

REL

Server

Deliver to End user

Package Content

 
 

Adapt Content

Adapt Content

Media framework

 

Stream content

Deliver Content

RTSP

Sink

Stream receiver

Deliver Content

RTSP

 

Decode content

Process Content

Media framework

Annex B – Guidelines for the OCTV project execution

The development and use of the OCTV Platform shall be based on the following guidelines

B.1   Definitions

OCTV manager

An officer with the task to

  1. Oversee execution of the master plan
  2. Verify the suitability of contributed modules
  3. Integrate all modules in the platform

OCTV master plan

A plan of OCTV work initially agreed by DMP members and invited technical experts and subsequently defined by OCTV members

OCTV member

A DMP member whose assigned portion of OCTV work has been delivered within the agreed time frame and accepted by the OCTV manager

OCTV platform

The Platform target of the OCTV project

OCTV scope

The MPEG Multimedia Service Platform Technologies standard, MPEG-M, and portions of other publicly available specifications as agreed by the OCTV members

OCTV software

The ensemble of software modules constituting the OCTV platform

OCTV specification

The technical specification based on which the OCTV platform is developed

OCTV work

Any activity carried out to plan, develop and manage the OCTV platform

B.2   Membership

B.3   Master plan

B.4   Initial steps

B.5   IPR management