Media Services - Beyond the MCU
Richard Tworek
Workshop Leaders
• Chad Hart
– Dialogic
• Jason Fedore
• Tadas Straševičius
– FACEmeeting
D3-4 Beyond the MCU
Chad Hart
WebRTC Expo V
Image source: http://thewrestlinglifeupdate.tumblr.com/
Multi-PARTY! Video Conferencing
Easy & cheap approach to multi-party: Mesh
6
Full Mesh
Works for a few parties
No server cost
Lowest latency
Mesh does not scale for many video conferees
7
Full Mesh
Clients get overloadedEncode costs more than decode
Limited uplink bandwidth
Inconsistent performance across participants
Traditional Telephony Approach: MCU
8
Multipoint Control Unit (MCU)Good at manipulating all media
Transcoding
Transizing
Transrating
Interworking
Server-side CPU intensive
Client can request different conference mixes
Usually client friendly
Downsizing & mixing can reduce bandwidth
Fewer client streams to process
MCU
Traditional MCU resource usage
9
Worst-case process:1. Each stream decoded at
the MCU
2. MCU mixes each conferee
3. MCU encodes individual mix for each conferee
MCU
11 2
23
34
455
66
Ingress streams 6
Egress streams 6
MCU decodes 6
MCU encodes 6
Efficient MCU resource usage
10
Efficient process:1. Each stream decoded at
the MCU
2. MCU mixes each conferee
3. MCU shares same encoder for all conferees
MCU
12
3
45
6
Ingress streams 6
Egress streams 6
MCU decodes 6
MCU encodes 1
1
Resource efficient MCU with encoder sharing
• 30%-50% reduction in compute resources
0%
20%
40%
60%
80%
100%
1 2 3 4 5 6 7 8 9 10 11 15 17 20
Syst
em
CP
U U
tiliz
atio
n
Conferees
Encoder sharing vs. multi-encode
Traditional MCU Dialogic Evolved MCU
Newer approach: SFU
12
SFU
Selective Forwarding Unit (SFU) routing
Clients send one & receive many
Client can instruct SFU which streams to send
High throughput
Can be lots of downlink bandwidth
Low latency
Newer approach: SFU
13
SFU
Selective Forwarding Unit (SFU) routing
Clients send one & receive many
Client can instruct SFU which streams to send
High throughput
Can be lots of downlink bandwidth
Low latency
New WebRTC approach: Simulcast
14
SFU
High bitrate
Low bitrate
Selective Forwarding Unit (SFU) with Simulcast
Clients send multiple streams to SFU
one high-bit rate
one or more lower-bit
Client directs SFU which streams to receive
Reduces bandwidth vs. SFU
Simulcast in WebRTC coming
A look at Google Hangouts with Simulcast
http://webrtchacks.com/hangout-analysis-philipp-hancke/
Future Approach with VP9 – SVC?
16
SFU
MediumHigh LowLayered bitrates:
Selective Forwarding Unit (SFU) with SVC
Clients send layered stream to SFU
Layers have varying bitrates –time, size, quality
SFU directs who gets what
Coming to WebRTC eventually
Multi-party video summary comparison
http://networkfuel.dialogic.com/webrtc-whitepaper
Building a compelling UX with a MCU
Video UX: Traditional method
MCU1 2
3 4
Mixed stream 1 2
3 4
3G Device
Video UX: Traditional method
MCU1 2
3 4
Mixed stream 1 23
3G DeviceActive Talker
Media Server Chooses Layout
Integrating Intel CS for WebRTC
to your Web Application
Tadas Strasevicius, CTO FACEmeeting
Jason Fedore, Founder of FACEmeeting
Agenda
• What is FACEmeeting?
• What problems we solved with Intel CS?
Intel CS integration to your web app:
• Conference Server Installation
• Adding Intel CS SDK to your server side
• Adding Intel CS SDK to your client side
What is FACEmeeting?The next generation video platform
Why Intel CS for WebRTC?Stable multiparty video conferencing solution
WebRTC compatible
Signaling WebSockets
Scalability
Easy integration
Hardware acceleration in server side
Why you need MCU?It is not possible to make multi-party meetings
without enough device resources
High local CPU consumption
Bandwidth limit
High battery consumption
Best scenario for mobile devices
Peer to Peer modelThat’s why we love WebRTC
MCU modelSave your device resources
Hybrid model with Intel CSWebRTC is so great because of P2P
{Leave data channel open using P2P}
{Fallback to Intel MCU if needed}
L00ks good, h0w to st4rt?Step by step
+ Download and install Intel CS to your server
+ Using Client SDK integrate to your web application
IntegrationSteps
Installing conference server
Integrating Intel CS SDK to server side
Integrating Intel CS SDK to client side
1 2 3
Intel CS modes
Forwarding
reducing outgoing streams
Mix Mode
use only one incoming and one outgoing
stream
Install Intel CS to your serverStep by step
# Download from
https://software.intel.com/sites/landingpage/webrtc/
# Configure your server for Intel CS installation
# Install it on your server (Ubuntu 12.04 LTS* 64-bit recommended)
+ bin/init.sh –deps
# Enable hardware media acceleration
# Run MCU
+ bin/start-all.sh
# Configure MCU cluster (not necessary if you don’t need scalability)
Fast integration to your web appFront and back ends
# Server side integration with Intel CS server SDK
# Front end integration with Intel CS client SDK
Intel CS integration to your web app server-side
Step by step
Add Intel CS Server API file
Create Token
Create Room (or use existing)
Intel CS integration to your web app front-end
Step by step
1. Get local media
2. Get Token from server-side
3. Connect to room
4. Add event listeners
5. Subscribe mixed stream
6. Publish your local stream
MCU administration Awesome tool
Server resources monitoring
Services/Rooms management
Logs monitor
Users management
ContestWin FREE T-SHIRT!
http://webrtc.facemeeting.com/
THANK YOU
FOR YOUR ATTENTION!
Tadas StraseviciusCTO, FACEmeeting
Facemeeting.com/tadas
Jason FedoreFounder, FACEmeeting
Facemeeting.com/jason.fedore