Creating a Flash IPTV system
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.

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.

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.
8 Comments to “Creating a Flash IPTV system”
Leave a Reply
You must be logged in to post a comment.
On May 31st, 2006 at 8:20 am
Couldn’t you just use ExternalInterface, and skip the JavaScript?
On May 31st, 2006 at 8:34 am
Ahhh, now that would be nice Jessy. You’re right of course, however, there are no Set Top Boxes which currently support Flash 8 and thus no way of using the helpful functionality of things like the ExternalInterface class. To be honest I have only found 1 STB that even supports Flash 7. And every implementation of Flash on an STB is an SDK version so the STB / Browser engineers implement the features THEY think will be useful and they all behave differently as a result. Of course, things will get a lot easier when we can start using Flash 8 AS 2.0. The Manufacturers include Flash 5 SDK in most STBs, supporting Flash purely as a sales and marketing strategy. It isn’t any actual use. However, as I mentioned above, “manufacturers will realise that these hardware and software cutbacks are a false economy” when they realise what we could give them with Flash 8. They live in quite an insular world of Engineers, not application developers, so Flash is a foreign concept to them and thus the advantages and strengths are unknown.
On May 31st, 2006 at 11:44 am
How about using the embedded windows xp, by this you will be able to publish flash 8 files. My question is
How will I display my video in flash ? how will I do the recording and time shifting functions..etc
On May 31st, 2006 at 11:47 am
Sorry I didn’t mention that, I don’t want to use a ready made STB but I want to customize one based on x86 architecture with a windows embedded XP but I still don’t know what TV tuner should I use cause I also want to display Scrambled Satellite channels
On May 31st, 2006 at 1:44 pm
your problem is still an architectural one: even with a satellite TV card installed, the manufacturer still needs to expose some form of API for you to be able to take control from Flash. If you can find a manufacturer who will supply a TV card with an SDK then you will be able to start the process, however, they are most likely to make the APIs available via C++ or similar rather than javascript. Even after all this, the video feed will be displayed on the video plane, separate from the graphics plane which Flash will run on and thus, though you might get play/record/pause/etc control over the video feed you won’t get position, size or other programatical control that you associate with movieClips and FLV files which are embedded inside Flash. So essentially Flash will display over the top of the video feed. However, using Flash 8 will definately give you a number of advantages (including JesterXL’s ExternalInterface suggestion)
On May 31st, 2006 at 2:08 pm
much of these browser display plane based restrictions could be negated if Flash supported MPEG4 natively rather (or as well as) the FLV format.
On July 10th, 2007 at 9:52 pm
I am looking for an IPTV box or other device that will support flash 7. I have been working with the mitac box but the midldle ware company is slow on the update. Can you help ?
Thank you
ED
On July 11th, 2007 at 6:19 am
I guess I should really ask, what is it you’re trying to achieve? If I knew this I could possibly give you either a better suggestion or a more focused solution.
If you’re looking for IPTV STBs that support Flash 7 then it’s a bit of a short list I’m afraid. Oregan (www.oregan.com) were the first to offer Flash 7 player (http://oregan.net/flash_renderer.html) on their STB. Recently I have noticed that Telergy (http://www.telergy.eu/?mod=portfolio&com=showItem&id=297) have licenced the Oregan v3 Browser on their T600 STB to allow the use of Flash 7. Espial (www.espial.com) also produce a Flash 7 enabled browser (Evo). This is just part of their middleware offering but I believe STB manufacturers can buy the browser on its own for integration with their STBs. So basically, you need to look for STBs who use the Oregan or Evo browsers, though the two above are highly regarded STB solutions.
The bottom line is, if middleware developers and/or STB manufacturers really want good, platform AND device ubiquitous flash solutions, they need to look at the much smaller footprint and equal power of Flashlite 2.0 upwards. I can’t understand why they haven’t gone that way already. I even wrote a white paper on the subject and the arguements for using Flash lite are overwhelming.
Anyway, hope this helps. Any other questions, don’t hesitate to ask.