Getting Started with WebRTC


WebRTC if a fantastic new technology hitting main stream devices these days. There is a lot of buzz on the subject. The main reason is that it makes thing possible on webpages that were not really possible before (at least not by default).

What is WebRTC? It is an implementation (multiple frameworks exist) of multiple protocols. When implemented WebRTC enables devices peer to peer device communication. What that means is it enables a webpage opened in Firefox web browser on your desktop to communicate directly with the Facebook app on your phone (assuming both sides grant permission). The communications channel is encrypted by default. This means engineers will be able to create brand new technologies in the up coming years.  As one of those engineers I can say, this is exciting! Personally I am looking forward to making the chat experience on the talk to strangers website Pokiecam even better.

The nuts and bolts of WebRTC

When getting started with WebRTC you might find yourself overwhelmed if you are not already familiar with the protocols. A few of them are ICE, TURN, STUN, SDPs, Signaling servers.. That’s a lot of moving parts. The main thing to concern yourself with is being able to pass messages between peers. There are lots of examples of this online, just be sure all the messages get delivered and in order.

Which of the protocols should you concern yourself with? Really, from a user of the APIs not none of them. What WebRTC is doing is using the ICE protocol which in-turn uses STUN and TURN if needed. The implementations handle all of this though. The main thing users of the APIs need to worry about is the signaling portion. Signaling again, is just passing messages for offers and candidates between peers.

Flash Replaced by HTML5 Technologies


Adobe announced they are deprecating Flash. This announcement has been a long time in the making. Many people have worked hard to develop standard technologies which are now promising enough that Adobe no longer sees a future in their media platform.

HTML5 Standards such as WebRTC, WebASM and WebGL are all making it possible to develop rich applications on the web without the need for Adobe Flash. These days it seems the adoption rate of new browsers is even picking up as normal users are becoming more conscious of the need to update their software regularly. Some are saying 66% of websites support HTML5 already. Even older browsers can support the new HTML5 elements and most support many of the new features.

Read Adobe’s Blog Post About Deprecating Flash:

Flash & The Future of Interactive Content


Adobe Media Server Alternatives


Adobe Media Server is a fine piece of software. It runs cross platform and has a very rich set of features. From what I’ve found there are not many players competing with Media Server on the proprietary front. There is basically one other 500 pound gorilla, Wowza.  It’ll be hard to beat either of this for rapid development, solid stability, and professional support.

If anyone has read this blog before they may find the author has a propensity to avoid proprietary solutions. Media servers will be no different. At the time of this writing in 2017 there are some decent open source media server alternatives. Most open source media server solutions will be offer less features than their closed source competitors but depending on the application this might not be a deal breaker and when it comes to simple video and audio it shouldn’t be.

One of the more older and more mature open source media servers is Red5. Red5 does actually offer a pretty full feature set. Over the years it’s been battle tested. The reputation of Red5 seems to vary depending on the group of people talking about it.

MonaServer is an open source media server written in C++. It has lots of features and is under active development.

Janus Gatway is primarily written in c. Janus has a lot of features and can be extended with plugins. Janus is focused around newer HTML5 technologies like WebRTC. The one drawback I found was the lack of RTMP support. This is not super important theses days but for people wanting to support really old browsers RTMP could be a must have.

nginx-rtmp-module can potentially fill the void that Janus Gateway leaves. It an also be run stand alone to make applications that support RTMP.