Videocalls via web

386 views
331 views

Published on

This presentation talks about our experience with implementing Videocalling functionality via your web browser in a Ruby on Rails, JavaScript, Flash and Red5 web stack.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
386
On SlideShare
0
From Embeds
0
Number of Embeds
151
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Videocalls via web

  1. 1. Videocalls via web@pavolko@bonetics
  2. 2. Goal
  3. 3. Stack:• Ruby on rails• JS• Flash– capturing video and streaming to Red5• Red5– open source media server• publishing, playing, recording streams
  4. 4. Architecture overviewRed5PersistentconnFlashRoRJavaScript FlashRoRJavaScriptUser AUser B... Persistentconn
  5. 5. JS - Flash
  6. 6. Flash – Red5Red5Flashred5-web.xmlgetConnection().call("signalisation.someMethod",args...);ServiceUtils.invokeOnConnection(conn,"callSomething",new Object[] { "value"});
  7. 7. Red5• extend MultiThreadedApplicationAdapter• provides all you need from scratch– connect– publish stream– play stream– disconnect
  8. 8. Let’s stream• publish to Red5:– ns = new NetStream(getConnection());– ns.attachCamera(getCamera());– ns.attachAudio(getMicrophone());– ns.publish(name); #string of your desire• play from Red5:– ns.play(name); #string– video.attachNetStream(ns);• google knows details
  9. 9. fail: Complicated stack• they say think twice• well you better think a lot– chances are you must change code in JS,F,Red5
  10. 10. fail: Corporate environment• I am an admin and my job is to block ports– HTTP Tunneling out-of-box support• connect 1935 port (default)• connect 80 if it fails• timeout problem if port blocked– shotgun method
  11. 11. fail: Persistence• Non-persistent approach• Flash:– is anybody calling me?– is anybody calling me?– is anybody calling me? yup• is he still calling?• is he still calling?• wrong
  12. 12. Rooms concept• red5url.com/room1– share resources within room1– acts as standalone Red5 instanceR1uuuuR2u uuu
  13. 13. Thanks• we are hiring hq@bonetics.com

×