I'm working on HTML5 app that lets several users to work on one document. I need to add a possibility for users (editing the same document) to talk to each other. And I just don't know how to start with that. Here are my questions
- Is there an HTML5 lib allowing to transfer sound from microphone between clients?
- What about streaming video from camera?
- What is an easiest server-side solution for that?
Any thoughts are strongly appreciated! So don't be shy! :)
UPD: please note that I need an abbility for more then two users to talk.
I'm working on HTML5 app that lets several users to work on one document. I need to add a possibility for users (editing the same document) to talk to each other. And I just don't know how to start with that. Here are my questions
- Is there an HTML5 lib allowing to transfer sound from microphone between clients?
- What about streaming video from camera?
- What is an easiest server-side solution for that?
Any thoughts are strongly appreciated! So don't be shy! :)
UPD: please note that I need an abbility for more then two users to talk.
Share Improve this question edited Jun 5, 2013 at 11:08 Eugeny89 asked Jun 4, 2013 at 12:35 Eugeny89Eugeny89 3,73110 gold badges55 silver badges104 bronze badges3 Answers
Reset to default 8 +100For this you can use WebRTC.
However, this is a very young and unfinished technology that as already stated is currently available only in Chrome stable and Firefox beta. This means there will probably e changes to the current spec, something to be aware of in case of early implementation. But it allow you to use video and audio munication directly in the browser.
Quick-start here:
http://www.html5rocks./en/tutorials/webrtc/basics/
Other options are Flash based plugins such as flash-videoio. This is an open source plugin but will naturally require Adobe Flash installed. This may or may not be a problem depending on the pany's security policy.
For technical details on implementation please see examples on the provided links.
For many-to-many you can use either:
- "Mesh" - everybody connects to everybody. This however is costly on CPU and mobiles are often left out.
- "Star" - everybody goes through the most capable device. However, with many connections this will soon run slow for the device handling all connections.
- MCU. Specialized server to handle all connections. If mixes audio and video and handles drop-outs as well without affecting the other callers.
Examples of MCU's:
http://sourceforge/projects/mcumediaserver/ (open source)
http://www.medooze./products/mcu.aspx (mercial)
you are searching for navigator.getUserMedia()
that allows the various users to share video audio and data.
the support is very low... only chrome and the latest verions of opera and firefox support it.
and totally no support on mobile devices... maybe in the next android chrome... dunno
as there is much to talk about and i have no clue on how u wanna setup everything i suggest u read a little more about that on the urls...
http://caniuse./stream
http://www.html5rocks./en/tutorials/getusermedia/intro/
http://dev.w3/2011/webrtc/editor/getusermedia.html
https://developer.mozilla/en-US/docs/WebRTC/navigator.getUserMedia
http://my.opera./core/blog/2011/03/23/webcam-orientation-preview
http://simpl.info/getusermedia/
and SERVERSIDE solution nahh... thats not a good solution
clientside is the way to go.
Not sure if you're required to do it yourself from scratch or are able to use third party libraries/tools.
In which case I would remend using Tokbox which has support for WebRTC and SDK for iOS.
Their API is simple and easy to use.