WebRTC peer-to-peer conferences in BabelRoom

117 views
Skip to first unread message

John Roy

unread,
Jun 24, 2013, 3:52:56 AM6/24/13
to babe...@googlegroups.com
* We are pleased to announce development is complete of WebRTC peer-to-peer conferences in BabelRoom. We're now making it available for public testing pending release to production.


* WebRTC is new a technology for audio and video conferencing built into browsers. It promises better quality audio and video without external programs or plugins. This is an emerging technology so standards and implementations are still in flux. Consider the technology game changing, but still somewhat experimental.


* A normal BabelRoom conference has many features associated with central routing of audio and telephone. The peer-to-peer mode does not support those features, so they are disabled. A future release may provide WebRTC media access to centralized conferences but for the present WebRTC is available in peer-to-peer mode only.


* At this point source code is checked into git and a test webrtc conference is running on http://test.babelroom.com/webrtc


* To try it out enter the above conference by entering a nickname. There is a box for each online user, yours will have a camera. Make your audio+video available by clicking the camera and then agreeing at browsers prompt to allow camera & microphone access. Video + audio of other users are available if you see the eye icon, click on it to connect. If the camera and eye icons are disabled it means your browser does not support WebRTC :-(


* We have developed a standalone wrapper around low-level WebRTC functions called wraprtc - it's here: https://github.com/babelroom/wraprtc -- this is a little different from other WebRTC wrappers as it's designed speicfically for >2 participants.


* We've tested this on various combinations of Chrome (25 & 27) and Mozilla nightly (24.01a) on Mac, Windows and Linux. If you want to use this your best bet is a recent version of chrome (>=25)


* Audio can be very good - I didn't look closely at the SDP negotiated but I think I got stereo@48000 at one point - thats CD quality


* There's been some concern about the scaling characteristics of WebRTC peer-to-peer conferences. In practice I've been pleasantly surprised. Media encoding is only done once (I believe) regardless of the number of viewers -- at least in our wraprtc wrapper code. Worst case scenerios for a conference with N participants is 2*(N-1) video & audio streams. We've provided a video-pause feature as well as mute to allow some control over bandwidth.


* Realistically this technology (in peer-to-peer mode) is for very small conferences (perhaps <5 people), in addition to higher bandwidth needs there is no central audio MCU to switch the active 'talker'. This role is achieved using FreeSWITCH in regular conferences. 


* This will be moved into production (bblr.co) quite quickly as it's all UI development. We'll fix a few other easy bugs then release on production once it's been tested by all our browser combinations. Perhaps 1-3 week timeframe.


* Conferences will not be peer-to-peer by default. There is a new option under "Room Settings" - "This is a WebRTC peer-to-peer conference" that will enable this mode (page reload required).


* At present we're using some default networking configurations -- so depending on your firewall/NAT you may have some issues (most will work). 


* The use case for small peer-to-peer conferences is quite different from that of a one with central audio. From an infrastructure standpoint is much easier to provide. Consider a freemium model which hosts one-on-one tutoring conferences to developing nations -- this model becomes practical because one only hosts the signalling (which in this case can be far away and slow).


* We'd be interested in feedback on how this works for people -- you can use the test site here: http://test.babelroom.com/webrtc 

-J
Reply all
Reply to author
Forward
0 new messages