Upgrade to Pro — share decks privately, control downloads, hide ads and more …

EdgeConf 2013 - Realtime/WebRTC Intro Talk

EdgeConf 2013 - Realtime/WebRTC Intro Talk

Video of talk and panel discussion here: http://www.youtube.com/watch?v=Al3SEbeK61s

229ec15028bae7f1d4cdcfe91e2380b0?s=128

Henrik Joreteg

September 23, 2013
Tweet

Transcript

  1. @HenrikJoreteg EdgeConf Realtime

  2. HI!

  3. andyet.com

  4. None
  5. None
  6. PICTURE OF KIDS Talky.io

  7. WebRTC

  8. low-latency peer-to-peer networking in the browser

  9. PeerCDN

  10. uses data channels to send files to other current visitors

  11. de-centralized + encrypted = big win for web

  12. So how’s WebRTC coming along?

  13. att.js (required modded chromium)

  14. None
  15. Sweet, so we’re good?!

  16. no.

  17. WebRTC is pretty still pretty finicky

  18. Setting up a video call between two users...

  19. - prefixed methods - very different error types - strings

    on FF - error object chrome - neither follows spec - constraints (audio/video + resolution) but not in FF - screensharing in chrome (flag) - hard to detect failure type - requires https or fails silently navigator.getUserMedia
  20. getUserMedia module

  21. - convert stream to blob URL set as src -

    chrome set “autoplay” to true - FF you attach and then call `.play()` - You really want to be able to mirror and mute in one swoop. Attaching a media stream
  22. attachMediaStream module

  23. - total greenfield, not spec’ed - help users discover/pass data

    messages - capabilities detection - screensharing from chrome to FF fails silently (to be fair, it’s flagged) Signaling Server
  24. signalmaster server

  25. - prefixed - createDataChannel (very finicky set of options) -

    SDP hack to remove default upload limitation in chrome. - RTCPeerConnection v. mozRTCConnection Peer Connections
  26. RTCPeerConnection module

  27. - data channels not interoperable - single video stream per

    connection - screensharing requires other peer connection - stream re-broadcasting doesn’t work (well) - Different levels of support for TURN Other Challenges:
  28. THERE ARE OTHER BROWSERS!

  29. First time (that i know of) where direct-interoperability is needed

    between browsers
  30. SimpleWebRTC var webrtc = new SimpleWebRTC({ localVideoEl: 'localVideo', remoteVideosEl: 'remotesVideos',

    autoRequestMedia: true }); webrtc.on('readyToCall', function () { webrtc.joinRoom('room name'); });
  31. PeerJS OpenTok RTCMultiConnection (https://www.webrtc-experiment.com)

  32. Tinkerability

  33. jQuery -> DOM socket.io -> WebSockets simpleWebRTC -> WebRTC

  34. WebRTC needs more Open Web hackers

  35. feedback file bugs improve APIs push for interoperability

  36. IsWebRTCReadyYet.com

  37. Real User Feedback Data From Talky

  38. Let’s make the Open Web even awesomer with WebRTC <3

  39. THANKS! @HenrikJoreteg, @andyet on twitter