The pitfalls of using
WebRTC.
How Cordoniq solves them.
WebRTC is a popular choice when adding conferencing and collaboration to your existing product. But if WebRTC is so suitable for this purpose, why does everyone gravitate toward using the major native products such as Zoom and Microsoft Teams?
Discover the issues with WebRTC
- WebRTC has problems with supported web browsers
- WebRTC has difficulties adjusting to available bandwidth
- WebRTC has obstacles with traversing firewalls, NATs and routers
- WebRTC has trouble with point-to-point connections
- WebRTC has issues with operating a scalable backend
- WebRTC has problems with complexity of implementation in code
- WebRTC negatively impacts video conferencing on your app’s overall user experience
- WebRTC limits the flexibility of the user experience
- Security concerns with WebRTC implementation
- Using WebRTC to add video conferencing and collaboration to your product or service can be costly
WebRTC has problems with supported web browsers
WebRTC was engineered to be used within the confines of a web browser. Therefore, you must make sure everyone who joins a video conferencing or collaboration session meets a minimum browser specification. That minimum standard is different for Windows, macOS, Android and iOS.
If the manufacturer has chosen not to provide an upgrade path – as is the case with older Android phones and tablets – this will impact the user experience and ease-of-use of your product.
The Cordoniq Difference
While Cordoniq allows you to fully leverage the web browser within the user experience, we also break free of the limitations that the web browser places on the performance of your video collaboration app. With our solution, the browser doesn’t define the requirements and you get a consistent experience across all device platforms.
WebRTC has difficulties adjusting to available bandwidth
WebRTC doesn’t provide everything you need to handle scalable video encoding for synchronous communications. While certain aspects of scalable encoding are advancing, it will be years before each web browser on mobile, tablet and desktop platforms, is supported.
This lack of scalable video encoding means your video collaboration app experience will suffer and be unusable for people with insufficient bandwidth. Also, the implementation and compromise in your code will be to adjust the resolution and frame rate of the video image to the lowest quality user experience.
The Cordoniq Difference
Cordoniq implements scalable video encoding on all platforms including Windows, macOS, Android and iOS. Depending upon the processing power of the device, we dynamically adjust the utilization of the process for encoding and decoding as well as transmit multi-layer encoding so that attendees with less bandwidth can still participate in a meeting.
WebRTC has obstacles with traversing firewalls, NATs and routers
WebRTC can use a myriad of UDP and TCP ports to interconnect users. All of these ports must be available and open at the firewall. NAT traversal is such a big issue with WebRTC that you end up having to deploy your own network traversal modules that support protocols such as TURN and STUN.
This infrastructure needs to exist everywhere in your middleware, otherwise users will be unable to interconnect with each other. And yes, the user may be able to operate WebRTC in their web browser, but they still may be unable to interconnect with your meeting due to NAT traversal issues on their side.
The Cordoniq Difference
Cordoniq uses a single TCP connection to traverse a NAT, firewall and router. All communications are routed over this connection and the framework will automatically utilize UDP if the router permits the communication. Since all communications are routed over a single port, all communications can be secured using industry best Transport Layer Security 1.3 in a uniform manner. This communication model is identical on all supported platforms and devices.
WebRTC has obstacles with traversing firewalls, NATs and routers
WebRTC can use a myriad of UDP and TCP ports to interconnect users. All of these ports must be available and open at the firewall. NAT traversal is such a big issue with WebRTC that you end up having to deploy your own network traversal modules that support protocols such as TURN and STUN.
This infrastructure needs to exist everywhere in your middleware, otherwise users will be unable to interconnect with each other. And yes, the user may be able to operate WebRTC in their web browser, but they still may be unable to interconnect with your meeting due to NAT traversal issues on their side.
The Cordoniq Difference
Cordoniq uses a single TCP connection to traverse a NAT, firewall and router. All communications are routed over this connection and the framework will automatically utilize UDP if the router permits the communication. Since all communications are routed over a single port, all communications can be secured using industry best Transport Layer Security 1.3 in a uniform manner. This communication model is identical on all supported platforms and devices.
WebRTC has trouble with point-to-point connections
To avoid operating middleware for NAT traversal or a backend cloud for handling WebRTC communications, you may be tempted to fall back on peer-to-peer connections with WebRTC. This makes the situation with firewalls and NAT traversal worse because each attendee must have the ability to interconnect directly with each other over multiple UDP and TCP ports.
With peer connections you end up sending your video upstream multiple times to each respective attendee. This increases your overall bandwidth usage and lowers the scalability of the size of a meeting. The tradeoff becomes lower the video image quality and framerate to adjust to the lack of bandwidth.
The Cordoniq Difference
Cordoniq provides the easy to deploy backend modules or containers to interconnect users without worrying about the issues presented with P2P. They can be deployed in a manner of minutes, can scale infinitely and be deployed across geographies and diverse cloud data centers. Our solution frees you from both the concerns about backend complexity and worrying about interconnectivity.
WebRTC has issues with operating a scalable backend
If you are considering a large-scale service built around WebRTC you will need to operate your own cloud backend and route communications through a dedicated data center in a secure manner. Besides becoming knowledgeable in cloud computing and system administration and the associated operating costs, you must build your own logic into the backend code so you can integrate your existing web product or service into this infrastructure. That includes some form of unified authentication and creating APIs to integrate your existing web product or service into the WebRTC-hosted backend.
You will also need to determine how to:
- scale your solution and be elastic to demand
- deploy into multiple geographies and demographics
- scale up your backend data storage
- record your meetings in the cloud using WebRTC
- handle security and privacy of sensitive customer communications in the cloud
In the end, it can quickly become an expensive proposition to build and deploy this model with your requirements.
The Cordoniq Difference
Cordoniq provides easy-to-implement modules and containers for Windows- and Linux™ -based servers that we can deploy for you or if you choose, that you can deploy yourself in a private cloud, hybrid cloud or public cloud. Our modules are elastic and can expand and contract to meet demand, and automatically handle failover and load balancing as well as geolocation.
WebRTC has problems with complexity of implementation in code
Modifying your web product or service may seem like a manageable task. You add WebRTC components to your interface so that you can enable video and audio.
These changes, however, take a great deal of time to integrate properly once you consider the APIs required to control and manage the experience, the integration points required for NAT traversal, and how you will handle the user experience of interacting with the cloud backend.
The Cordoniq Difference
Cordoniq took a slightly different approach to the challenges presented by blending web and native experiences together. Instead of asking the developer to add components to their web application, product, or service to provide audio, video, and screen sharing, Cordoniq created a framework where users can integrate their existing web application into the Cordoniq framework without significant changes to their web application.
WebRTC negatively impacts video conferencing on your app’s overall user experience
Since WebRTC is embedded into the web browser with your existing web application, you may find the processing overhead of adding video–especially if it involves many synchronous video users–has a negative impact on the quality of your existing web application’s user experience.
This is especially true on mobile devices and those with less power, like Smart TVs. The browser encapsulates the WebRTC logic and oversees the prioritization, and that varies depending upon the web browser you choose and the OS platform it is operating upon.
The Cordoniq Difference
Cordoniq took the time to engineer low-level SIMD and NEON code to optimize the synchronous experience. We fully leverage the GPU to offload much of the rendering and processing, thereby freeing up the CPU for other requirements. This level of optimization guarantees that the video collaboration experience won’t detract from the user experience of your web application, product, or service.
WebRTC negatively impacts video conferencing on your app’s overall user experience
Since WebRTC is embedded into the web browser with your existing web application, you may find the processing overhead of adding video–especially if it involves many synchronous video users–has a negative impact on the quality of your existing web application’s user experience.
This is especially true on mobile devices and those with less power, like Smart TVs. The browser encapsulates the WebRTC logic and oversees the prioritization, and that varies depending upon the web browser you choose and the OS platform it is operating upon.
The Cordoniq Difference
Cordoniq took the time to engineer low-level SIMD and NEON code to optimize the synchronous experience. We fully leverage the GPU to offload much of the rendering and processing, thereby freeing up the CPU for other requirements. This level of optimization guarantees that the video collaboration experience won’t detract from the user experience of your web application, product, or service.
WebRTC limits the flexibility of the user experience
WebRTC places restrictions on how it is presented and how much control via API you can have over the presentation. While you can mix HTML-based presentations with WebRTC components, you will have limited control over WebRTC and how it presents audio and video or how it handles device selection, manipulation, or digital signal processing. If you experience a technical issue with an attendee, you are typically at their mercy to resolve the problem.
Ideally you have a rich set of APIs to manage the presentation of the video and audio user experience and any screen sharing you need to manage from both the client side and the cloud backend. WebRTC just doesn’t provide this level of control.
The Cordoniq Difference
Our framework acts as the shell around your web application but provides the native performance and reliability you require for the user experience. You, as a developer, control the entire experience via API and your users are presented with a unified experience that includes both your web application and a comprehensive, secure collaboration experience.
Security concerns with WebRTC implementation
WebRTC depends upon the security model of the web browser within the operating system of the device it runs upon. Instead of having a unified security model, it utilizes the web browser’s socket transport layer based upon WebSockets. This means you need to maintain security control over both web browser security holes and issues and operating system-related issues on every platform you intend to support and every browser revision you recommend to your customer.
Common web browsers are constantly updated to resolve security issues, but many users will utilize older web browsers on mobile devices that are not up to date with security patches. You won’t be able to guarantee a secure environment for each attendee without fully controlling the web browser they utilize.
The Cordoniq Difference
Cordoniq implements a fully secure, TLS-based approach to all client connections and communications, across all devices and operating systems regardless of how old the operating system version is or the age of the physical device. We don’t depend upon the operating system or the browser to dictate the security model.
Using WebRTC to add video conferencing and collaboration to your product or service can be costly
When you consider all the above factors–from the amount of engineering time it takes to modify your application to include video and audio encoding, to the time it takes to implement a cloud backend to support it, along with associated systems administrative time–the cost of building a suitable solution that meets your requirements can really add up.
You also have to consider the amount of time in end-user support you will require to help users with their web browsers, cameras and related hardware. Just the time and effort it takes for the software engineering changes and customization is significant.
The Cordoniq Difference
Cordoniq has all of these factors already covered in our framework and can provide them both quickly and economically for your business. We also give you complete control over the security model; the privacy of your data and you choose how your information is stored. Our extensive set of APIs let you manage all the aspects of operating the backend.
Using WebRTC to add video conferencing and collaboration to your product or service can be costly
When you consider all the above factors–from the amount of engineering time it takes to modify your application to include video and audio encoding, to the time it takes to implement a cloud backend to support it–along with associated systems administrative time, the cost of building a suitable solution that meets your requirements can really add up.
You also have to consider the amount of time in end-user support you will require to help users with their web browsers, cameras and related hardware. Just the time and effort it takes for the software engineering changes and customization is significant.
The Cordoniq Difference
Cordoniq has all of these factors already covered in our framework and can provide them both quickly and economically for your business. We also give you complete control over the security model; the privacy of your data and you choose how your information is stored. Our extensive set of APIs let you manage all the aspects of operating the backend.