webrtc - uninett · work done by uninett utforske webrtc – følge opp standardiseringprosessen...

Post on 14-May-2020

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

WebRTC

Stefan OttoSamling: UNINETT sanntid og eCampus

Oslo: 2. - 4. Desember 2014

Agenda

● Lync utviklingsplattform● WebRTC● WebRTC: Work done by Uninett i år● Pause ● Nye ideer og framtidsplaner● Diskusjon / Feedback

Lync utviklingsplattform

● Hvorfor utvikle imot lync?– Integrasjonsløsninger

● Videorom løsninger● Sentralbord● Nettleser

– Utvide bruk av lync:● Interaktive e-learning● Videostrømning● Semiautomatisert videoopptak ● ...

Lync utviklingsplattform

Lync server

UCMA

Audio Video Presence ...

SIP

Lync desktopklient

SIP

UCWA

Lync mobile

UCWA

Lync web app

UCWA Media plugin

HTTP

My web app

UCWA

Audio Video Presence ...

Media plugin

UCWA JS OM

Plattformstøtte

● UCWA – Mobile plattformer (WindowsPhone, iOS, Android)– UCWA JS OM (jLync)

● Audio/video bare med plugin – Windows 7, 8(Desktop), 8.1 (Desktop), MacOS X > 10.6

– UCWA JS OM med WebRTC støtte● Plattform uavhengig

WebRTC

● Kommunisere via web med noen eller noe i sanntid

● Transport av lyd, video og/eller data● Nettleser API● Kommunikasionsprotokoller ● Codecs

The big picture

peer 2Lyd / bilde / data

Signalering(f.eks. SIP/xmpp/text)

peer 1

BrowserWebRTC

stack

Web Application (Javascript/HTML/CSS)

WebRTC API

Networkprotocols

Standardisering

Browser

Signaling partner ( node.js / xmpp-server / SIP-server / ? )

Ikker definert!

Standardisering

BrowserWebRTC

stack

Web Application

Browser

BrowserWebRTC

stack

Web Application (Javascript/HTML/CSS)

WebRTC API

Networkprotocols

Standardisering

Browser

Standardisering

BrowserWebRTC

stack

Web Application

Browser

SDP offer

SDP answer

Demo

● http://cjb.github.io/serverless-webrtc/serverless-webrtc.html

WebRTC Nettleser API

● Tilgang til mic & cam● Etablere kommunikasjonskanaler● Sende og ta imot audio & video strømmer● Sende og ta imot vilkårlig data

Mic and cam

● navigator.getUserMedia()– > MediaStream:

MediaStream

MediaStreamTrackvideo

MediaStreamTrackAudio (stereo)

left

right

input output <video> /RTCPeerConnection

cam +mic

Use case – guitar tuner

● http://www.freetuner.co/

Use case - ascii-camera

● http://idevelop.ro/ascii-camera/

Use case – Gesture Control

● http://iambrandonn.github.io/WebcamSwiper

WebRTC API

BrowserWebRTC

stack

Web Application (Javascript/HTML/CSS)

Browser BrowserWebRTC

stack

Web Application (Javascript/HTML/CSS)

Browser

WebRTC API

● Web-utviklere må ikke bryr seg om:– Nettwerkprotokoller (ICE,STUN,TURN,UDP,TCP)– Kryptering (SRTP,DTLS)– Autmatisert jitter buffer– Codecs

● Audio (G.711, Opus, EAC, Comfort Noise, FEC)● Video ( VP8, H264 ) ?

Nettleser-støtte

http://iswebrtcready.com

Microsoft

http://status.modern.ie/webrtcobjectrtcapi

Microsoft

● 14.11.2014: Skype for web● Beta (fortsatt plugin basert)● Internet Explorer:

– Støtte for ortc (WebRTC1.1)– Video codec H.264

● Støtte i Lync?

Plattform-støtte

● Nettleser:– Desktop (Chrome, Firefox, Opera, (IE) eller plugin basert Safari)– Android (Chrome, Firefox)– FirefoxOS

