SlideShare a Scribd company logo
1 of 53
Open APIs for Open Minds
The Stream Oriented Generic Enabler – SO GE
Developing rich multimedia applications with FI-WARE.
IVAN GRACIA
igracia@kurento.org
Human communications
Why technology?
2G
3G
4G
5G
Audio
Video
HD Video
HD 3D Video
Multimedia communication technologies
Our vision: technology for more than transport
From this …
… to this
Knowledge
Our ingredients for cooking the Stream Oriented GE
WebRTC
WebRTC
Developing
the client side
Developing the
infrastructure
side
Before WebRTC After WebRTC Next natural step…
Begin End Begin End
Begin End
• Unified APIs
• Standards
• FOSS
• Multiplatform
• Unified APIs
• Standards
• FOSS
• Multiplatform
• Unified APIs
• Standards
• FOSS
• Multiplatform
WebRTC as a disruptive technology
Numberofusers
General purpose
RTC multimedia Services
Specific purpose RTC
multimedia services
Commodity, no business
opportunities here
Who cares about the immense minority?
Many business opportunities here
Disruption direction
of WebRTC
WebRTC is a WWW technology
10
Peer-to-Peer Application (without media infrastructure)
WebRTC data stream
Application with media infrastructure
Media infrastructure
WebRTC and WebRTC infrastructures
WebRTC media servers
Transcoding media server
VP8 H.264
MCU/SFU media server
Recording media server
Kurento
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
Transcoding
MCU/SFU
Recording
Current media servers
Media is
here
Rich
Media
goes
there
Future media servers
Transcoding,
MCU/SFU,
Recording,
Enrich,
Augment,
Analyze,
Combine,
Transform,
Adapt, …
Context
Content
Commands
Media
Events
Key concepts: media elements and pipelines
13
 Media Element
• Provides a specific media functionality
› Send/receive media. These are the Endpoints
› Process media
› Transform media
• Ready to be used
• New media elements can be added
 Media pipeline
• Chain of media elements implementing the
desired media logic
• The Media Server provides the capability of
creating media pipelines by joining media
elements of the toolbox
Media Element
Sink
SRC
Media Pipeline
1414
1515
Kurento applications as a Lego game
Protocols
& Codecs
Computer
Vision
Augmented
Reality
Mul sensory
Mul media
Media
Repository
IPTV
Integra on
Group
Communica ons
Sink%
H pEndpoint
Sink%SRC%
RtpEndpoint
SRC$
DataChannelEndpoint
Sink%SRC%
WebRtcEndpoint
Sink%
SRC%
BarCodeReader
Sink%
SRC%
PointerTracker
Sink%
SRC%
FaceDetector
Sink%
SRC%
FaceOverlay
Sink%
SRC%
ChromaFilter
Sink%
SRC%
HeartRateBlender
Sink%
RecorderEndpoint
SRC$
PlayerEndpoint
Sink%
CdnUpload
Sink%
IPTVConnector Mixer
SinkSRC
Sink
SRC
Sink
SRCSink
Sink
Application 2
Sink
SRC
Sink
SRCSink
SinkSRC
Sink
Application 3
SinkSRC
SRCSink
SRC Sink
SinkSRC
Application 1
Toolbox of media elements
Creating applications with Kurento
18
Campus Party Brazil - 2014
18
1919
Campus Party Brazil - 2014
SinkSRC
Sink
WebRtcEndpoint
Sink
SRC
Sink
SRC
MirrorFilter PointerDetectorFilter
Sink
SRC
ChromaFilter
Sink
SRC
FaceOverlayFilter
Media Server
2020
Ready?
What you should learn first
 WebRTC basics
• http://www.html5rocks.com/en/tutorials/webrtc/basics/
 Signaling basics (STUN/TURN)
• http://www.html5rocks.com/en/tutorials/webrtc/infrastructure/
Where to start
 Kurento official documentation
• http://www.kurento.org/documentation
 Kurento FIWARE documentation
• Catalogue site
› http://catalogue.fiware.org/enablers/stream-oriented-kurento
• Documentation
› http://catalogue.fiware.org/enablers/stream-oriented-kurento/documentation
Installing Kurento Media Server
 Requirements
• Ubuntu 14.04 box (sudo)
• Internet connectivity
 Install
