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
Multi-PARTY! Video Conferencing Image source: http://thewrestlinglifeupdate.tumblr.com/
Easy & cheap approach to multi-party: Mesh Full Mesh Works for a few parties No server cost Lowest latency 6
Mesh does not scale for many video conferees Full Mesh Clients get overloaded Encode costs more than decode Limited uplink bandwidth Inconsistent performance across participants 7
Traditional Telephony Approach: MCU 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 8
Traditional MCU resource usage Worst-case process: 1. Each stream decoded at the MCU 2. MCU mixes each conferee 3. MCU encodes individual mix for each conferee Ingress streams 6 6 6 5 1 5 1 2 2 3 MCU 4 3 4 Egress streams 6 MCU decodes 6 MCU encodes 6 9
Efficient MCU resource usage Efficient process: 1. Each stream decoded at the MCU 2. MCU mixes each conferee 3. MCU shares same encoder for all conferees Ingress streams 6 6 5 1 1 MCU 4 2 3 Egress streams 6 MCU decodes 6 MCU encodes 1 10
System CPU Utilization Resource efficient MCU with encoder sharing Encoder sharing vs. multi-encode 100% 80% 60% 40% 20% 0% 1 2 3 4 5 6 7 8 9 10 11 15 17 20 Conferees Traditional MCU Dialogic Evolved MCU 30%-50% reduction in compute resources
Newer approach: 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 SFU 12
Newer approach: 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 SFU 13
New WebRTC approach: Simulcast 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 SFU High bitrate Low bitrate 14
A look at Google Hangouts with Simulcast http://webrtchacks.com/hangout-analysis-philipp-hancke/
Future Approach with VP9 SVC? 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 SFU Layered bitrates: High Medium Low 16
Multi-party video summary comparison http://networkfuel.dialogic.com/webrtc-whitepaper
Building a compelling UX with a MCU
Video UX: Traditional method MCU 1 2 3 4 3G Device Mixed stream 1 2 3 4
Video UX: Traditional method MCU 1 2 3 4 Active Talker 3G Device Media Server Chooses Layout Mixed stream 1 2 3
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 model That s why we love WebRTC
MCU model Save your device resources
Hybrid model with Intel CS WebRTC 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
Integration Steps 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 server Step 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 app Front 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
Contest Win FREE T-SHIRT! http://webrtc.facemeeting.com/
THANK YOU FOR YOUR ATTENTION! Tadas Strasevicius CTO, FACEmeeting tadas@facemeeting.com Facemeeting.com/tadas Jason Fedore Founder, FACEmeeting jason@facemeeting.com Facemeeting.com/jason.fedore