● Native Applikasjoner– Desktop (WebRTC SDK fra google (Windows, MacOS, Linux),

OpenWebRTC(Ericsson), PhoneGap)– iOS (PhoneGap, OpenWebRTC(Ericsson), WebRTC SDK port til ObjectiveC)– Android (PhoneGap, webview, peerConnection.java,

OpenWebRTC(Ericsson), WebRTC SDK )– Embedded (PhoneGap, WebRTC SDK – må man portere selv!)

WebRTC standardisering status

● Working draft● Video codec VP8 / H264 ferdig ?!● Video constraints nesten ferdig● Recording API in progress● ID / Auth in progress● WebRTC1.0● WebRTC1.1 (ortc)

– Kompatibilitet til 1.0?– VP9 / H265 ?

Browser A

Web Application

Browser B

Web Application Media / data

Not defined signaling mechanism (f.eks. SIP/xmpp/text)

Ideal verden

Browser A

Web Application

Browser B

Web Application

Not defined signaling mechanism (f.eks. SIP/xmpp/text)

NAT NAT

STUN STUNmedia / data

Bak NAT med STUN

Browser A

Web Application

Browser B

Web Application

Not defined signaling mechanism (f.eks. SIP/xmpp/text)

fire-wall

STUN STUN

media / dataTURN TURN

Bak brannmur med TURN

fire-wall

Work done by Uninett

● Utforske WebRTC– Følge opp standardiseringprosessen (ietf/w3c)– Utforske prosjekter som driver med WebRTC

● Bygge en eksempel-installasjon– Samle praktiske erfaringer med nettverk (TURN/STUN)– Utforske forskjellige signaleringsprotokoller (SIP/JS/XMPP)– Samle erfaringer med WebRTC nettleser API

● Bygge SIP-WebRTC gateway for audiosamtaler● Bygge «proof of concept» videokonferanse-løsning● Bygge «proof of concept» kommunikasjonsklient med feide

integrasjon

Webrtc – første skritt

Webrtc – første skritt

● http://webrtc.akademia.no:8080● Basert på easyRTC → http://easyrtc.com/

– Node.js for signallering– Enkelt bruk av WebRTC API

● STUN / TURN server

WebRTC kommunikasjonsklient med feide

● Serverside: – nova platform– debian wheezy– node.js (user profiles / communication with UWAP) – signalling xmpp (prosody)– rfc5766 TURN server

● Clientside– UWAP authentication / groups / searching– p2p audio and video WebRTC– file sender p2p WebRTC– chat (xmpp based)– Buddylist

meet.akademia.no

Videobridge(jitsi)

Webserver(nginx)

TURN/STUN(rfc5766)

Webclient (behind firewall)

webclient

meet.akademia.no

Xmpp(prosody)

Demo: http://meet.akademia.no/stefano

Klassisk web-konferanse

server

● 1 opp og 1 ned-strømm for hver klient

● For video med 1 Mbit/s: 1Mbit/s for her klient opp og 1 mbit/s ned

Selective Forwarding Unit (SFU)

server

● 1 opp og n-1 ned-strømm for hver klient

● For video med 1 Mbit/s: 1Mbit/s for her klient opp og 4 mbit/s ned

Klassisk web-konferanse

Flerpart p2p

N=5:● (n-1) opp og (n-1) ned for hver klient● 1 Mbit/s per strøm: 4 Mbit/s for hver

klient opp og ned ● For vanlig DSL nett er det allerede for

mye● Appear.in

p2p kombinert med sentral konferanse server

conference server

● Low-bandwidth klienter kan dynamisk bytte til en sentral servertjeneste

Performance jitsi-videobridge

● 1 normal server med standard hardware– Omtrent 1000 strømmer samtidig– 550 mbit/s– 20% CPU ytelse

● Tilsvarer:– Omtrent 30 deltaker Konferanse eller– 50 samtidige konferanser med 5 deltaker eller– 250 samtidige 1 til 1 samtaler

