WebRTC in a native desktop Windows application

A new streaming option, WebRTC, is now available in Medialooks SDKs. In this post we try to explain why WebRTC can be useful in a native Windows application and suggest a few possible use cases.

WebRTC allows audio/video data to be transferred between browsers and desktop applications. WebRTC has a number of awesome features like adaptive bit rate, direct peer-to-peer data transfer and low latency. This new technology is currently supported in the latest versions of Google Chrome and Mozilla Firefox without any plugins.

Why would anyone need WebRTC in a desktop app?

Well, there’s already plenty of options for those who want to develop with WebRTC for both web and mobile. In addition to multiple free options, a number of companies have developed their business on top of a framework that somehow makes use of WebRTC: TokBox and VoxImplant to name a few.

However, there are still some use cases that require a proper PC running Windows and professional I/O hardware. A great example is Skype TX. The product allows to receive and manage video interviews over Skype, but in order to be integrated with live production, the chat video has to come out of an SDI connector. And this is where desktop tech comes in.

WebRTC is now supported in both MPlatform and MFormats software development kits. Both provide an easy way to add WebRTC support to a native Windows application written in C++, C#, VB6 or VB.NET.

First, let’s see what options WebRTC provides from a purely technical perspective:

  • Stream video from a native desktop application to a remote browser with the ability to control any of the app’s features (in addition to basic play, pause) with simple text messages. Any type of data can be sent: video files or live streams (a web camera or any of the supported professional devices).
  • Receive video/audio data from a browser located in a remote location into a native application.
  • Transmit WebRTC streams and messages between native applications.

Depending on the application, WebRTC can be considered a direct replacement of streaming protocols like RTMP, RTSP, UDP or MPEG-DASH. Here’s a few ideas that we’ve been thinking about:

  • Preview with remote control. Quickly build a web-based control panel for your Windows application with instant video preview and application controls. See our examples for a playlist application and for a video recording application.
  • Transferring video between remote locations. Some companies need a way to stream high-quality video and audio between remote locations. We are working on bringing the quality up to 4K.
  • Cross-platform playback. Use MFormats or MPlatform to decode video files on a Windows machine or in the cloud and view it in a WebRTC-powered browser on any supported device.
  • WebRTC gateway. MFormats or MPlatform can be used as a way to convert any of the supported network streams (RTSP, RTMP, HTTP, UDP, RTSP, MPEG-DASH) to WebRTC. This allows, for instance, for a stream from an IP camera to be viewed in a browser.
  • Live interviews with remote participants. With WebRTC, MPlatform and MFormats it is possible to create solutions similar to Skype TX.

Outside broadcast WebRTC is gaining traction in video conferencing and telemedicine.