SlideShare une entreprise Scribd logo
1  sur  37
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

Contenu connexe

Tendances

Implementing a WebRTC endpoint in GStreamer: challenges, problems and perspec...
Implementing a WebRTC endpoint in GStreamer: challenges, problems and perspec...Implementing a WebRTC endpoint in GStreamer: challenges, problems and perspec...
Implementing a WebRTC endpoint in GStreamer: challenges, problems and perspec...
Luis Lopez
 
FOSDEM 2016 - Creating rich WebRTC Applications with Kurento
FOSDEM 2016 - Creating rich WebRTC Applications with KurentoFOSDEM 2016 - Creating rich WebRTC Applications with Kurento
FOSDEM 2016 - Creating rich WebRTC Applications with Kurento
Luis Lopez
 

Tendances (20)

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

En vedette

NUBOMEDIA: an elastic Platform as a Service (PaaS) cloud for interactive soci...
NUBOMEDIA: an elastic Platform as a Service (PaaS) cloud for interactive soci...NUBOMEDIA: an elastic Platform as a Service (PaaS) cloud for interactive soci...
NUBOMEDIA: an elastic Platform as a Service (PaaS) cloud for interactive soci...
Luis Lopez
 

En vedette (17)

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

Similaire à Recording and media manipulation of WebRTC streams

Similaire à Recording and media manipulation of WebRTC streams (20)

0150519-kurento.pdf
0150519-kurento.pdf0150519-kurento.pdf
0150519-kurento.pdf
 
Nubomedia IETF96 hackathon - The platform
Nubomedia IETF96 hackathon - The platformNubomedia IETF96 hackathon - The platform
Nubomedia IETF96 hackathon - The platform
 
WebRTC standards update (Jul 2014)
WebRTC standards update (Jul 2014)WebRTC standards update (Jul 2014)
WebRTC standards update (Jul 2014)
 
WebRTC for Telco: Informa's WebRTC Global Summit Preconference
WebRTC for Telco: Informa's WebRTC Global Summit PreconferenceWebRTC for Telco: Informa's WebRTC Global Summit Preconference
WebRTC for Telco: Informa's WebRTC Global Summit Preconference
 
WebRTC standards update (13 Nov 2013)
WebRTC standards update (13 Nov 2013)WebRTC standards update (13 Nov 2013)
WebRTC standards update (13 Nov 2013)
 
Upperside Webinar - WebRTC Standards Update
Upperside Webinar - WebRTC Standards UpdateUpperside Webinar - WebRTC Standards Update
Upperside Webinar - WebRTC Standards Update
 
Workshop oracle
Workshop oracleWorkshop oracle
Workshop oracle
 
Baby Steps: A WebRTC Tutorial
Baby Steps: A WebRTC TutorialBaby Steps: A WebRTC Tutorial
Baby Steps: A WebRTC Tutorial
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017
 
Architecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin SimeArchitecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin Sime
 
[workshop] The Revolutionary WebRTC
[workshop] The Revolutionary WebRTC[workshop] The Revolutionary WebRTC
[workshop] The Revolutionary WebRTC
 
The Enterprise wants WebRTC -- and it needs Middleware to get it! (IIT RTC Co...
The Enterprise wants WebRTC -- and it needs Middleware to get it! (IIT RTC Co...The Enterprise wants WebRTC -- and it needs Middleware to get it! (IIT RTC Co...
The Enterprise wants WebRTC -- and it needs Middleware to get it! (IIT RTC Co...
 
WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...
WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...
WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...
 
WebRTC Standards Update (October 2014)
WebRTC Standards Update (October 2014)WebRTC Standards Update (October 2014)
WebRTC Standards Update (October 2014)
 
WebRTC standards update - November 2014
WebRTC standards update - November 2014WebRTC standards update - November 2014
WebRTC standards update - November 2014
 
Architecting Low Latency Applications Alberto Gonzalez
Architecting Low Latency Applications Alberto GonzalezArchitecting Low Latency Applications Alberto Gonzalez
Architecting Low Latency Applications Alberto Gonzalez
 
Janus/Asterisk @ Astricon 2017
Janus/Asterisk @ Astricon 2017Janus/Asterisk @ Astricon 2017
Janus/Asterisk @ Astricon 2017
 
Upperside WebRTC conference - WebRTC intro
Upperside WebRTC conference - WebRTC introUpperside WebRTC conference - WebRTC intro
Upperside WebRTC conference - WebRTC intro
 
Kurento cpmx
Kurento cpmxKurento cpmx
Kurento cpmx
 
WebRTC on Mobile
WebRTC on MobileWebRTC on Mobile
WebRTC on Mobile
 

Dernier

Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Chandigarh Call girls 9053900678 Call girls in Chandigarh
 
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
Call Girls In Delhi Whatsup 9873940964 Enjoy Unlimited Pleasure
 
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 

Dernier (20)

(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
 
Trump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts SweatshirtTrump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts Sweatshirt
 
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
 
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
 
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
Dubai Call Girls Milky O525547819 Call Girls Dubai Soft Dating
Dubai Call Girls Milky O525547819 Call Girls Dubai Soft DatingDubai Call Girls Milky O525547819 Call Girls Dubai Soft Dating
Dubai Call Girls Milky O525547819 Call Girls Dubai Soft Dating
 
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
 
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort ServiceBusty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
 
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
 
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
 
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
 
Yerawada ] Independent Escorts in Pune - Book 8005736733 Call Girls Available...
Yerawada ] Independent Escorts in Pune - Book 8005736733 Call Girls Available...Yerawada ] Independent Escorts in Pune - Book 8005736733 Call Girls Available...
Yerawada ] Independent Escorts in Pune - Book 8005736733 Call Girls Available...
 
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
 
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
Russian Call Girls in %(+971524965298  )#  Call Girls in DubaiRussian Call Girls in %(+971524965298  )#  Call Girls in Dubai
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
 
Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
 
APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53
 
Katraj ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For S...
Katraj ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For S...Katraj ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For S...
Katraj ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For S...
 
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
 

Recording and media manipulation of WebRTC streams

  • 1.
  • 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