webrtc - smarter news, analysis & research communities
TRANSCRIPT
Video Chat Issues
Session: D1-5 Richard Tworek Principal WebRTC Strategies [email protected]
STRATEGIES
WebRTC
Session Presenters
• Gustavo Garcia Bernardo – Cloud Architect – TokBox
• Philippe Sultan – Title – R3Load
• Dr Alex Gouaillard – CTO – Temasys
• Michael Trank – Product Manager – Apex Voice
Gustavo García Cloud Architect [email protected]
• Best possible audio quality even on noisy environments or under low bandwidth
• Adaptation to heterogeneous devices and different network conditions
• Archiving solution for recording and playback • Integration of legacy endpoints and networks • Dynamic and flexible layouts • Large scale distribution for broadcast-like events
What are our customers demanding
• Improved audio processing and coding
• Advanced and more flexible congestion and bitrate control
• Simulcast and layered video coding capabilities
What else do we need to make it real
“The goal is connectivity, the tool is the Internet Protocol, and the intelligence is end to end rather than hidden in the network.” Architectural Principles of the Internet (RFC1958)
Flexibility
Quality
Cost
Philippe Sultan CTO R3Load [email protected]
Who we are • We’re a VoIP carrier that offers an API
• Get a SIP domain, phone numbers
• Write code on your server using our REST / XML API
• And write JavaScript for WebRTC applications that
– Allows connections to the PSTN (e.g. Real click-to-call)
– Use our MCU for multi conferencing
Why we chose an MCU? • We use opensource telecom softwares
– Asterisk, FreeSWITCH, Kamailio
• Asterisk and FreeSWITCH already have good audio MCU engines
embedded
– Audio mixing on the fly
– Bridging WebRTC and the PSTN is easy
• Lesser known but nice : Licode by Lynckia
• Okay, can’t we just use that to relay streams to/from WebRTC
endpoints?
Issues with video • You can’t mix video like you mix audio
• Need to distinguish between video sources
• At the network level
– By using multiple UDP sockets for RTP
– By using multiple SSRCs over a single UDP socket for RTP
– By decoding/encoding the video frames on the MCU
Options to relay the video • Multiple PeerConnections
• A single PeerConnection with multiple video MediaStreams?
• A single PeerConnection/MediaStream with multiple videoTracks?
• A single PeerConnection/MediaStream/videoTrack?
– Needs decoding/encoding on the MCU
– FFmpeg?
Need to adapt the code • Asterisk
– ICE, SRTP, SDP included
– A good candidate to be a PeerConnection
• Developed our own signalling channel (raw JSON actually)
– “chan_websocket.so”
• Push events to the WebRTC endpoints
– Join/leave events
– Text messages
– Who’s talking events
Extension of reference code: p2p, a.k.a Mesh - Limits of pure meshes
Alice Bob
Alice Bob
Chris
Alice Bob
Chris David
2
6
12
Alice
Bob
Chris
Ed Dave
20
n(n-1) O(n^2)
Extension of reference code: p2p, a.k.a Mesh - Limits of pure meshes
More streams = more bandwidth but …… the real bottleneck is the CPU today - VP8 hardware support
- Tegra2 / nexus, yes but no ….. - Tegra 3? - Others
- Bandwidth opt implementation (2,000k per stream really?) - Constraint - B=AS:<>
- Encoder/decoder params? Sorry, no API. Bottom line: 9 people on this macbook air. How many with GPU support? Mobile needs love, but also need GPU support (well, mostly GPU )
Business as usual MCU: multiplexing streams - wow, super bandwidth ! - Hum, what about latency? - What happen if peers are far away …. ?
Alice
Bob
Chris
Ed Dave
MCU
5
n O(n)
Business as usual MCU: multiplexing streams - Interface layout ??
- CP, VAS http://blog.radvision.com/videooverenterprise/2011/03/22/ask-the-expert-cp-vs-vas/
- Ok, that’s great but …. - Chat? I mean, if only to pass a link - Collaboration (white board?) - Services other than A/V?
- Usage beyond the boardroom model: BYOD device, work from home, ….
Smarter topology ? - bandwidth optimization WITH layout freedom
Alice
Bob
Chris
Ed Dave
Multi cast
12,5
(n^2)/2 O(n^2)
type Streams IN Streams
OUT
p2p N-1 N-1
MCU 1 1
Hybrid
N-1 1
Smarter topology ? - bandwidth optimization WITH layout freedom
0
100
200
300
400
500
600
2 7 12 17 22
type Streams IN Streams
OUT
p2p N-1 N-1
MCU 1 1
Hybrid
N-1 1
Broadcast / seminar - group chat, but one way, and latency not a problem - can webRTC relay today ….. ? - can we send a video file through a PC ?
Prof
Multi cast
Multi cast
Multi cast
Multi cast
Multi cast
S
S
S
S
S
S
S
S S
S
S
S
S S
S
S
Michael Trank Product Manager Apex Voice [email protected]
WebRTC changes traditional web traffic patterns
• Digital bandwith utilization has grown less assymetric with new multimedia services.
• WebRTC Video streams are bandwidth hogs.
– VGA: 600 – 1.2 Mbps
– 720p: 1.0 – 2.0 Mbps
• Good user experiences will require availability of high capacity subscriber lines.
Users will mostly access WebRTC services through “Fiber to the Node” (FTTN) Subscriber Lines
• Subscriber line “last mile” consists of twisted-pair phone wires or coax cable – Annoyingly bandlimited, especially in the upstream direction – Capacity diminishes with distance from node
• The “broadband” subscriber lines available to most users will be inadequate for good user experience with WebRTC multimedia services.
Are Telecoms and Triple-Play providers holding out on us? • Fiber-to-the-Home (FTTH) is proven, off-the-
shelf, cost-effective technology.
– Passive Optical Networks
– 155 Mbps upstream
• In the USA Service providers are slow to roll out FTTH.
– They prefer to stick with ADSL2+ over copper wires?
– Lobbying and court cases permit them to avoid a large investment.
– Longstanding public policy and regulatory problem that is holding back innovation.
• WebRTC developers and service providers need be aware of this challenge
Source: Fiber to the Home Council
See Ferguson, Charles, Anatomy of a Market Failure and Policy Dilemna, Brookings, 2004
Questions 1. What is the biggest issue with large party video?
2. Should WebRTC implementations use routing or MCUs?
3. When do MCUs make sense for WebRTC conferencing?
4. When does routing make sense?
5. Should developers have the own central facilities for media or
use available cloud offers?
6. How many peer to peer video sessions can you manage before
needing a central facility? What are the limiting factors?
7. How good are the Open Source MCUs out there?