I was recently asked if it would be possible to build an IPTV system in Flash. Well unfortunately that’s a bit ambitious at the moment. and I’ll explain why with the aid of the diagram below.

STB Layer overview
This represents the layers of a typical Set Top Box (STB) for IPTV reception. Most of these are self explanatory but I’ll take the time to cover the Media Control APIs and the Middleware layers in more detail. A combination of the browser (STB browser) and the STB hardware manufacturers are responsible for what APIs are exposed and how they are exposed. So as you can imagine, this can (and does) vary from STB to STB. However, it is a consistent factor that the control of the media being played is exclusively through the Media Controller APIs. These are exposed to the front end developers (like us) through the DOM. This puts us in the position of HAVING to use javascript and fscommands to communicate between Flash and the exposed media functionality. Essentially, all key handling and media requests are proxyed through the javascript / DOM layer. For this architectural reason alone, you can see that this model does not support the use of Flash end to end IPTV or even much in the way of native control.

The Middleware layer represents the layer where Flash lives, but not alone at the moment. Perhaps, with the advent of Apollo, this will change and we’ll see Flash apps embedded on the STBs and communicating with the DOM directly through an Apollo layer. This would be very sexy. The diagram below gives more of a close up of the MC API and Middleware layers and how they all communicate.

Middleware layers
So in conclusion, Flash is at the end of the food chain at the moment and until we see what Apollo can do it is likely to stay that way. Media control, which is key to extending Flash’s part in all this, is unlikely to be unbundled from the STB/Browser manufacturer’s products. At least not for now. In the future it makes a lot of sence to allow this to be unbundled on a bespoke basis as some companies may wish to use Flash Remoting to make direct calls to the back end services, eliminating the need to bulk up the front end with Media Controller APIs, and duplicate javascript. Flash does give the kind of rich media UI that IPTV companies are crying out for right now. They know users will buy with their eyes and that means Flash.

It’s tough at the moment though as there are relatively few defined or adhered to standards and the STBs are of such reduced platform capabilities that they make mobile phones look like Cray Super computers. But as user demand for a rich interaction grows (as it always does) STB manufacturere will realise that these hardware and software cutbacks are a false economy and customers will be willing to pay a little extra for a box that provides the kind of rich interfaces, intuative navigation and tight functionality that Flash / actionscript 2.0 (and Flash Lite 2.0) can provide.

So at the moment we can create the EPG (Electronic Program Guide), VoD (Video on Demand) and PVR (Personal Video Recorder) systems. We can (and I have) create them to work on STBs, PCs and mobile phones. These will also work well as independent web based interfaces to the IPTV providers systems, but they won’t run the service platform at the moment so we’ll have to carry on relying on our javascript expertise as well for now.

As for the future, well WiFi is breaking into the scene as a great delivery improvement method. The use of Apollo and Flash Remoting are on the cards and of course, my old favorite, Flash Media Server, could well be used as a model if nothing else to provide seemless VoIP through the Flash interface. And of course, we haven’t even touched on Flex on the back end yet. Things are literally changing by the day in the IPTV world.

I hope this overview of Flash’s place in IPTV was comprehensive enough. Please let me know if I didn’t cover something.