WebRTC Peer to Peer Communication(Audio & Video) on i.MX6 board
Browsers and mobile applications are using WebRTC for audio and video Real-Time Communications (RTC) via simple APIs. The WebRTC components have been optimized to best serve this purpose. WebRTC based web application provides rich, real-time multimedia features (think video chat) on the web, without any plugins, downloads or installs.It’s purpose is to help build a strong RTC platform that works across multiple web browsers, across multiple platforms.
iWave systems has developed WebRTC based Peer to Peer audio and video communication on i.Mx6 Q7 development platform. iWave is using FireFox web browser and its in built webrtc api’s for the communication.
Architecture of WebRTC
iWave’s i.Mx6 Q7 platform has Quad core processor which can operate up to 1 GHz speed/core. i.MX6 CPU is Freescale’s latest achievement in integrated multimedia application processors which is part of growing multimedia-focused products that offers high performance processing and are optimized for lowest power consumption.
iWave’s i.Mx6 Q7 platform supports 1GB RAM in 64bit mode with eMMC memory of 4GB which can be used both as Mass storage and boot device. i.Mx6 Q7 also supports Ethernet port which is integrated i.Mx6 CPU and connected to the external Gigabit Ethernet PHY on SOM.
iWave’s Application consist of two components – clients and server. Peer to Peer communication is done between two clients. Server is used for registering the clients and to keep the necessary set up for two clients to communicate. After setting up, the server is not having any role in the communication.
Client application is very simple web application using WebRTC to transport audio and video between two clients. The application will enable one client to "dial" the other client and make a video call (with audio).This application only works between two clients. It can be run using Firefox browser
The server brokers the initial connection between the two clients. Once a connection is established between the clients, their communication continues in a peer to peer mode: none of the video data is routed through the server.
Working Process of WebRTC Peer to Peer communication
Audio codec supported by WebRTC is OPUS codec .OPUS codec Supports constant and variable bit rate encoding from 6 kbit/s to 510 kbit/s, frame sizes from 2.5 ms to 60 ms, and various sampling rates from 8 kHz (with 4 kHz bandwidth) to 48 kHz. The Acoustic Echo Canceler present in WebRTC removes the acoustic echo resulting from the voice being played out into the active microphone. Noise reduction component removes certain types of background noise usually associated with VoIP.
Video codec supported by WebRTC is VP8. The VP8 video codec is well suited for RTC since it is designed for low latency. WebRTC has dynamic video jitter buffer for video which conceal the effects of jitter and packet loss on overall video quality. Image enhancement removes the video noise from image captured from camera.
WebRTC call: A Screenshot of WebRTC peer to peer audio and video communication
- WebRTC is In-built in Firefox browser.
- Improved video and audio streaming.
- VP8 video codec and OPUS audio codec provides much less data transmission without packet loss.
- WebRTC based Peer to Peer communication can be run from firefox browser without any plugin or software installation.
- Audio and Video streaming can be done local networks.
A.Deepanraj - Member Technical
iWave Systems Technology Pvt. Ltd.