The other day a customer asked me why there is a difference in the video quality when I run my group video chat app as a native vs. a web app, so I thought I should share some thoughts about this.
Choosing the right approach for building your video-enabled app is very important. It can have a significant impact on your user experience and the adoption of your app. You can choose to build either a native app that runs directly on a mobile or desktop device, or a web app in which users can access the app through their web browser.
When considering building a native vs. web-based video chat app, the decision criteria is not solely based on the delivery method of the app. There are several other factors to consider.
Let’s look deeper into different approaches:
Web-based Video Chat Applications
When we talk about a web-based video chat app, we are really referring to implementing video chat using WebRTC. One of the big advantages of WebRTC is that it provides a common standard between all browsers. It makes communication between applications that run in different browsers possible. On the other hand, it also limits the usage of codecs to the set that is defined by WebRTC specifications, and to supported browsers.
Another advantage of WebRTC is that the client-side software needed for video chat is already built into the web browser itself. So, the user does not need to download any additional software. However, the performance is dependent upon the specific WebRTC implementation by the browser maker.
Native Video Chat Applications
Native video chat apps do require software to be downloaded and installed, unlike WebRTC. For many users, this may not be a big deal. For example, most consumers are comfortable with downloading an app to use a service on their mobile device. Also, the native installed app makes it very easy for a user to launch an app for its intended purpose, rather than trying to remember a URL and login to a website, or accidentally closing the browser tab that contains the active video chat session.
Native apps provide additional performance advantages. With a native app, the developer can directly access resources and devices connected to the device. It also means that the app has direct access to detect CPU performance and network performance, making it easier to dynamically adapt the call quality for optimal performance.
When you are using a vidyo.io native SDK, for Windows, macOS, iOS or Android, you take full advantage of Vidyo’s core technologies. This includes Vidyo’s dynamic network routing adaptation through the vidyo.io routing core. The vidyo.io routing core receives video from all endpoints and adapts the outbound video for each endpoint receiving video. It dynamically changes the amount of video sent to each endpoint, based upon available bandwidth, CPU strength, and screen resolution. The result is an individually-optimized video stream for each endpoint.
Video Chat for Web-based Native Applications
To place a call with vidyo.io, you simply need to initialize the the VidyoConnector object, and then call the Connect function. Depending on the browser used, it automatically runs what is best for that browser. In other words, the same vidyo.io code on IE uses the plugin, but on Chrome it uses WebRTC. The experience s seamless. The application writer does not need to know which browser it is running on. It cannot get any easier than that!
|Native App||Web App|
If you need to diagnose video quality issues in your native app, make sure to check out the Log Viewer utility for instructions.