WebRTC on i.MX6 Qseven Development Platform
iWave’s internal project
Browsers like Firefox are providing in built WebRTC (Web Real-Time Communication) module to do real time audio and video communication. WebRTC can be used for peer to peer audio and video communication, one to many audio and video broadcasting and conferencing. The WebRTC provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose. WebRTC offers web application provides rich, real-time multimedia applications on the web, without any plugins, downloads or installs. Its 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, WebRTC based one to many audio and video Broadcast and All in one Application on i.Mx6 Q7 development platform. iWave is using Firefox web browser and it’s in built WebRTC APIs for the communication.
- Building Mozilla Firefox browser on Yocto for Linux 3.10.17 and to test WebRTC support in Firefox
- Running Servers (peer.js, server.js) on iWave’s i.Mx6 Q7
- Customising and testing Peer to Peer Application, broadcasting and conferencing
- Porting of Signalling server to use socket.io library
Solutions offered by iWave
Peer to Peer Application Description:
iWave’s Peer to Peer 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.
Broadcast Application Description
In case of Broadcast there is only one way communication. The server side application should be run in Linux/Windows PC. The clients can access the server from Firefox browser using the following https://localhost:8888/index.html address. When a client wants to join a broadcast, the client will be registered first in the server.
All-in-One Application Description:
The All-in-One application is similar to that of Peer to Peer Communication application and Broadcast application. The All-in-one application consist of Video Conference, one to one, many to one and one to many types of applications. This applications can be used with Video, only Audio, etc. It contains all the features similar to Peer to Peer and Broadcast.
- 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 Demos can be run from Firefox browser without any plugin or software installation
- Audio and Video streaming can be done local networks
Area of Expertise:
- Mozilla Firefox on i.Mx6
- Server on i.Mx6
- VP8 Video codec and OPUS Audio codec
- WebRtc Architecture and Java script
- iWave is provided Linux 3.10.17 support on iWave’s G15D i.MX6 platform for various Audio and Video Streaming applications
The WebRTC applications provides High Quality Audio and video Streaming using Vp8 for Video codec and OPUS for Audio codec. 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. 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.