•sudo add-apt-repository ppa:kurento/kurento
•sudo apt-get update
•sudo apt-get install kurento-media-server
 Launch
•sudo service kurento-media-server start
Kurento “Hello World”
Kurento “Hello World”
 Tutorial
• http://www.kurento.org/docs/current/tutorials/js/tutorial-1-helloworld.html
 Code
• https://github.com/Kurento/kurento-tutorial-js/tree/release-5.1/kurento-hello-world
Understanding this example
PeerConnection API
getUserMedia API
kurento-utils kurento-client-js
Application Code
WebSocket API
Kurento Media Server
Browser
SignalingMedia
Understanding this example
You don’t catch the point?
Kurento Hello World with Application Server
PeerConnection API
getUserMedia API
kurento-utils
Application Code
Comm API
Kurento Media Server
Browser
Signaling
Media
Application
Server
Kurento-client-js
Application
Code
Signaling
Kurento Hello World with application server
 Java EE Application Server
• http://www.kurento.org/docs/current/tutorials/java/tutorial-1-helloworld.html
 Node.js Application Server
• http://www.kurento.org/docs/current/tutorials/node/tutorial-1-helloworld.html
Understanding this
example
Why an application server
 Security
• KMS does not provide AAA in its control interface
• In WWW applications, DD.BB. access is directly exposed to the browser?
 Call signaling
• How several browsers can communicate?
Recording and playing
SinkSRC
Sink
SinkSRC
SRC
Recording and playing: source code
 Get code here
• https://github.com/Kurento/kurento-tutorial-js/tree/release-5.1/kurento-hello-world-recorder-
generator
Understanding this example
 Generators
• Black magic for avoiding callback hell
• Program asynchronously with synchronous philosophy
 Warning
• “Enable Experimental JavaScript” flag
Advanced topics: Working with calls
P2P WebRTC call
Group calls
Mesh topology Start topology
WebRTC one-to-many example
Media Pipeline
WebRTC
streaming
SinkSRC
WebRTC
streaming
SRCSinkSRCSink
WebRTC
streaming
WebRtcEndpoint 1
WebRtcEndpoint 3
WebRtcEndpoint 2
SRCSink
WebRTC
streaming
WebRtcEndpoint 4
User 1 User 2
User 3
User 4
WebRTC one to many example: code
 Java EE
• http://www.kurento.org/docs/current/tutorials/java/tutorial-3-one2many.html
 Node.js
• http://www.kurento.org/docs/current/tutorials/node/tutorial-3-one2many.html
Understanding
this example
Back-to-back full-duplex calls
Understanding
this example
Enriching full duplex calls
Back-to-back full-duplex calls: source code
 Java EE
• http://www.kurento.org/docs/current/tutorials/java/tutorial-4-one2one.html
• https://github.com/Kurento/kurento-tutorial-java/tree/release-5.1/kurento-one2one-call-advanced
 Node.js
• http://www.kurento.org/docs/current/tutorials/node/tutorial-4-one2one.html
Advanced topics: working with filters
From this …
… to this
Knowledge
Other filters: Augmented reality
Sink
SRC
SinkSRC
Other filters: Motion detector
Other filters: CrowdDetector
CrowdEvents
SRC
Sink
SRC
CrowdDetector
RtspPlayer
SinkSRC
Create your own filter: Kurento modules
Create a custom module
 Two flavors
• OpenCV module
• GStreamer module
 Instructions
• http://www.kurento.org/docs/current/mastering/develop_kurento_modules.html
 http://fi-ppp.eu
 http://fi-ware.eu
 Follow @Fiware on Twitter !
Thanks !
52

More Related Content

What's hot

Developing rich multimedia applications with Kurento: a tutorial for Java Dev...
Developing rich multimedia applications with Kurento: a tutorial for Java Dev...Developing rich multimedia applications with Kurento: a tutorial for Java Dev...
Developing rich multimedia applications with Kurento: a tutorial for Java Dev...Luis Lopez
 
kurento-nubomedia-first-steps-v1
kurento-nubomedia-first-steps-v1kurento-nubomedia-first-steps-v1
kurento-nubomedia-first-steps-v1Luis Lopez
 
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
 
WebRTC business models beyond calls
WebRTC business models beyond callsWebRTC business models beyond calls
WebRTC business models beyond callsLuis Lopez
 