● Renater (frankrike): 11.000 konferanser med ca. 27.000 deltakere i løpet av november 2014

● Framtid: skaleringløsning

Jitsi båndbrede CPU/ antall strømmer

Lync-WebRTC integration with a WebRTC cloud service

Lync

(jLync/UCJA)Lync UCWA

WebRTCClient

Lync UCMA

Lyncclient

WebRTCClient

WebRTCA/V cloud

service

Uninett SanntidSBC

PSTN

WebRTC cloud service

WebRTC cloud service

MCUControllerMCUController

MCUController

API cloud controllerClient

Client

WebRTC client in Lync meeting

Lync meeting

Lync-ClientWebRTC-Client

(jLync/UCJA)Lync UCWA

Lync UCMA

● jLync / UCJA● Javascript Object model● Audio / video / presence / contacts / auth /

groups / IM● UCWA

● Available with Lync 2013● Unified Communication Web API● Http based API● So far: presence / contacts / Auth

Groups / IM

Lync-Client

Lync Client in WebRTC meeting

WebRTC service

(jLync/UCJA)Lync UCWA

Lync UCMA

Lync

WebRTCClient

LyncClient

meeting

4

1

2

3

1. create meeting2./3. send message with URL to Lync contact4. Lync opens URL in WebRTC compatible Webbrowser

WebRTC - SIP

● WebRTC-SIP gateway:– Kamailio – Asterisk– Webrtc2sip (doubango telecom)– Freeswitch ...

● Client-side:– SIPml5– Jssip– Sip.js

WebRTC-SIP gateway

SIPWebRTC-Client

SIPWebRTC-Client

PSTN / SIPworld

Klassisk audio konferanse med WebRTC-gw

WebRTC- gateway

SIPWebRTC-Client

SIPWebRTC-Client

telephone conferenceserver

SIPClient PSTN

telephone

WebRTC konferanse

SIP-WebRTCgateway

SIPWebRTC-Client

SIPWebRTC-Client

WebRTCconference server

SIPClient

Use case – TogetherJS

● Mozilla● collaborative browsing● https://togetherjs.com/examples/drawing/

Nubomedia.eu

● EU commission fundet (4 M€)● Basert på Kurento.org

– Gstreamer for video en/decoding

● PaaS: interactive social media tjenester i skyen● Tidsplan: 32 måneder (Feb 2014 – Sept 2016)

Use case – p2p networks

● http://webtorrent.io - Torrent client for the browser / node ( DHT )

● http://peersm.com/peersm TOR-node combined with a torrent-client ( DHT , WebRTC based network )

● Video streaming● Create your own network protocol / topology● Use of DHT for network topology / routing can be →

used for signal-infrastructure or for replicated/distributed DBs

Use case – PeerCDNWebserver

Client1 Client1

Client1

Client1

Client1Client1

Client1

Client1Client1

PeerCDN.com acquired by yahoo

Collaborative browsing

● Mozilla● collaborative browsing● https://togetherjs.com

Use case – see what I see!

● Screen sharing (VP9 text rendering)● Service● Helpdesk● http://www.bemyeyes.org● Google glass!

Use case – double robotics

http://www.doublerobotics.com/

Use cases – Cardboard

● VR for your Android phone● https://cardboard.withgoogle.com/● Add WebRTC to see what your robot sees in 3D

Use case – FirefoxOS loop

Use case – rapt.fm

● Live rap battles

Use case – Amazon mayday

● Amazon Kindle Fire● Connect to a Tech Advisor with the Mayday

Button● 24/7/365● “Amazon's Tech Advisors don't see you, just

your screen.”

Resumé

● Bedre innsikt i tekniske detaljer om WebRTC og Lync i denne sammenheng

● WebRTC er bare en teknologi – ikke en løsning● Det er ikke bare Videokonferanse● Hva Uninett Sanntid driver med● Sensibilisere om problematikken om

federering / globalere fokus

top related