SlideShare a Scribd company logo
Recording and media manipulation of WebRTC streams
Developing WebRTC applications with advanced 
media processing 
Luis Lopez 
lulop@kurento.org 
www.kurento.org
WebRTC infrastructures: at the heart of the 
long tail 
Peer-to-Peer WebRTC Application (without media infrastructure) 
WebRTC video stream 
WebRTC Application based on media infrastructure 
media infrastructure
WebRTC media servers: the simplest WebRTC 
infrastructure 
• Media server 
– Monolithic software 
– Based on shared memory 
– Scales well vertically 
– Can’t scale horizontally 
• Media server vendors 
– Software vendors 
– Hardware vendors
WebRTC media server vendors
Common functions of WebRTC media servers 
Transcoding media server 
VP8 H.264 
MCU/SFU media server 
Recording media server
Evolution of media servers: functionality 
What common WebRTC 
Media Servers do: 
• Transcoding 
• MCU 
• Recording 
What future Media 
Servers will do: 
• Flexible processing 
• Augmented reality 
• Blending 
• Mixing 
• Analyzing 
• Etc. 
Media is 
here 
Media goes 
there 
Current media servers 
Transcoding 
MCU/SFU 
Recording 
Media is 
here 
Rich Media 
goes there 
Future media servers 
Media 
Events 
Transcoding, 
MCU/SFU, 
Recording, 
Enrich, 
Augment, 
Analyze, 
Combine, 
Transform, 
Adapt, … 
Context 
Content 
Commands
Why is this important? 
Explicit augmentation 
with target information 
Implicit augmentation 
with external knowledge 
Why do you communicate? 
To see other’s face? 
WebRTC convergence with Telco 
Why don’t converge with Content?
Kurento Media Server: an open source 
software WebRTC media server 
Applications define the processing 
of streams getting through KMS 
Send 
Receive 
Analyze 
Augment 
Enrich 
Transform 
Transcode 
Record 
Process 
Replicate 
Media 
Source 
Media 
Sink 
KMS 
Java 
API 
JavaScript 
API 
Other 
languages
What does Kurento mean?
Kurento History 
2012 
•Kurento goes 
open source 
LGPL v2.1. 
Professional 
services 
provided by 
Naevatec 
(startup) 
June’13 
•1M€ of 
investment for 
providing 
multimedia 
capabilities to 
FI-WARE 
Dec’13 
•Kurento 
Featured at 
WebRTC Expo 
(Paris) 
Feb’14 
•3.3M€ of 
investment for 
making 
Kurento an 
elastic cloud 
platform 
(NUBOMEDIA) 
April’14 
•Kurento 
featured at IMS 
World 
Conference 
(Barcelone) 
July’14 
•Kurento 
featured at 
DevCon5 (New 
York) 
Sep’14 
•500K€ of 
investment for 
maintenance of 
Kurento FI-WARE 
APIs
Kurento Client API 
Sink	 SRC	 
Sink	 
SRC	 
SRC	 Sink	 
Sink	 
 
Media Element 
• Provides a specific media 
functionality 
› Send/receive media 
› Process media 
› Transform media 
• Exchange media through 
› Sources 
› Sinks 
 