Nubomedia IETF96 hackthon - Kurento
Nubomedia IETF96 hackthon - KurentoNubomedia IETF96 hackthon - Kurento
Nubomedia IETF96 hackthon - KurentoIvan Gracia
 
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...Luis Lopez
 
Janus RTP forwarders @ FOSDEM 2020
Janus RTP forwarders @ FOSDEM 2020Janus RTP forwarders @ FOSDEM 2020
Janus RTP forwarders @ FOSDEM 2020Lorenzo Miniero
 
Kurento v6 Development Guide
Kurento v6 Development GuideKurento v6 Development Guide
Kurento v6 Development GuideBoni García
 
WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021Lorenzo Miniero
 
Introduction To Webrtc
Introduction To WebrtcIntroduction To Webrtc
Introduction To WebrtcKnoldus Inc.
 
WbeRTC in IOT presented in KrankyGeek
WbeRTC in IOT presented in KrankyGeekWbeRTC in IOT presented in KrankyGeek
WbeRTC in IOT presented in KrankyGeekALTANAI BISHT
 
How ORTC adds Power to WebRTC - London April 1, 2014
How ORTC adds Power to WebRTC - London April 1, 2014 How ORTC adds Power to WebRTC - London April 1, 2014
How ORTC adds Power to WebRTC - London April 1, 2014 Hookflash
 
Reaching the multimedia web from embedded platforms with WPEWebkit
Reaching the multimedia web from embedded platforms with WPEWebkitReaching the multimedia web from embedded platforms with WPEWebkit
Reaching the multimedia web from embedded platforms with WPEWebkitIgalia
 
Introduction to WebRTC
Introduction to WebRTCIntroduction to WebRTC
Introduction to WebRTCArt Matsak
 
WEBRTC_SEMINAR_FOR_TEAM_by_daebalprime
WEBRTC_SEMINAR_FOR_TEAM_by_daebalprimeWEBRTC_SEMINAR_FOR_TEAM_by_daebalprime
WEBRTC_SEMINAR_FOR_TEAM_by_daebalprimeDaeyeon Kim
 
FOSDEM2018 Janus Lua plugin presentation
FOSDEM2018 Janus Lua plugin presentationFOSDEM2018 Janus Lua plugin presentation
FOSDEM2018 Janus Lua plugin presentationLorenzo Miniero
 
WebRTC: A front-end perspective
WebRTC: A front-end perspectiveWebRTC: A front-end perspective
WebRTC: A front-end perspectiveshwetank
 
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 StrategyJose de Castro
 

What's hot (20)

Developing rich multimedia applications with Kurento: a tutorial for Java Dev...
Developing rich multimedia applications with Kurento: a tutorial for Java Dev...Developing rich multimedia applications with Kurento: a tutorial for Java Dev...
Developing rich multimedia applications with Kurento: a tutorial for Java Dev...
 
kurento-nubomedia-first-steps-v1
kurento-nubomedia-first-steps-v1kurento-nubomedia-first-steps-v1
kurento-nubomedia-first-steps-v1
 
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...
 
WebRTC business models beyond calls
WebRTC business models beyond callsWebRTC business models beyond calls
WebRTC business models beyond calls
 
Nubomedia IETF96 hackthon - Kurento
Nubomedia IETF96 hackthon - KurentoNubomedia IETF96 hackthon - Kurento
Nubomedia IETF96 hackthon - Kurento
 
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...
 
Janus RTP forwarders @ FOSDEM 2020
Janus RTP forwarders @ FOSDEM 2020Janus RTP forwarders @ FOSDEM 2020
Janus RTP forwarders @ FOSDEM 2020
 
Kurento v6 Development Guide
Kurento v6 Development GuideKurento v6 Development Guide
Kurento v6 Development Guide
 
WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021
 
Introduction To Webrtc
Introduction To WebrtcIntroduction To Webrtc
Introduction To Webrtc
 
WebRTC
WebRTCWebRTC
WebRTC
 
WbeRTC in IOT presented in KrankyGeek
WbeRTC in IOT presented in KrankyGeekWbeRTC in IOT presented in KrankyGeek
WbeRTC in IOT presented in KrankyGeek
 
