Flash or not flash? That is the question

Jan 21, 2016

When social networks are inevitable in our day-to-day life, it is a constant intention to create more.

And every subsequent should be more sophisticated, smarter, innovative, full of interactive things like chats, video streaming calls, etc.

One of our clients turned to us with a request for development of a social network with functionality set similar to the most popular networks. And that’s as easy as a pie I thought till I knew it should be web based with live chat video.

The challenge was the right technology to choose: Silverlight, Flash, HTML5 & JavaScript or WebRTC?

Each of them had its’ pluses and minuses.

Let me explain how we’ve made our choice.

Silverlight

Although we’ve had extensive experience in implementing this technology, we had to abandon it, simply because Microsoft was about to stop supporting it.

HTML5 & JavaScript

Both HTML and JavaScript are widely used for implementation of the application`s client side, however they do not have access to hardware resources like camera and microphone. Though HTML5 has a video tag to display video content, it does not captures video and sound.

Flash

Flash seemed to be the best way to meet the challenge. As a browser plug-in Flash offers more opportunities for streaming and working with hardware resources.

Still Flash has some limitations:

  • Incompatibility  with all mobile devices
  • FMS license fee
  • Issues with cross-browser support of the Flash object
  • Multiple performance issues
  • Security vulnerabilities

Moreover, the whole process of video streaming through Flash technology seemed quite effort/time-consuming. Along with that FMS becomes a single-point of failure, increasing the load on the server and the network. Here is how it usually works:

  1. Flash-object is integrated into a video-chat page.   It grabs camera video and microphone sound and transfers them to FMS server.  FMS server gets the video and transforms it if necessary, then sends to the other party of a conversation.
  2. Browser`s video chat page gets the link to the broadcasted FMS video and shows it via Flash-object or HTML5 video tag.

Схемы_1

WebRTC

Finally we decided to realize the idea applying two technologies WebRTC and Flash. Still, what is so special about WebRTC?

First, WebRTC offers a bit different solution for video streaming. API of a browser supporting WebRTC gives access to the camera and microphone just the way Flash does, with one significant peculiarity: there is no third party server, simply a p2p connection.

Second, with WebRTC users can interchange files and have multiuser video conferences.

Among other advantages I would list the following:

  • No plug-ins to install
  • No third-party paid server
  • Security is guaranteed by API (browser) providers via sandbox

Unfortunately, WebRTC is not supported by all of the browsers, which actually turned out to be the fly in the ointment.

Nevertheless, most of widely used browsers start abandoning Flash since multiple bugs and vulnerabilities have been detected – quite an argument for WebRTC, isn`t it?

Look at the scheme below, this is actually how the WebRTC connection works.

Схемы_2

Well, WebRTC was not chosen in vain. It was a lucky choice for this very application. If you have a client who wants a non-standard web application, I would recommend trying WebRTC technology along with some already trusted technology.

By Artsiom Marzavin
and Aleksandr Sliborsky