Media pipeline 
• Chain of media elements 
implementing the desired media 
logic. 
• The Media API provides the 
capability of creating media 
pipelines by joining media 
elements of the toolbox 
Media Element 
Sink 
SRC
Creating applications: the Lego game 
H pEndpoint	 
WebRtcEndpoint	 
Protocols	 
&	Codecs	 
Application 2 
IPTVConnector	 Mixer	 
FaceDetector	 
PointerTracker	 
BarCodeReader	 
Computer		 
Vision	 
HeartRateBlender	 
ChromaFilter	 
FaceOverlay	 
Augmented		 
Reality	 
Mul sensory		 
Mul media	 
DataChannelEndpoint	 
PlayerEndpoint	 
RecorderEndpoint	 
Media		 
Repository	 
IPTV	 
Integra on	 
Group	 
Communica ons	 
Sink% 
Sink% SRC% 
RtpEndpoint	 
SRC$ 
Sink% SRC% 
Sink% 
SRC% 
Sink% 
Sink% 
SRC% 
SRC% 
Sink% 
SRC% 
Sink% 
Sink% 
SRC% 
SRC% 
Sink% 
Sink% 
SRC$ 
CdnUpload	 
Sink% 
Sink	 SRC	 
Sink	 
Sink	 
SRC	 
SRC	 Sink	 
Sink	 
Application 3 
Sink	 
SRC	 
Sink	 
Sink	 
SRC	 Sink	 
Sink	 SRC	 
Application 1 
Sink	 SRC	 
Sink	 SRC	 
Sink	 SRC	 
Sink	 SRC	 
Toolbox of media elements
Architecting a Kurento application
Ready?
Installing Kurento 
• The doc 
– http://www.kurento.org/docs/current/installation_guide.html 
• The video 
– https://www.youtube.com/watch?v=RGdDpyZAPus 
• In short 
sudo add-apt-repository ppa:kurento/kurento 
wget -O - http://ubuntu.kurento.org/kurento.gpg.key | sudo apt-key add - 
sudo apt-get update 
sudo apt-get install kurento-media-server
Get a Kurento cloud instance for free 
• FI-WARE (http://www.fi-ware.org) 
– Funded through European Commission research programmes 
– PaaS cloud infrastructure offering a bunch of capabilities and 
enablers for the “Future Internet” 
– You can get money developing WebRTC applications with 
Kurento and FI-WARE 
• http://www.fi-ware.org/accelerators/ 
• How to get a Kurento instance in FIWARE in 5 minutes 
– https://www.youtube.com/watch?v=lFM12pXeWu8
Kurento “Hello World”
Source & demo 
https://github.com/Kurento/kurento-tutorial-js/ 
tree/master/kurento-hello-world
Recording and playing 
Media Pipeline 
WebRTC 
Streaming 
Sink SRC 
Sink 
Media 
to 
file or 
URI 
Media Pipeline 
WebRTC 
Streaming 
Sink SRC 
Media 
from 
file or 
URI 
SRC 
WebRtcEndpoint 
WebRtcEndpoint 
RecorderEndpoint 
PlayerEndpoint
Source code 
kurentoClient.create("MediaPipeline", function(error, p) { 
if(error) return onError(error); 
pipeline = p; 
pipeline.create("WebRtcEndpoint", function(error, webRtc){ 
if(error) return onError(error); 
pipeline.create(”RecorderEndpoint”, function(error, recorder){ 
if(error) return onError(error); 
webRtc.connect(recorder, function(error){ 
if(error) return onError(error); 
webRtc.connect(webRtc, function(error){ 
if(error) return onError(error); 
webRtc.processOffer(sdpOffer, … 
if(error) return onError(error); 
webRtcPeer.processSdpAnswer(sdpAnswer); 
}); 
}); 
}); 
}); 
});
I don’t like callbacks 
From that code structure 
to this code structure
Second try … generators 
• https://github.com/Kurento/kurento-tutorial-js/ 
tree/master/kurento-hello-world-recorder-generator 
• Transactions very soon … 
– By end Q4’14
Advanced media processing
Source & demo 
• https://github.com/Kurento/kurento-tutorial-js/ 
tree/master/kurento-magic-mirror
Create your own filter: working with Kurento 
external modules 
WebRTC 
Streaming 
Sink SRC 
WebRtcEndpoint 
Sink 
ArMarkerDetector 
SRC
Source & demo 
• https://github.com/Kurento/kurento-tutorial-js/ 
tree/master/kurento-alvar
Putting it altogether: calls with recording and 
filtering
Source & demo: let’s switch to Java for fun 
• https://github.com/Kurento/kurento-tutorial-java/ 
tree/master/kurento-one2one-call-advanced
Bonus: going beyond the media server vision 
WebRTC Application based on media infrastructure 
WebRTC Cloud
WebRTC cloud infrastructures 
IaaS SaaS 
PaaS 
Provider 
- Computing resources 
Provider 
Developer 
- Development API 
- Installation 
- Administration 
Developer 
- Security 
- Application logic 
- Application logic 
Provider 
- Service 
Developer 
- Nothing to do
Multimedia PaaS: scalability types 
“Broadcasting 
Non-RTC” 
Number of concurrent sessions 
Number of users per session 
WebRTC PaaS Phone system 
TV 
Broadcasting 
CDNs 
Media Server 
based Services 
“RTC calls” 
“Media server 
RTC” 
“Beyond RTC calls”
The scalability problem in call clouds 
Call Call Call Call Call Call 
Call Call Call Call Call Call 
Call Call Call Call Call Call
The scalability problem beyond call clouds 
Media stream 
One to MANY
WebRTC services beyond the call model 
Users in call Monitoring users 
Users can dynamically 
change their role
Nubomedia: Kurento as an elastic media 
server 
Load%Balancer%Func. on% 
Applica. on%Server%Func. on% 
Broker%Func. on% 
Media%Server%Func. on% 
IaaS%Cloud%Manager% 
Cloud% 
Orchestrator%
Thank you 
Partners 
Luis Lopez 
lulop@kurento.org 
www.kurento.org

More Related Content

PPTX
Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time c...
PPTX
Developing rich multimedia applications with Kurento: a tutorial for Java Dev...
PPTX
Developing rich multimedia applications with Kurento: a tutorial for JavaScri...
PPTX
kurento-nubomedia-first-steps-v1
PPTX
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...
PPTX
Developing rich multimedia applications with FI-WARE.
PPTX
WebRTC infrastructures in the large (with experiences on real cloud deployments)
PPTX
The future of multimedia communications and services: Kurento and it's role
Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time c...
Developing rich multimedia applications with Kurento: a tutorial for Java Dev...
Developing rich multimedia applications with Kurento: a tutorial for JavaScri...
kurento-nubomedia-first-steps-v1
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...
Developing rich multimedia applications with FI-WARE.
WebRTC infrastructures in the large (with experiences on real cloud deployments)
The future of multimedia communications and services: Kurento and it's role

What's hot (20)

PDF
Implementing a WebRTC endpoint in GStreamer: challenges, problems and perspec...
PDF
Developing applications with Kurento
PPTX
FOSDEM 2016 - Creating rich WebRTC Applications with Kurento
PPTX
Kurento: a media server architecture and API for WebRTC
PPTX
WebRTC business models beyond calls
PPTX
Kurento - FI-WARE Bootcamp
PPTX
Nubomedia IETF96 hackthon - Kurento
PPTX
Kurento FIWARE
PPTX
Advanced Kurento Real Time Media Stream Processing
PPT
NUBOMEDIA: an Elastic PaaS Enabling the Convergence of Real-Time and Big Data...
PPT
WebRTC/Kurento/NUBOMEDIA Hackathon at IETF’96
PPTX
WebRTC
PPTX
Introduction to WebRTC
PDF
WebRTC - On Standards, Identity and Telco Strategy
PDF
WebRTC: A front-end perspective
PDF
WebRTC Check-in (from WebRTC Boston 6)
PDF
WebRTC on Mobile Devices: Challenges and Opportunities
PPTX
WebRTC overview
PDF
Janus RTP forwarders @ FOSDEM 2020
PDF
DevCon 5 (December 2013) - WebRTC & WebSockets
Implementing a WebRTC endpoint in GStreamer: challenges, problems and perspec...
Developing applications with Kurento
FOSDEM 2016 - Creating rich WebRTC Applications with Kurento
Kurento: a media server architecture and API for WebRTC
WebRTC business models beyond calls
Kurento - FI-WARE Bootcamp
Nubomedia IETF96 hackthon - Kurento
Kurento FIWARE
Advanced Kurento Real Time Media Stream Processing
NUBOMEDIA: an Elastic PaaS Enabling the Convergence of Real-Time and Big Data...
WebRTC/Kurento/NUBOMEDIA Hackathon at IETF’96
WebRTC
Introduction to WebRTC
WebRTC - On Standards, Identity and Telco Strategy
WebRTC: A front-end perspective
WebRTC Check-in (from WebRTC Boston 6)
WebRTC on Mobile Devices: Challenges and Opportunities
WebRTC overview
Janus RTP forwarders @ FOSDEM 2020
DevCon 5 (December 2013) - WebRTC & WebSockets
Ad

Viewers also liked (17)

PPTX
NUBOMEDIA: an elastic Platform as a Service (PaaS) cloud for interactive soci...
PDF
Improving GStreamer performance on large pipelines: from profiling to optimiz...
PPTX
Open platform - Conferencia Esri 2016
PDF
Ember,js: Hipster Hamster Framework
PPTX
RESTful Web API
PDF
Personagraph introduction 11252014
PDF
IoT Architecture - are traditional architectures good enough or do we need n...
PDF
I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices
PDF
Giving MongoDB a Way to Play with the GIS Community
PDF
Mining public datasets using opensource tools: Zeppelin, Spark and Juju
PDF
SFUの話
PPTX
Nodeで操るKurentoメディアサーバー ( Kurento + WebRTC + Node.js )
PDF
Agile Software Architecture
PDF
Webcast: API-Centric Architecture for Building Context-Aware Apps
PDF
Transforming Software Architecture for the 21st Century (September 2009)
PDF
IoT Architecture - are traditional architectures good enough?
PDF
IoT Architecture - Are Traditional Architectures Good Enough or do we Need Ne...
NUBOMEDIA: an elastic Platform as a Service (PaaS) cloud for interactive soci...
Improving GStreamer performance on large pipelines: from profiling to optimiz...
Open platform - Conferencia Esri 2016
Ember,js: Hipster Hamster Framework
RESTful Web API
Personagraph introduction 11252014
IoT Architecture - are traditional architectures good enough or do we need n...
I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices
Giving MongoDB a Way to Play with the GIS Community
Mining public datasets using opensource tools: Zeppelin, Spark and Juju
SFUの話
Nodeで操るKurentoメディアサーバー ( Kurento + WebRTC + Node.js )
Agile Software Architecture
Webcast: API-Centric Architecture for Building Context-Aware Apps
Transforming Software Architecture for the 21st Century (September 2009)
IoT Architecture - are traditional architectures good enough?
IoT Architecture - Are Traditional Architectures Good Enough or do we Need Ne...
Ad

Similar to Recording and media manipulation of WebRTC streams (20)

PDF
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
PDF
FIWARE Tech Summit - Stream Processing with Kurento Media Server
PDF
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
PDF
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
PPTX
Nubomedia IETF96 hackathon - The platform
PDF
Kurento cpmx
PDF
What is WebRTC? What can I do with it?
PPTX
WebRTC Seminar Report
PPTX
Real-time Communications at Internet Speed
PPTX
The Enterprise wants WebRTC -- and it needs Middleware to get it! (IIT RTC Co...
PDF
WebRTC Real time media P2P, Server, Infrastructure, and Platform
PDF
WebRTC And FreeSWITCH – What This Combination Means?
PDF
Workshop web rtc implementation details
PDF
Introduction to WebRTC
PPTX
DeveloperWeek 2015 - WebRTC - Where to start and how to scale
PPTX
How to Architect your WebRTC application, Alberto Gonzalez and Arin Sime, Web...
PDF
Pkewebrtc
PPTX
Real Time Communication with WebRTC
PPTX
Html web rtc
PDF
Janus conf'19: janus client side
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Tech Summit - Stream Processing with Kurento Media Server
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
Nubomedia IETF96 hackathon - The platform
Kurento cpmx
What is WebRTC? What can I do with it?
WebRTC Seminar Report
Real-time Communications at Internet Speed
The Enterprise wants WebRTC -- and it needs Middleware to get it! (IIT RTC Co...
WebRTC Real time media P2P, Server, Infrastructure, and Platform
WebRTC And FreeSWITCH – What This Combination Means?
Workshop web rtc implementation details
Introduction to WebRTC
DeveloperWeek 2015 - WebRTC - Where to start and how to scale
How to Architect your WebRTC application, Alberto Gonzalez and Arin Sime, Web...
Pkewebrtc
Real Time Communication with WebRTC
Html web rtc
Janus conf'19: janus client side

Recently uploaded (20)

PPTX
introduction about ICD -10 & ICD-11 ppt.pptx
PPTX
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
PDF
Vigrab.top – Online Tool for Downloading and Converting Social Media Videos a...
PPTX
Internet___Basics___Styled_ presentation
PDF
Sims 4 Historia para lo sims 4 para jugar
PPT
Design_with_Watersergyerge45hrbgre4top (1).ppt
PPTX
presentation_pfe-universite-molay-seltan.pptx
DOCX
Unit-3 cyber security network security of internet system
PPTX
Digital Literacy And Online Safety on internet
PPTX
Introduction to Information and Communication Technology
PDF
FINAL CALL-6th International Conference on Networks & IOT (NeTIOT 2025)
PPTX
INTERNET------BASICS-------UPDATED PPT PRESENTATION
PPTX
PptxGenJS_Demo_Chart_20250317130215833.pptx
PPTX
innovation process that make everything different.pptx
PDF
Cloud-Scale Log Monitoring _ Datadog.pdf
PPTX
artificial intelligence overview of it and more
PPTX
international classification of diseases ICD-10 review PPT.pptx
PPTX
Funds Management Learning Material for Beg
PDF
RPKI Status Update, presented by Makito Lay at IDNOG 10
PPTX
522797556-Unit-2-Temperature-measurement-1-1.pptx
introduction about ICD -10 & ICD-11 ppt.pptx
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
Vigrab.top – Online Tool for Downloading and Converting Social Media Videos a...
Internet___Basics___Styled_ presentation
Sims 4 Historia para lo sims 4 para jugar
Design_with_Watersergyerge45hrbgre4top (1).ppt
presentation_pfe-universite-molay-seltan.pptx
Unit-3 cyber security network security of internet system
Digital Literacy And Online Safety on internet
Introduction to Information and Communication Technology
FINAL CALL-6th International Conference on Networks & IOT (NeTIOT 2025)
INTERNET------BASICS-------UPDATED PPT PRESENTATION
PptxGenJS_Demo_Chart_20250317130215833.pptx
innovation process that make everything different.pptx
Cloud-Scale Log Monitoring _ Datadog.pdf
artificial intelligence overview of it and more
international classification of diseases ICD-10 review PPT.pptx
Funds Management Learning Material for Beg
RPKI Status Update, presented by Makito Lay at IDNOG 10
522797556-Unit-2-Temperature-measurement-1-1.pptx

Recording and media manipulation of WebRTC streams

  • 2. Developing WebRTC applications with advanced media processing Luis Lopez lulop@kurento.org www.kurento.org
  • 3. WebRTC infrastructures: at the heart of the long tail Peer-to-Peer WebRTC Application (without media infrastructure) WebRTC video stream WebRTC Application based on media infrastructure media infrastructure
  • 4. WebRTC media servers: the simplest WebRTC infrastructure • Media server – Monolithic software – Based on shared memory – Scales well vertically – Can’t scale horizontally • Media server vendors – Software vendors – Hardware vendors
  • 6. Common functions of WebRTC media servers Transcoding media server VP8 H.264 MCU/SFU media server Recording media server
  • 7. Evolution of media servers: functionality What common WebRTC Media Servers do: • Transcoding • MCU • Recording What future Media Servers will do: • Flexible processing • Augmented reality • Blending • Mixing • Analyzing • Etc. Media is here Media goes there Current media servers Transcoding MCU/SFU Recording Media is here Rich Media goes there Future media servers Media Events Transcoding, MCU/SFU, Recording, Enrich, Augment, Analyze, Combine, Transform, Adapt, … Context Content Commands
  • 8. Why is this important? Explicit augmentation with target information Implicit augmentation with external knowledge Why do you communicate? To see other’s face? WebRTC convergence with Telco Why don’t converge with Content?
  • 9. Kurento Media Server: an open source software WebRTC media server Applications define the processing of streams getting through KMS Send Receive Analyze Augment Enrich Transform Transcode Record Process Replicate Media Source Media Sink KMS Java API JavaScript API Other languages
  • 11. Kurento History 2012 •Kurento goes open source LGPL v2.1. Professional services provided by Naevatec (startup) June’13 •1M€ of investment for providing multimedia capabilities to FI-WARE Dec’13 •Kurento Featured at WebRTC Expo (Paris) Feb’14 •3.3M€ of investment for making Kurento an elastic cloud platform (NUBOMEDIA) April’14 •Kurento featured at IMS World Conference (Barcelone) July’14 •Kurento featured at DevCon5 (New York) Sep’14 •500K€ of investment for maintenance of Kurento FI-WARE APIs
  • 12. Kurento Client API Sink SRC Sink SRC SRC Sink Sink  Media Element • Provides a specific media functionality › Send/receive media › Process media › Transform media • Exchange media through › Sources › Sinks  Media pipeline • Chain of media elements implementing the desired media logic. • The Media API provides the capability of creating media pipelines by joining media elements of the toolbox Media Element Sink SRC
  • 13. Creating applications: the Lego game H pEndpoint WebRtcEndpoint Protocols & Codecs Application 2 IPTVConnector Mixer FaceDetector PointerTracker BarCodeReader Computer Vision HeartRateBlender ChromaFilter FaceOverlay Augmented Reality Mul sensory Mul media DataChannelEndpoint PlayerEndpoint RecorderEndpoint Media Repository IPTV Integra on Group Communica ons Sink% Sink% SRC% RtpEndpoint SRC$ Sink% SRC% Sink% SRC% Sink% Sink% SRC% SRC% Sink% SRC% Sink% Sink% SRC% SRC% Sink% Sink% SRC$ CdnUpload Sink% Sink SRC Sink Sink SRC SRC Sink Sink Application 3 Sink SRC Sink Sink SRC Sink Sink SRC Application 1 Sink SRC Sink SRC Sink SRC Sink SRC Toolbox of media elements
  • 14. Architecting a Kurento application
  • 16. Installing Kurento • The doc – http://www.kurento.org/docs/current/installation_guide.html • The video – https://www.youtube.com/watch?v=RGdDpyZAPus • In short sudo add-apt-repository ppa:kurento/kurento wget -O - http://ubuntu.kurento.org/kurento.gpg.key | sudo apt-key add - sudo apt-get update sudo apt-get install kurento-media-server
  • 17. Get a Kurento cloud instance for free • FI-WARE (http://www.fi-ware.org) – Funded through European Commission research programmes – PaaS cloud infrastructure offering a bunch of capabilities and enablers for the “Future Internet” – You can get money developing WebRTC applications with Kurento and FI-WARE • http://www.fi-ware.org/accelerators/ • How to get a Kurento instance in FIWARE in 5 minutes – https://www.youtube.com/watch?v=lFM12pXeWu8
  • 19. Source & demo https://github.com/Kurento/kurento-tutorial-js/ tree/master/kurento-hello-world
  • 20. Recording and playing Media Pipeline WebRTC Streaming Sink SRC Sink Media to file or URI Media Pipeline WebRTC Streaming Sink SRC Media from file or URI SRC WebRtcEndpoint WebRtcEndpoint RecorderEndpoint PlayerEndpoint
  • 21. Source code kurentoClient.create("MediaPipeline", function(error, p) { if(error) return onError(error); pipeline = p; pipeline.create("WebRtcEndpoint", function(error, webRtc){ if(error) return onError(error); pipeline.create(”RecorderEndpoint”, function(error, recorder){ if(error) return onError(error); webRtc.connect(recorder, function(error){ if(error) return onError(error); webRtc.connect(webRtc, function(error){ if(error) return onError(error); webRtc.processOffer(sdpOffer, … if(error) return onError(error); webRtcPeer.processSdpAnswer(sdpAnswer); }); }); }); }); });
  • 22. I don’t like callbacks From that code structure to this code structure
  • 23. Second try … generators • https://github.com/Kurento/kurento-tutorial-js/ tree/master/kurento-hello-world-recorder-generator • Transactions very soon … – By end Q4’14
  • 25. Source & demo • https://github.com/Kurento/kurento-tutorial-js/ tree/master/kurento-magic-mirror
  • 26. Create your own filter: working with Kurento external modules WebRTC Streaming Sink SRC WebRtcEndpoint Sink ArMarkerDetector SRC
  • 27. Source & demo • https://github.com/Kurento/kurento-tutorial-js/ tree/master/kurento-alvar
  • 28. Putting it altogether: calls with recording and filtering
  • 29. Source & demo: let’s switch to Java for fun • https://github.com/Kurento/kurento-tutorial-java/ tree/master/kurento-one2one-call-advanced
  • 30. Bonus: going beyond the media server vision WebRTC Application based on media infrastructure WebRTC Cloud
  • 31. WebRTC cloud infrastructures IaaS SaaS PaaS Provider - Computing resources Provider Developer - Development API - Installation - Administration Developer - Security - Application logic - Application logic Provider - Service Developer - Nothing to do
  • 32. Multimedia PaaS: scalability types “Broadcasting Non-RTC” Number of concurrent sessions Number of users per session WebRTC PaaS Phone system TV Broadcasting CDNs Media Server based Services “RTC calls” “Media server RTC” “Beyond RTC calls”
  • 33. The scalability problem in call clouds Call Call Call Call Call Call Call Call Call Call Call Call Call Call Call Call Call Call
  • 34. The scalability problem beyond call clouds Media stream One to MANY
  • 35. WebRTC services beyond the call model Users in call Monitoring users Users can dynamically change their role
  • 36. Nubomedia: Kurento as an elastic media server Load%Balancer%Func. on% Applica. on%Server%Func. on% Broker%Func. on% Media%Server%Func. on% IaaS%Cloud%Manager% Cloud% Orchestrator%
  • 37. Thank you Partners Luis Lopez lulop@kurento.org www.kurento.org