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

What's hot (20)

PDF
Implementing a WebRTC endpoint in GStreamer: challenges, problems and perspec...
Luis Lopez
 
PDF
Developing applications with Kurento
Luis Lopez
 
PPTX
FOSDEM 2016 - Creating rich WebRTC Applications with Kurento
Luis Lopez
 
PPTX
Kurento: a media server architecture and API for WebRTC
Luis Lopez
 
PPTX
WebRTC business models beyond calls
Luis Lopez
 
PPTX
Kurento - FI-WARE Bootcamp
Ivan Gracia
 
PPTX
Nubomedia IETF96 hackthon - Kurento
Ivan Gracia
 
PPTX
Kurento FIWARE
Ivan Gracia
 
PPTX
Advanced Kurento Real Time Media Stream Processing
FIWARE
 
PPT
NUBOMEDIA: an Elastic PaaS Enabling the Convergence of Real-Time and Big Data...
Boni García
 
PPT
WebRTC/Kurento/NUBOMEDIA Hackathon at IETF’96
Boni García
 
PPTX
WebRTC
Vijay Dhama
 
PPTX
Introduction to WebRTC
Art Matsak
 
PDF
WebRTC - On Standards, Identity and Telco Strategy
Jose de Castro
 
PDF
WebRTC: A front-end perspective
shwetank
 
PDF
WebRTC Check-in (from WebRTC Boston 6)
Chad Hart
 
PDF
WebRTC on Mobile Devices: Challenges and Opportunities
Vladimir Beloborodov
 
PPTX
WebRTC overview
Rouyun Pan
 
PDF
Janus RTP forwarders @ FOSDEM 2020
Lorenzo Miniero
 
PDF
DevCon 5 (December 2013) - WebRTC & WebSockets
Crocodile WebRTC SDK and Cloud Signalling Network
 
Implementing a WebRTC endpoint in GStreamer: challenges, problems and perspec...
Luis Lopez
 
Developing applications with Kurento
Luis Lopez
 
FOSDEM 2016 - Creating rich WebRTC Applications with Kurento
Luis Lopez
 
Kurento: a media server architecture and API for WebRTC
Luis Lopez
 
WebRTC business models beyond calls
Luis Lopez
 
Kurento - FI-WARE Bootcamp
Ivan Gracia
 
Nubomedia IETF96 hackthon - Kurento
Ivan Gracia
 
Kurento FIWARE
Ivan Gracia
 
Advanced Kurento Real Time Media Stream Processing
FIWARE
 
NUBOMEDIA: an Elastic PaaS Enabling the Convergence of Real-Time and Big Data...
Boni García
 
WebRTC/Kurento/NUBOMEDIA Hackathon at IETF’96
Boni García
 
WebRTC
Vijay Dhama
 
Introduction to WebRTC
Art Matsak
 
WebRTC - On Standards, Identity and Telco Strategy
Jose de Castro
 
WebRTC: A front-end perspective
shwetank
 
WebRTC Check-in (from WebRTC Boston 6)
Chad Hart
 
WebRTC on Mobile Devices: Challenges and Opportunities
Vladimir Beloborodov
 
WebRTC overview
Rouyun Pan
 
Janus RTP forwarders @ FOSDEM 2020
Lorenzo Miniero
 
DevCon 5 (December 2013) - WebRTC & WebSockets
Crocodile WebRTC SDK and Cloud Signalling Network
 

Viewers also liked (17)

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

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

PDF
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE
 
PDF
FIWARE Tech Summit - Stream Processing with Kurento Media Server
FIWARE
 
PDF
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE
 
PDF
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE
 
PPTX
Nubomedia IETF96 hackathon - The platform
Ivan Gracia
 
PDF
Kurento cpmx
Ivan Gracia
 
PDF
What is WebRTC? What can I do with it?
Dan Jenkins
 
PPTX
WebRTC Seminar Report
srinivasa teja
 
PPTX
Real-time Communications at Internet Speed
Brian Pulito
 