How ORTC adds Power to WebRTC - London April 1, 2014
How ORTC adds Power to WebRTC - London April 1, 2014 How ORTC adds Power to WebRTC - London April 1, 2014
How ORTC adds Power to WebRTC - London April 1, 2014
 
Reaching the multimedia web from embedded platforms with WPEWebkit
Reaching the multimedia web from embedded platforms with WPEWebkitReaching the multimedia web from embedded platforms with WPEWebkit
Reaching the multimedia web from embedded platforms with WPEWebkit
 
Introduction to WebRTC
Introduction to WebRTCIntroduction to WebRTC
Introduction to WebRTC
 
Internet TV
Internet TVInternet TV
Internet TV
 
WEBRTC_SEMINAR_FOR_TEAM_by_daebalprime
WEBRTC_SEMINAR_FOR_TEAM_by_daebalprimeWEBRTC_SEMINAR_FOR_TEAM_by_daebalprime
WEBRTC_SEMINAR_FOR_TEAM_by_daebalprime
 
FOSDEM2018 Janus Lua plugin presentation
FOSDEM2018 Janus Lua plugin presentationFOSDEM2018 Janus Lua plugin presentation
FOSDEM2018 Janus Lua plugin presentation
 
WebRTC: A front-end perspective
WebRTC: A front-end perspectiveWebRTC: A front-end perspective
WebRTC: A front-end perspective
 
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
 

Similar to Kurento FIWARE

0150519-kurento.pdf
0150519-kurento.pdf0150519-kurento.pdf
0150519-kurento.pdfDejVoleti
 
Scaling WebRTC deployments with multicast @ IETF 110 MBONED
Scaling WebRTC deployments with multicast @ IETF 110 MBONEDScaling WebRTC deployments with multicast @ IETF 110 MBONED
Scaling WebRTC deployments with multicast @ IETF 110 MBONEDLorenzo Miniero
 
WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023Lorenzo Miniero
 
