What is WebRTC ?
WebRTC is a free; it provides browsers and mobile applications development with Real-Time Communications (RTC) capabilities via simple APIs. With the convergence of media and telecom companies, delivering content seamlessly on mobile devices is a major revenue stream for mobile carriers. A video delivery solution for any leading wireless carrier will allow it to leapfrog in today’s competitive environment and flawlessly deliver premium video content on its 3G and 4G networks.
The solution let users quickly browse through hundreds of choices based on preferences for genre and content type, and deliver an engaging video exploration and viewing experience across multiple platforms. The application balances bandwidth and video quality on the fly, and allows users to automatically transition to Wi-Fi when available. Thus the growing content base can be enabled to a loyal user base, who can view premium content when they want, where they want.
WebRTC applications does several things:
• Get streaming audio, video or other data.
• Get network information such as IP addresses and ports, and exchange this with other WebRTC clients (known as peers) to enable connection, even though NATs and firewalls.
• Coordinate signaling communication to report errors and initiate or close sessions.
• Exchange information about media and client capability, such as resolution and codecs.
• Communicate streaming audio, video or data.
What are the challenges for WebRTC on mobile devices?
• Form factor differences: Form factor differences means one device’s image will have a different look than another in aspect ratio and resolution. What should happen if I use an iPad 4 and a Galaxy S4 mini phone? Or maybe a Chrome browser connecting to a mobile app? How should these variations be treated?
• Audio Hardware configuration: Different devices have different implementation for the built in speaker and Bluetooth. Especially in Android there are many differences between devices that require special handling.
• Screen & camera resolutions: Different camera and screen resolutions affect the quality of the image in the video stream.
• Processor architecture: To support WebRTC in video, a CPU has to have at least ARMv7 architecture with its NEON extension. Audio cannot be used in processors without NEON
• CPU Power: CPU power can be a limiting factor in frame rate and image resolution, especially image capture, due to the complexities of the video encoding.
• Audio acceleration support: Not all devices support audio acceleration. A device that supports Audio Acceleration (iPhone 4 and above for example) can be utilized to save the CPU
power used by WebRTC audio processing.
• Sensors: Mobile devices can change orientation, which affects the image generated by them and the one displayed on their screen.
• Battery: Left it to the end, because it’s a real pain. Running a WebRTC video call kills your battery! There could be lots of innovation in this one, both from chip vendors and the developer community.
The Medium Challenges for WebRTC on mobile devices.
• Changes in connectivity: Changes in connectivity can create a problem when they happen inside a session. You need to have a strategy for handling such connectivity changes, for instance if a device can change its connection from WiFi to 3G within a session, then you should take the correct measures to keep the session alive (Block 3G handoff, recreate the session after handoff etc.)
• Network profile: In mobile the network profile can change much more dynamically than in a stationary PC environment. For example: User may change position and WiFi or 3G jitter and bandwidth can change as a result. If you are in a car cell handoffs can occur or there could be glitches in connectivity (Better not be the driver though, if doing video). The configuration used for WebRTC in a mobile app needs to take these into account in elements like bandwidth, frame rate and resolution adaptation.
• Changes in lighting: The user may move with the phone to places where light is more dim and this could affect the video display on the receiving side.
• Ambient noise and use of speaker: A mobile profile usually demands using more rigorous noise suppression and echo cancellation algorithms.
• Network challenges: In a mobile environment especially, NATs and firewalls are a real pain (Especially if you want your app to work in corporate environments).
The comparisons of Mobile Website vs. Mobile App
A mobile app is a smartphone or tablet application. Unlike a mobile website, a mobile app must be downloaded and installed, typically from an app marketplace, such as the Apple App Store or Android's Google Play store.
A mobile website is similar to any other website in that it consists of browser-based HTML pages that are linked together and accessed over the Internet (for mobile typically WiFi or 3G or 4G networks). The obvious characteristic that distinguishes a mobile website from a standard website is the fact that it is designed for the smaller handheld display and touch-screen interface.
Which is one is Better – an App or a Mobile Website?
When it comes to deciding whether to build a native app or a mobile website, the most appropriate choice really depends on your end goals. If you are developing an interactive game an app is probably going to be your best option. But if your goal is to offer mobile-friendly content to the widest possible audience then a mobile website is probably the way to go. In some cases you may decide you need both a mobile website and a mobile app, but it’s pretty safe to say that it rarely makes sense to build an app without already having a mobile website in place.
Generally speaking, a mobile website should be considered your first step in developing a mobile web presence, whereas an app is useful for developing an application for a very specific purpose that cannot be effectively accomplished via a web browser.
The Advantages of a Mobile Website vs. Native Apps
• Immediacy – Mobile Websites Are Instantly Available
• Compatibility – Mobile Websites are Compatible across Devices
• Upgradability – Mobile Websites Can Be Updated Instantly
• Find ability – Mobile Websites Can be Found Easily
• Share ability – Mobile Websites Can be Shared Easily by Publishers, and Between Users
• Reach – Mobile Websites Have Broader Reach
• Lifecycle – Mobile Websites Can’t be deleted
• A Mobile Website Can be an App!
• Time and Cost - Mobile Websites are Easier and Less Expensive
• Support and Sustainability
When Does a Mobile App Make more Sense?
• Regular Usage/Personalization
• Complex Calculations or Reporting
• Native Functionality or Processing Required
• No connection required