PPTX
The Enterprise wants WebRTC -- and it needs Middleware to get it! (IIT RTC Co...
Brian Pulito
 
PDF
WebRTC Real time media P2P, Server, Infrastructure, and Platform
Ryan Jespersen
 
PDF
WebRTC And FreeSWITCH – What This Combination Means?
MoonTechnolabsPvtLtd
 
PDF
Workshop web rtc implementation details
Douglas Tait
 
PDF
Introduction to WebRTC
Arjun Varma
 
PPTX
DeveloperWeek 2015 - WebRTC - Where to start and how to scale
Dialogic Inc.
 
PPTX
How to Architect your WebRTC application, Alberto Gonzalez and Arin Sime, Web...
Alan Quayle
 
PDF
Pkewebrtc
Sandra Kuzkhan
 
PPTX
Real Time Communication with WebRTC
Suresh Balla
 
PPTX
Html web rtc
AbhishekMondal42
 
PDF
Janus conf'19: janus client side
Alexandre Gouaillard
 
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE
 
FIWARE Tech Summit - Stream Processing with Kurento Media Server
FIWARE
 
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE
 
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE
 
Nubomedia IETF96 hackathon - The platform
Ivan Gracia
 
Kurento cpmx
Ivan Gracia
 
What is WebRTC? What can I do with it?
Dan Jenkins
 
WebRTC Seminar Report
srinivasa teja
 
Real-time Communications at Internet Speed
Brian Pulito
 
The Enterprise wants WebRTC -- and it needs Middleware to get it! (IIT RTC Co...
Brian Pulito
 
WebRTC Real time media P2P, Server, Infrastructure, and Platform
Ryan Jespersen
 
WebRTC And FreeSWITCH – What This Combination Means?
MoonTechnolabsPvtLtd
 
Workshop web rtc implementation details
Douglas Tait
 
Introduction to WebRTC
Arjun Varma
 
DeveloperWeek 2015 - WebRTC - Where to start and how to scale
Dialogic Inc.
 
How to Architect your WebRTC application, Alberto Gonzalez and Arin Sime, Web...
Alan Quayle
 
Pkewebrtc
Sandra Kuzkhan
 
Real Time Communication with WebRTC
Suresh Balla
 
Html web rtc
AbhishekMondal42
 
Janus conf'19: janus client side
Alexandre Gouaillard
 
Ad

Recently uploaded (20)

PDF
Digital Security in 2025 with Adut Angelina
The ClarityDesk
 
PPTX
英国学位证(RCM毕业证书)皇家音乐学院毕业证书如何办理
Taqyea
 
PPTX
本科硕士学历佛罗里达大学毕业证(UF毕业证书)24小时在线办理
Taqyea
 
PDF
AI_MOD_1.pdf artificial intelligence notes
shreyarrce
 
PDF
Apple_Environmental_Progress_Report_2025.pdf
yiukwong
 
PPTX
Random Presentation By Fuhran Khalil uio
maniieiish
 
PPTX
ZARA-Case.pptx djdkkdjnddkdoodkdxjidjdnhdjjdjx
RonnelPineda2
 
PDF
123546568reb2024-Linux-remote-logging.pdf
lafinedelcinghiale
 
PDF
How to Fix Error Code 16 in Adobe Photoshop A Step-by-Step Guide.pdf
Becky Lean
 
PPTX
unit 2_2 copy right fdrgfdgfai and sm.pptx
nepmithibai2024
 
PPTX
Cost_of_Quality_Presentation_Software_Engineering.pptx
farispalayi
 
PDF
Web Hosting for Shopify WooCommerce etc.
Harry_Phoneix Harry_Phoneix
 
PPTX
一比一原版(SUNY-Albany毕业证)纽约州立大学奥尔巴尼分校毕业证如何办理
Taqyea
 
PPT
introduction to networking with basics coverage
RamananMuthukrishnan
 
PDF
The-Hidden-Dangers-of-Skipping-Penetration-Testing.pdf.pdf
naksh4thra
 
PPT
Computer Securityyyyyyyy - Chapter 2.ppt
SolomonSB
 
PPT
Computer Securityyyyyyyy - Chapter 1.ppt
SolomonSB
 
PPTX
ipv6 very very very very vvoverview.pptx
eyala75
 
PPTX
西班牙武康大学毕业证书{UCAMOfferUCAM成绩单水印}原版制作
Taqyea
 
PPTX
一比一原版(LaTech毕业证)路易斯安那理工大学毕业证如何办理
Taqyea
 
Digital Security in 2025 with Adut Angelina
The ClarityDesk
 
英国学位证(RCM毕业证书)皇家音乐学院毕业证书如何办理
Taqyea
 
本科硕士学历佛罗里达大学毕业证(UF毕业证书)24小时在线办理
Taqyea
 
AI_MOD_1.pdf artificial intelligence notes
shreyarrce
 
Apple_Environmental_Progress_Report_2025.pdf
yiukwong
 
Random Presentation By Fuhran Khalil uio
maniieiish
 
ZARA-Case.pptx djdkkdjnddkdoodkdxjidjdnhdjjdjx
RonnelPineda2
 
123546568reb2024-Linux-remote-logging.pdf
lafinedelcinghiale
 
How to Fix Error Code 16 in Adobe Photoshop A Step-by-Step Guide.pdf
Becky Lean
 
unit 2_2 copy right fdrgfdgfai and sm.pptx
nepmithibai2024
 
Cost_of_Quality_Presentation_Software_Engineering.pptx
farispalayi
 
Web Hosting for Shopify WooCommerce etc.
Harry_Phoneix Harry_Phoneix
 
一比一原版(SUNY-Albany毕业证)纽约州立大学奥尔巴尼分校毕业证如何办理
Taqyea
 
introduction to networking with basics coverage
RamananMuthukrishnan
 
The-Hidden-Dangers-of-Skipping-Penetration-Testing.pdf.pdf
naksh4thra
 
Computer Securityyyyyyyy - Chapter 2.ppt
SolomonSB
 
Computer Securityyyyyyyy - Chapter 1.ppt
SolomonSB
 
ipv6 very very very very vvoverview.pptx
eyala75
 
西班牙武康大学毕业证书{UCAMOfferUCAM成绩单水印}原版制作
Taqyea
 
一比一原版(LaTech毕业证)路易斯安那理工大学毕业证如何办理
Taqyea
 

Recording and media manipulation of WebRTC streams

  • 2. Developing WebRTC applications with advanced media processing Luis Lopez [email protected] 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 [email protected] www.kurento.org