WebRTC Workshop - What is (and isn't WebRTC)
WebRTC Workshop - What is (and isn't WebRTC)WebRTC Workshop - What is (and isn't WebRTC)
WebRTC Workshop - What is (and isn't WebRTC)Oracle
 
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 PreconferenceTsahi Levent-levi
 
Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019Lorenzo Miniero
 
Janus/Asterisk @ Astricon 2017
Janus/Asterisk @ Astricon 2017Janus/Asterisk @ Astricon 2017
Janus/Asterisk @ Astricon 2017Lorenzo Miniero
 
Upperside Webinar - WebRTC Standards Update
Upperside Webinar - WebRTC Standards UpdateUpperside Webinar - WebRTC Standards Update
Upperside Webinar - WebRTC Standards UpdateUppersideConferences
 
Upperside WebRTC conference - WebRTC intro
Upperside WebRTC conference - WebRTC introUpperside WebRTC conference - WebRTC intro
Upperside WebRTC conference - WebRTC introVictor Pascual Ávila
 
WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...
WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...
WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...Amir Zmora
 
What's new in web standards?
What's new in web standards?What's new in web standards?
What's new in web standards?Daniel Appelquist
 
WebRTC Standards Update (October 2014)
WebRTC Standards Update (October 2014)WebRTC Standards Update (October 2014)
WebRTC Standards Update (October 2014)Victor Pascual Ávila
 
WebRTC standards update - November 2014
WebRTC standards update - November 2014WebRTC standards update - November 2014
WebRTC standards update - November 2014Victor Pascual Ávila
 
Workshop web rtc what is
Workshop web rtc what isWorkshop web rtc what is
Workshop web rtc what isDouglas Tait
 

Similar to Kurento FIWARE (20)

0150519-kurento.pdf
0150519-kurento.pdf0150519-kurento.pdf
0150519-kurento.pdf
 
Scaling WebRTC deployments with multicast @ IETF 110 MBONED
Scaling WebRTC deployments with multicast @ IETF 110 MBONEDScaling WebRTC deployments with multicast @ IETF 110 MBONED
Scaling WebRTC deployments with multicast @ IETF 110 MBONED
 
WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023
 
WebRTC standards update (Jul 2014)
WebRTC standards update (Jul 2014)WebRTC standards update (Jul 2014)
WebRTC standards update (Jul 2014)
 
WebRTC Workshop - What is (and isn't WebRTC)
WebRTC Workshop - What is (and isn't WebRTC)WebRTC Workshop - What is (and isn't WebRTC)
WebRTC Workshop - What is (and isn't WebRTC)
 
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
 
Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019Janus/SIP @ OpenSIPS 2019
Janus/SIP @ OpenSIPS 2019
 
Janus/Asterisk @ Astricon 2017
Janus/Asterisk @ Astricon 2017Janus/Asterisk @ Astricon 2017
Janus/Asterisk @ Astricon 2017
 
Upperside Webinar - WebRTC Standards Update
Upperside Webinar - WebRTC Standards UpdateUpperside Webinar - WebRTC Standards Update
Upperside Webinar - WebRTC Standards Update
 
WebRTC on Mobile
WebRTC on MobileWebRTC on Mobile
WebRTC on Mobile
 
Torino js
Torino jsTorino js
Torino js
 
WebRTC in the Real World
WebRTC in the Real WorldWebRTC in the Real World
WebRTC in the Real World
 
Workshop oracle
Workshop oracleWorkshop oracle
Workshop oracle
 
Upperside WebRTC conference - WebRTC intro
Upperside WebRTC conference - WebRTC introUpperside WebRTC conference - WebRTC intro
Upperside WebRTC conference - WebRTC intro
 
WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...
WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...
WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...
 
What's new in web standards?
What's new in web standards?What's new in web standards?
What's new in web standards?
 
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
 
Workshop web rtc what is
Workshop web rtc what isWorkshop web rtc what is
Workshop web rtc what is
 
Janus @ ClueCon 2019
Janus @ ClueCon 2019Janus @ ClueCon 2019
Janus @ ClueCon 2019
 

More from Ivan Gracia

Nubomedia IETF96 hackathon - The platform
Nubomedia IETF96 hackathon - The platformNubomedia IETF96 hackathon - The platform
Nubomedia IETF96 hackathon - The platformIvan Gracia
 
Nubomedia IETF96 Hackathon-challenge#2
Nubomedia IETF96 Hackathon-challenge#2Nubomedia IETF96 Hackathon-challenge#2
Nubomedia IETF96 Hackathon-challenge#2Ivan Gracia
 
Nubomedia IETF96 Hackathon-challenge#1
Nubomedia IETF96 Hackathon-challenge#1Nubomedia IETF96 Hackathon-challenge#1
Nubomedia IETF96 Hackathon-challenge#1Ivan Gracia
 
Kurento FIWARE Developers Week Exercises, Vienna
Kurento FIWARE Developers Week Exercises, ViennaKurento FIWARE Developers Week Exercises, Vienna
Kurento FIWARE Developers Week Exercises, ViennaIvan Gracia
 
Kurento - FI-WARE Bootcamp
Kurento - FI-WARE BootcampKurento - FI-WARE Bootcamp
Kurento - FI-WARE BootcampIvan Gracia
 

More from Ivan Gracia (6)

Nubomedia IETF96 hackathon - The platform
Nubomedia IETF96 hackathon - The platformNubomedia IETF96 hackathon - The platform
Nubomedia IETF96 hackathon - The platform
 
Nubomedia IETF96 Hackathon-challenge#2
Nubomedia IETF96 Hackathon-challenge#2Nubomedia IETF96 Hackathon-challenge#2
Nubomedia IETF96 Hackathon-challenge#2
 
Nubomedia IETF96 Hackathon-challenge#1
Nubomedia IETF96 Hackathon-challenge#1Nubomedia IETF96 Hackathon-challenge#1
Nubomedia IETF96 Hackathon-challenge#1
 
Kurento FIWARE Developers Week Exercises, Vienna
Kurento FIWARE Developers Week Exercises, ViennaKurento FIWARE Developers Week Exercises, Vienna
Kurento FIWARE Developers Week Exercises, Vienna
 
Kurento - FI-WARE Bootcamp
Kurento - FI-WARE BootcampKurento - FI-WARE Bootcamp
Kurento - FI-WARE Bootcamp
 
Kurento cpmx
Kurento cpmxKurento cpmx
Kurento cpmx
 

Recently uploaded

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 

Recently uploaded (20)

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 

Kurento FIWARE

  • 1. Open APIs for Open Minds The Stream Oriented Generic Enabler – SO GE Developing rich multimedia applications with FI-WARE. IVAN GRACIA igracia@kurento.org
  • 4. 2G 3G 4G 5G Audio Video HD Video HD 3D Video Multimedia communication technologies
  • 5. Our vision: technology for more than transport From this … … to this Knowledge
  • 6. Our ingredients for cooking the Stream Oriented GE
  • 8. WebRTC Developing the client side Developing the infrastructure side Before WebRTC After WebRTC Next natural step… Begin End Begin End Begin End • Unified APIs • Standards • FOSS • Multiplatform • Unified APIs • Standards • FOSS • Multiplatform • Unified APIs • Standards • FOSS • Multiplatform
  • 9. WebRTC as a disruptive technology Numberofusers General purpose RTC multimedia Services Specific purpose RTC multimedia services Commodity, no business opportunities here Who cares about the immense minority? Many business opportunities here Disruption direction of WebRTC
  • 10. WebRTC is a WWW technology
  • 11. 10 Peer-to-Peer Application (without media infrastructure) WebRTC data stream Application with media infrastructure Media infrastructure WebRTC and WebRTC infrastructures
  • 12. WebRTC media servers Transcoding media server VP8 H.264 MCU/SFU media server Recording media server
  • 13. Kurento 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 Transcoding MCU/SFU Recording Current media servers Media is here Rich Media goes there Future media servers Transcoding, MCU/SFU, Recording, Enrich, Augment, Analyze, Combine, Transform, Adapt, … Context Content Commands Media Events
  • 14. Key concepts: media elements and pipelines 13  Media Element • Provides a specific media functionality › Send/receive media. These are the Endpoints › Process media › Transform media • Ready to be used • New media elements can be added  Media pipeline • Chain of media elements implementing the desired media logic • The Media Server provides the capability of creating media pipelines by joining media elements of the toolbox Media Element Sink SRC Media Pipeline
  • 15. 1414
  • 16. 1515
  • 17. Kurento applications as a Lego game Protocols & Codecs Computer Vision Augmented Reality Mul sensory Mul media Media Repository IPTV Integra on Group Communica ons Sink% H pEndpoint Sink%SRC% RtpEndpoint SRC$ DataChannelEndpoint Sink%SRC% WebRtcEndpoint Sink% SRC% BarCodeReader Sink% SRC% PointerTracker Sink% SRC% FaceDetector Sink% SRC% FaceOverlay Sink% SRC% ChromaFilter Sink% SRC% HeartRateBlender Sink% RecorderEndpoint SRC$ PlayerEndpoint Sink% CdnUpload Sink% IPTVConnector Mixer SinkSRC Sink SRC Sink SRCSink Sink Application 2 Sink SRC Sink SRCSink SinkSRC Sink Application 3 SinkSRC SRCSink SRC Sink SinkSRC Application 1 Toolbox of media elements
  • 20. 1919 Campus Party Brazil - 2014 SinkSRC Sink WebRtcEndpoint Sink SRC Sink SRC MirrorFilter PointerDetectorFilter Sink SRC ChromaFilter Sink SRC FaceOverlayFilter Media Server
  • 21. 2020
  • 23. What you should learn first  WebRTC basics • http://www.html5rocks.com/en/tutorials/webrtc/basics/  Signaling basics (STUN/TURN) • http://www.html5rocks.com/en/tutorials/webrtc/infrastructure/
  • 24. Where to start  Kurento official documentation • http://www.kurento.org/documentation  Kurento FIWARE documentation • Catalogue site › http://catalogue.fiware.org/enablers/stream-oriented-kurento • Documentation › http://catalogue.fiware.org/enablers/stream-oriented-kurento/documentation
  • 25. Installing Kurento Media Server  Requirements • Ubuntu 14.04 box (sudo) • Internet connectivity  Install •sudo add-apt-repository ppa:kurento/kurento •sudo apt-get update •sudo apt-get install kurento-media-server  Launch •sudo service kurento-media-server start
  • 27. Kurento “Hello World”  Tutorial • http://www.kurento.org/docs/current/tutorials/js/tutorial-1-helloworld.html  Code • https://github.com/Kurento/kurento-tutorial-js/tree/release-5.1/kurento-hello-world
  • 28. Understanding this example PeerConnection API getUserMedia API kurento-utils kurento-client-js Application Code WebSocket API Kurento Media Server Browser SignalingMedia
  • 30. You don’t catch the point?
  • 31. Kurento Hello World with Application Server PeerConnection API getUserMedia API kurento-utils Application Code Comm API Kurento Media Server Browser Signaling Media Application Server Kurento-client-js Application Code Signaling
  • 32. Kurento Hello World with application server  Java EE Application Server • http://www.kurento.org/docs/current/tutorials/java/tutorial-1-helloworld.html  Node.js Application Server • http://www.kurento.org/docs/current/tutorials/node/tutorial-1-helloworld.html
  • 34. Why an application server  Security • KMS does not provide AAA in its control interface • In WWW applications, DD.BB. access is directly exposed to the browser?  Call signaling • How several browsers can communicate?
  • 36. Recording and playing: source code  Get code here • https://github.com/Kurento/kurento-tutorial-js/tree/release-5.1/kurento-hello-world-recorder- generator
  • 37. Understanding this example  Generators • Black magic for avoiding callback hell • Program asynchronously with synchronous philosophy  Warning • “Enable Experimental JavaScript” flag
  • 38. Advanced topics: Working with calls P2P WebRTC call
  • 39. Group calls Mesh topology Start topology
  • 40. WebRTC one-to-many example Media Pipeline WebRTC streaming SinkSRC WebRTC streaming SRCSinkSRCSink WebRTC streaming WebRtcEndpoint 1 WebRtcEndpoint 3 WebRtcEndpoint 2 SRCSink WebRTC streaming WebRtcEndpoint 4 User 1 User 2 User 3 User 4
  • 41. WebRTC one to many example: code  Java EE • http://www.kurento.org/docs/current/tutorials/java/tutorial-3-one2many.html  Node.js • http://www.kurento.org/docs/current/tutorials/node/tutorial-3-one2many.html
  • 46. Back-to-back full-duplex calls: source code  Java EE • http://www.kurento.org/docs/current/tutorials/java/tutorial-4-one2one.html • https://github.com/Kurento/kurento-tutorial-java/tree/release-5.1/kurento-one2one-call-advanced  Node.js • http://www.kurento.org/docs/current/tutorials/node/tutorial-4-one2one.html
  • 47. Advanced topics: working with filters From this … … to this Knowledge
  • 48. Other filters: Augmented reality Sink SRC SinkSRC
  • 51. Create your own filter: Kurento modules
  • 52. Create a custom module  Two flavors • OpenCV module • GStreamer module  Instructions • http://www.kurento.org/docs/current/mastering/develop_kurento_modules.html
  • 53.  http://fi-ppp.eu  http://fi-ware.eu  Follow @Fiware on Twitter ! Thanks ! 52

Editor's Notes

  1. With the advent of unlimited channels, unlimited applications, unlimited news, unlimited information and unlimited entertainment — why are we feeling more isolated? Has the technology of connecting human beings and ideas only begun to tap into fulfilling the most fundamental human needs? Even as we are living through a transitional period where we are now able to instantly “attach” to other people and ideas, why are we longing less for “instant messaging” and more for “meaningful messaging?”
  2. If you're not familiar with WebRTC, it's the technology which will cause the next drive towards mass adoption of voice, video and file collaboration. In essence, it will enable high quality video and audio in your web browser, which is one of the most deployed applications in the world. It has been drafted by W3C (World Wide Web Consortium) with protocol work done by IETF (Internet Engineering Task Force). WebRTC ultimately simplifies the incorporation of real-time communications into a web browser. The objective of WebRTC is to trigger a real-time session in your browser, without having to download anything, simply functioning as part of the normal operation of browser. Everything required to deliver a high quality experience at the endpoint is supported natively within a WebRTC-capable web browser.
  3. WebRTC defines several APIs together with a collection of communication processes and protocols. From a development perspective, core functions are encapsulated into three main JavaScript APIs: getUserMedia, RTCPeerConnection and RTCDataChannel. These APIs are incorporated into browsers that support WebRTC, hence a web developer who has JavaScript programming experience can bring an interactive video collaboration experience to the web. WebRTC allows a mesh-based technology to enable users to send and receive streams to and from each other.
  4. Although WebRTC isn't confined solely to web applications, embedding real-time communications directly into web browsers has been the focus for most of the industry. With WebRTC it becomes possible to embed real-time video into a range of vertical applications, including for business, medical and education purposes.