Flash vs. Silverlight vs. HTML5 in unified communications: what a mess!

A starting thread on the future of video in unified communications products and solutions

What's going on with video as it pertains to unified communications, streaming, and projection?  For the past several months, I've been working on the creation of several new unified communications products using the Microsoft Unified Communications Managed API  (UCMA) technology and determining the best use of video technology in the use of these products.

Today, programmers have a choice in developing video-based or video-integrated communications applications.  The problem is that each choice requires the exclusion of some kind of device, application, or operating system.  If I choose to integrate my applications with Flash, Apple mobile devices are out.  If I choose Silverlight, 2 way or multi-party streaming is out, and HTML5 is just not mature enough yet.  In addition, I and my company develop applications for the Microsoft Unified Communications platform.  The Audio/Video MCU (Multi-point Control Unit) even in it's upcoming release is still not able to be programmatically controlled with respect to streaming in the 2010 release this year.  So, between Apple, Microsoft, and the W3C standards committees, what is a developer to do?

Apple has already spoken to their decision based on a note from Steve Jobs on their main website which is viewable via http://www.apple.com/hotnews/thoughts-on-flash/.  HTML5 is still a working draft, which is viewable via http://dev.w3.org/html5/spec/Overview.html, and Microsoft continues to control their video capabilities restricting the power of the developer.  To add, PC manufacturers are still shipping non-HD compliant webcams so IT pros and users are still having to purchase an aftermarket HD camera causing budget issues and extra unnecessary wiring.  In addition, 3D has now come into play with peer-to-peer and telepresence and conferencing solutions causing an entirely new wave of standards based concerns.

Choosing the right Path

Based on this confusion last year and lack of features built into the previous version of Silverlight, my team and I decided to program our video solutions using Flash Media Server with the FlourineFx connection capabilities within Microsoft Visual Studio.  For a sample of how this is done go to http://blog.fluorinefx.com/?p=13.  We created a multiparty video solution for one of our chat products to offer a solution to web visitors to communicate via streaming video with Call Center Agents.  This works well, but as we are expanding our development to iPad and iPhone devices for Call Center products but also our new Healthcare and Education products, Flash is simply not supported.  So what path should a developer choose when creating a video-integrated communications application? 

Let's take a look...

Silverlight

Programming in Silverlight through Microsoft Visual Studio is one of the most gratifying and time saving experiences available to developers today.  The ease of development, access of controls, and ability to port a solution to a User Interface Design Expert (My Apple Team) provides the quickest to market and most aesthetically appeasing solution for any company that delivers and develops high-end software.  The issue again...compatibility.  For Windows and Apple devices, minus the iPad and iPhone, you're golden.  Unfortunately though, even with Silverlight 4.0, streaming and encoding is still not provided as a toolset to programmers nor is it supported natively so there is still the issue of the work-around.  There is still a current thread on this matter going on via http://forums.silverlight.net/forums/p/148040/338542.aspx

My suggestion to Microsoft is to do as follows:

  1. Create a streaming solution to either be hosted by the provider or through Microsoft Online services and provide a control and settings for this through Expression/Visual Studio.
  2. Create and provide a control through Silverlight for both one-way and multiparty streaming/conferencing for developers through Expression/Visual Studio.
  3. Enable a 3D option to render the video either in the same or separate window in 3D.
  4. Create and provide a control through Silverlight for video conferencing for Microsoft Communicator clients leveraging the SIP or AD account properties provided by the user.
  5. Make this available this year!

For more in-depth info on Silverlight, visit http://www.microsoft.com/silverlight/

Flash Media Server

Until Steve Jobs slammed Apple recently live via conference as well as through Apple's website via http://www.apple.com/hotnews/thoughts-on-flash/ (sorry for the repeat), Flash was extremely highly thought of as well as the go-to technology for streaming and video solutions for developers.  Since this time, many software manufacturers and hosting providers are now looking at Silverlight and HTML5 as their solution.  Why?  The answer is both political and technical.  For the political, I don't have time for this or the desire to write about it so visit the letter from Steve Jobs above and then read the response from Adobe via http://www.adobe.com/choice/

Technically speaking, Flash has been a good choice for developers and for us to-date.  With Flash Media Server, especially with the capability to provide development hooks from Visual Studio using FlourineFx, it's been a great solution.  For information on FlourineFx, visit http://www.fluorinefx.com/.  Using FlourineFx with Visual Studio, we have created solutions that provide stunning streaming video solutions via the web which offer high bandwidth and just look amazing.  Even though Flash Media Server is not free, it has been a leading, if not the leading streaming media server solution in the market.  For more info on Flash Media Server visit http://www.adobe.com/products/flashmediainteractive/?sdid=FCPIJ and for a code example of tying Visual Studio using FlourineFx and Flash together, visit http://danny-t.co.uk/index.php/tutorials/introduction-to-flash-remoting-with-fluorine/ for a good overview as well as the link above.  For a real-world application using this technology you can check out SmartChat online as well.

