Overview of the CloudTV H5™ Platform
The ActiveVideo Networks CloudTV™ Platform allows users to stream HTML5-based interactive content to suitably equipped devices (Motoboxes, Blu-ray players, Roku devices, etc.). This is accomplished by performing all processing and rendering of content at the cloud level, and streaming the resulting MPEG-2 or H.264 video feed to the client device.
The CloudTV Platform is comprised of many individual components working together to generate a fully interactive experience for the user. While knowledge of all of these components is available, developers will only need to take note of a few key sections.
The CloudTV H5™ Platform consists of four component groups: Core, Media Farm, Administration, and Platform Tools. The Core Components are responsible for executing and delivering the interactive TV applications and collecting usage statistics.
StitcherFive is the central component of the CloudTV H5™ platform. StitcherFive executes HTML5 applications and generates MPEG-2 or H.264 compliant streams on a per-user basis. StitcherFive consists of:
- Streaming Engine – Provide the platform's core MPEG streaming functionality (both MPEG-2 and H.264). Streaming Engine is responsible for stitching user interface elements such as buttons, menus, and graphics together with video elements.
- Application Engine – Provides a web-browser like environment for loading and executing applications.
- Universal Session Manager (USM) – Handles user session initiation, monitoring, tear down, and in-session remote control key presses.
The Universal Session Manager keeps track of active sessions, handling timeouts and disconnects as appropriate. Client remote control keys are also posted to the USM. Since session initiation, tear down, and posting of keys are specific to the client protocol used, the USM abstracts protocol-specific commands and translates these to generic Streaming Engine and Application Engine interfaces.
HTML5 Application Engine
The H5 Application Engine provides a web-browser like environment in which the application is executed. The application provides an interactive graphical background, that can be integrated with all sorts of content accessible via HTTP. To do this, the engine can access a variety of HTTP based APIs. The content can be data, video, audio, graphics, animations, and text from the operator's infrastructure (linear and non-linear video sources, CMS, databases, billing systems, etc.) and also from internet content and services.
The Streaming Engine provides the platform's core MPEG streaming functionality (both MPEG-2 and H.264). The engine works in conjunction with the Application Engine, with the Application Engine providing both the assets and basic instructions for onscreen updates. This allows for the Streaming Engine to compose and generate individual MPEG streams to the client.
The Content Server is a third-party component that hosts the HTML5 applications, very much in the same way that a WWW server does.
Universal Data Collector (UDC)
The UDC serves as an aggregator and a 'store and forward' relay which collects XML-formatted events and forwards them to a more centralized server, known as Insight.
Media Farm Components
Media Farm Components are auxiliary components that perform media transcoding and scaling tasks.
Whereas the Transcoder takes care of static video assets, live feeds are managed by what is known as the Scaler. The Scaler listens to multicast streams on the network and converts them to a desired output screen size in a format suitable for ingestion by the Streaming Engine.
In order for applications to stream pre-rendered video content (either within the application or on the internet), they need to make use of the H5 Transcoder. The Transcoder takes video assets from back-end content servers either in the operator network or on the public internet and transcodes content for ingestion by the Streaming Engine, which typically needs to integrate such video assets within the GUI defined by a TV Application (for example, partial-screen video). Transcoders maintain their own cache for transcoded assets.
Administrative Components assist in maintenance and operations tasks.
The Log Server is used as a diagnostic tool for system configuration and maintenance. It enables the storing of diagnostic messages from various components into a centralized location.
Platform Tools provide supportive functions to the platform, such as location services or bandwidth management.
Bandwidth Resource Manager (BRM)
The BRM acquires and releases the bandwidth needed for the audio/video stream of the CloudTV™ sessions.
Set-top boxes are inherently unable to store cookies. To allow for cookies to exist on the platform, H5 comes complete with a Cookie Server, which enables the central storing of application level cookies for each Stitcher session. This allows an end-user to connect to the platform the next time (likely being served by a different Stitcher instance), start the same application, and be able to access the user's previously selected configurations (if they have, in fact, been stored as a cookie).
Application Session Flow
This is a brief overview of the application session flow from the Universal Session Manager (USM) to the application code hosted on the Content Server. It mentions each component and function.
Universal Session Manager
Sessions are set up to the USM which handles the different protocol-specific commands and then translates them to the Streaming and Application Engines.
Each application session runs from its own environment provided by the Application Engine. The H5 Application Engine acts like a web-browser where the applications are executed. Think of each device (set-top box, broadband connected) as a different computer. The H5 Application Engine is like your Google Chrome browser. Each application session is like running an instance of Chrome on your computer. The application itself provides the graphical user interface that can interact with APIs and other content accessible via HTTP. Think of these as different web pages.
For more specific information on interacting with the session API, please refer to the article "The Session API" linked below in the Related Articles section.
The Streaming Engine is responsible for stiching user interface elements with video elements. It provides the platform's core MPEG streaming functionality for both MPEG-2 and H.264.
Content Servers can be anywhere on the web or within a network. Content servers are where applications are hosted. They host static assets. PHP or other server-side processing are not supported.