What Is WebRTC?
Web Real-Time Communications (WebRTC) is an open source project created by Google to enable peer-to-peer communication in web browsers and mobile applications through application programming interfaces. This includes audio, video, and data transfers. It eliminates the need for plugins or native app installations, and aims to make peer-to-peer communication user-friendly. WebRTC empowers you to create high-quality RTC applications that can be used in Chrome, Firefox, Opera, and Android, as well as natively on iOS and Android.
WebRTC was initially released in 2011, and over the past several years has become decidedly prevalent. Facebook, Google, Amazon, and many other companies implement WebRTC in their applications to provide fast, reliable, and secure communication. Excitingly, there is only more room for WebRTC to grow to other companies. It has the potential to be useful for companies like Netflix, whose users consume 1 billion hours of content per week as of 2017
The main advantages of WebRTC:
- High communication quality thanks to modern video codecs (VP8 and H. 264) and audio codecs (Opus).
- Quality automatically adjusts to any types of connection.
- Noise reduction and echo cancellation built-in support.
- Automatic microphone sensitivity (AGC) control for all participants.
- High level of security: all connections are protected (HTTPS) and encrypted (SRTP).
- Built-in content capture mechanism (e.g. desktop sharing).
- Could be embedded into any HTML5 and/or WebSocket-based interface
- Cross-platform ready: all WebRTC application works good on any desktop or mobile operating system provided that your browser supports WebRTC. In this way you can cut software development costs dramatically.
- No additional software or plugins installation is required to make a video call
The main disadvantages of WebRTC:
- As browsers cannot synchronize multiple incoming streams, you need a video conferencing server for audio and video mixing to run group audio or video conferences.
- WebRTC solutions are incompatible with each other. The standard generally applies only to the methods of video and audio transmission, while vendors are free to decide on signalling, messaging, file transfer, conference scheduling and etc.
- Group conference mixing and transcoding requires large computing resources. Group video conference support for WebRTC usually requires paid subscription (in case of cloud solutions) or big infrastructure investments, as each conference layout usually requires at least one logical CPU core on the server.
What is RTMP?
RTMP stands for real-time messaging protocol. It provides for high-performance transmission of audio, video, and data from an encoder to a server, which distributes the signal across the Internet. Many streaming providers and encoder developers support RTMP streaming.
Pros of real-time messaging protocols (RTMP):
There is no such thing as perfect. Much like everything else, real-time messaging protocol has its own benefits but is associated with a few disadvantages as well. A few of such pros and cons are accentuated below:
- The best advantages and features of the real-time messaging protocol is the transmission or display of audio, videos in many and of course countless formats. And also, the fact that you can add security to it too.
- One of the most important benefits of RTMP in real-time publishing is the very low real-time transmission delay, who doesn’t like that? A true example of this is all the games people crush while playing.
- RTMP has many more advantages than HTTP. Sounds sad, but not all devices in the world today are advanced technologies. Let's talk about the following set-top box: Not to mention the exception, we are talking about cramped boxes with hardware and firmware of the Stone Age. These big old computers do understand RTMP but don’t understand the HTTP based streaming technologies.
- It has the head of advantages and it is that it gives you the upper hand of smart search capability as compared to that of HTTP enabled video streams and a flash player is to be used to relish this feature in order to work.
Cons of real-time messaging protocols (RTMP):
- There is bad news for all the people who use iDevices like MacBook and iMacs but only to the people who use more than one device related to it. We all know that there is a partition line which separates a windows laptop from iDevices. And one of the most common features, we as people know is that all the iDevices do not support Flash players for some reason, so here goes. It will be easy for anyone to recall that real-time messaging protocol is old technology and therefore does not work in some specific environments. Let’s take the sad instance that RTMP does not support HTML. This is because RTMP is designed to be very different from the design of the HTTP protocol.
- One of the biggest disadvantages is that it weirdly ignores port 80 of HTTP and works mostly on port 443 or 1935. Due to this dissimilar advancement, this holds a stop sign in front of the users in accessing files because of blocking by firewalls.
- Renowned CDN’s don’t support the good old real-time messaging protocol. So, the streaming of CDN services are prevented.
What is DASH/HLS?
MPEG-DASH is a streaming method. DASH stands for "Dynamic Adaptive Streaming over HTTP." Because it is based on HTTP, any origin server can be set up to serve MPEG-DASH streams.
MPEG-DASH is similar to HLS, another streaming protocol, in that it breaks videos down into smaller chunks and encodes those chunks at different quality levels. This makes it possible to stream videos at different quality levels, and to switch in the middle of a video from one quality level to another one.
What we had to do ? Connect all this technolgies together