I'll be honest in that Flash is awesome.  It set the standard, it opened up awesome opportunities for developers and designers, and it's unfortunate the way Adobe has been slammed in the press lately by Apple.  Realistically speaking though, Flash video still dominates and Adobe will continue to prosper despite Apple's boycott.

From a developers point of view though, the delimma still remains though in that you cannot support Flash video on an iPad or iPhone which are selling faster than any devices ever released in the market in history.

HTML5

So here we come to HTML5.  The poster for the supposed future in video and streaming technology.  It's June 23rd at the time of this writing and the June 24th draft is already published via the W3C at http://dev.w3.org/html5/spec/Overview.html.  Today, sites are already being developed in HTML5, many of which are being highlighted on Apple's website via http://www.apple.com/html5/.  As far as support for webcams and videoconferencing support though..."it's in the works" is all you can find.  There is a good bit of information on this via http://www.whatwg.org/specs/web-apps/current-work/ outlining what is in draft and being considered.  You'll note between the <device> tag and <video> tag, there is a bit of work being done there and my assumption will be that through JavaScript, we will be able to control a conferencing session.  The issue still remains where the stream will come from though which brings us back to Flash and Silverlight support and is something Apple has not addressed even through their own controlled, non-open source products with the new Facetime (which they reluctantly took marketing rights away from the existing Facetime company who provide Unified Communications monitoring and compliance solutions) and iChat.

So again, still, not a fully supported and complete solution.

End Result

Moving forward our new Healthcare and Education products that we will launch this year will be developed in both Silverlight and Flash giving our users the option detecting the browser type as you would normally do in old school web programming days.  We will have hooks available for HTML5 as we intently follow the draft on a daily basis waiting for streaming capabilities to emerge as well as ubiquitous device support.  Until that time, like a kid at Christmas, I am waiting for something to be released from either vendor that will allow developers to create these solutions without having to code in 3 different environments, support multiple streaming servers, and hope that the solution will work on iPhones and iPads alike. 

UC in 3D

This is the next biggest wave of development for myself and my team as well as represents the future of video programming for conferencing and telepresence technology.  Enabling 3D video in Unified Communications and Telepresence products and solutions will get us one step closer to the Star Wars video communication we have all been craving.  So how do we get there?

A good start is to look at projection.  I battled this problem personally in my home just recently.  My wife surprised me in purchasing a new 50" Samsung 3D HDTV and we had to purchase glasses to view the image projected by the TV.  I also purchased a Samsung 3D Blu-ray player to play 3D Blu-ray DVDs.  Because of a recent lightning storm, I also have to replace my projector in my theater room as well and pondered a thought...Can I purchase a normal HD projector and use the 3D Blu-ray player to project a 3D image on the screen?  Short answer is no as you would need two projectors to share two images into a single showing for the viewer who would wear appropriate glasses to correct the 3D image for the screen.  What's sad is that I have AppleTV devices in every room of the house and never watch DVDs anymore anyway and AppleTV doesn't support 3D yet either.  When purchasing the projector and glasses I came across a site that stated that the battery operated 3D glasses will take a 2D image and project it into a 3D display.  At that point, I went a bit nuts on the subject.

I quickly purchased the glasses and then started an email thread with my development team to develop a 3D video solution for Microsoft Communications Server 2010 and Communicator 2010.  And guess what...Just like HTML5..."It's in the works".  We are in R&D and prototype now, but are looking at many things.  One is how to leverage the glasses and then cut the video image into two images displaying the 3D result to the screen for the glasses to correct.  The other is to take the source streaming conference video data and then encode in 3D.  Both are in development and I cannot wait for the release.  Hopefully this will make Unified Communications conferencing and Telepresence, as Steve Jobs states, "magical".

In summary

I posted a lot of information here, a lot of startup discussionary information as well as a few links to provide some background and reference data.  I really, really hope that we can have come constructive feedback on this post as the subject is of extreme interest to me as I and my team develop the future of these solutions and want to offer other developers and IT pros the opportunity to do the same to further progress video for Unified Communications into the future.

Thanks again for reading and please let me know your thoughts on what will happen in the future for Web-based video.

(Image Credit to LifeLan Blog)

Copyright © 2010 IDG Communications, Inc.

The 10 most powerful companies in enterprise networking 2022