
Facebook's Messenger, Google's Hangouts, Discord. It allows audio and video communication to work inside web pages by allowing direct peer-to-peer communication, eliminating the need to install plugins or download native apps. WebRTC is a free, open project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. So after doing some research I actually found a solution - WebRTC. Decent web browser support (at least Google's Chrome and Mozilla's Firefox) without any extra plugins (flash etc).

Full duplex audio (two way audio between RPi and a client).For my personal project I needed a solution that would give me: I quickly realised that MJPEG simply won't cut it for me. Another problem is that MJPEG doesn't support audio (obviously) and some other audio implementation would be needed along with it. High bandwidth usage usually also means limited resolution or low FPS.

The actual problem with MJPEG is that it is bandwith hungry as all it does it streams a sequence of JPEG pictures at certain rate to a web browser. Now there are many MJPEG streaming applications/projects for RPi and they all are pretty simple to use. When I was looking for some sort of live streaming solution for my Raspberry Pi, I've noticed that the majority of the Raspberry Pi tutorials on video streaming show you how you can set up a Motion JPEG or MJPEG based streamer. This one is going to be a long one, but the reward is worth the effort :) Streaming to a web browser Today we're going to talk about how we can stream low latency high resolution live video and audio to a web browser from Raspberry Pi using WebRTC.
