SlideShare a Scribd company logo
Kurento: a media server architecture
and API
Live video technology

Luis Lopez
lulop@kurento.org
Who am I?
Associate Prof.
• Computer Science
• Multimedia protocols and systems

15 years of experience in multimedia applications
and protocols research
• Director of the FUN-LAB group

Open Source Software enthusiast and contributor

Coordinating the Kurento.org project

: a media server architecture and API – http://www.kurento.org

2
What’s Kurento?
Kurento
• Esperanto translation of “stream”

Esperanto philosophy
• Openness
• Simplicity
• Interoperability

Kurento
• Open source development framework for creating rich real-time
multimedia applications.

: a media server architecture and API – http://www.kurento.org

3
Kurento’s history
2004

March 2013

• Different research
efforts from private
and public
organizations in
the area of
multimedia

• Kurento receives
4M€ by European
Commission
through different
research initiatives

2012

December 2013

• The Kurento stack
goes fully open
source LGPL v2.1

• Kurento first
release available

: a media server architecture and API – http://www.kurento.org

4
Why WebRTC?
•

WebRTC is a movement
– … by Tsahi Levent-Levi

•

Are RTCs new?
– Skype, H.323, Facetime, WebEx

•

Why WebRTC is raising such expectations
– Millions of WWW developers

WWW dev. community

RTC/IMS dev. community

WebRTC
WebRTC = Multimedia RTC is just another feature of your WWW application
: a media server architecture and API – http://www.kurento.org

5
Why Kurento?
WWW RTC developer experience
Before WebRTC
Developing
the client side

After WebRTC

Begin

Next natural step…

End
•
•
•
•

Begin
•
•
•
•

Unified APIs
Standards
FOSS
Multiplatform

Developing the
infrastructure
side

: a media server architecture and API – http://www.kurento.org

End
Unified APIs
Standards
FOSS
Multiplatform

Begin

End
•
•
•
•

Unified APIs
Standards
FOSS
Multiplatform

6
Kurento media framework
components
•Low level media
capabilities

•Signaling and control
capabilities
•SIP, HTTP, RESFul, etc.
•Java
•Spring + JBoss +
Mobicents SIP Servlet

•Transport, encode/decode,
transcode, CV, mix, etc

•C/C++
•C++ Media Server +
Gstreamer plugins

Kurento
Media
Server

Kurento
Application
Server

Kurento
Android
SDK

Kurento
WWW SDK

•RTC library for Android
•Java and C
•Multicodec support

: a media server architecture and API – http://www.kurento.org

•HTML5 multimedia
development
•Video tag, WebRTC
•Javascript

7
Kurento Application Server: extending
the WWW development model
Signaling request:
I want this media

HTTP request:
I want this resource

Process WWW request
- DDBB access
- Transactions
- Security tools
- Etc.

HTTP response:
The resource

Intuition behind
traditional WWW
Applications
(Servlets, ASP, PHP,
Rails, etc.)

: a media server architecture and API – http://www.kurento.org

Process media request

- Media API
-

DDBB access
Transactions
Security tools
Etc.
Signaling response:
The media is here

Intuition behind
Kurento
development APIs:
Multimedia RTC is just
another feature of your
application
8
Media API: media elements and media
pipelines
 Media Element
• Provides a specific media functionality

•

Send/receive media
Process media
Transform media

The Media API provides the capability of
creating media pipelines by joining media
elements of the toolbox

The Media API provides a toolbox of
media elements ready to be used.
New media elements can be added

Media Element

PlayerEndPoint

Sink

SRC

: a media server architecture and API – http://www.kurento.org

WebRtcEndPoint

Filter
Sink

SRC

SRC

•

the desired media functionality.

Building block

Sink

•

›
›
›
›

 Media pipeline
• Chain of media elements implementing

9
Application
architecture

Other systems
and databases

Signaling and
WWW traffic

Media

Media

Signaling and
WWW traffic

HTTP
Servlet

SIP
Servlet

Web
service
s

DD.BB.

JMS

Java EE compatible container
Specific application logic
Media API
Decode
Video

Augmented
Reality

Video Playing
and Recording

Computer
Vision

Encode
Video

Kurento Media Server Infrastructure

: a media server architecture and API – http://www.kurento.org

10
Possible use cases: just integrate with
Java EE and GStreamer
• Verticals
– E-Health
• Kurento + HAPI (http://hl7api.sourceforge.net/)
– P2D video conferences as Electronic Health Records

– Smart cities
• Kurento + NGSI + OpenCV + Google Maps
– City crowds movement tracking
– Traffic density tracking

• Telco infrastructures
– Kurento + Mobicents
• IMS application server

• B2B & B2C WWW RTC
– Kurento + CRM APIs
• Enriched video conferencing with customer personal data

– Kurento + ESB
• Billing, video event processing, physical security, etc.

: a media server architecture and API – http://www.kurento.org

11
Application example: requirements

Kurento Media Server Infrastructure

: a media server architecture and API – http://www.kurento.org

12
Application example: code
@WebRtcMediaService(name = "MyWebRtcService", path = "/pathToService")
public class MyWebRtcService implements WebRtcMediaHandler {
public void onMediaRequest(WebRtcMediaRequest request) {
//I can authenticate using any of the Java EE available mechanisms
MediaPipelineFactory mpf = request.getMediaPipelineFactory();
MediaPipeline mp = mpf.createMediaPipeline();
//I could decide the type of processing connecting to a DDBB
JackVaderFilter filter = mp.newFilter().withType(JackVaderFilter.class).build();
RecorderEndpoint recorder = mp.newRecorderEndpoint().withUri("file:///myFile.webm");
filter.connect(recorder);
HttpEndpoint httpEndpoint = mp.newHttpEndpoint().build();
filter.connect(filter); //I could connect only audio or video separately
request.startMedia(filter, filter);
}

To file

Media
Sink

RecorderEndpoint

Media
Sink

Sink

Video
tag or
CDN

SRC

Media
Sink

HttpEndpoint
: a media server architecture and API – JackVaderFilter
http://www.kurento.org

To
Network

Media
Source

From
network
WebRtcEndpoint

13
Application example: result

: a media server architecture and API – http://www.kurento.org

14
Media element toolbox
Transport

Repository

Group communications

• WebRtcEndpoint
• RtpEndpoint
• HttpEndpoint

• PlayerEndPoint
• RecorderEndPoint

• MainMixer
• GridMixer
• RoundRobinMixer

Filters
• FaceRecognitionFilter (events)
• JackVaderFilter
• QR/Barcode detector
• PlateRecognitionFilter (events)
• ColorTrackingFilter (events)

And growing …

Available as part of

: a media server architecture and API – http://www.kurento.org

15
Media elements: WebRtcEndpoint
• Full implementation of the RTCWeb protocol stack
– SRTP
– ICE
– DTLS

• Allow sending and receiving WebRTC flows at the
media server infrastructure

Media
Source

WebRTC traffic

Media
Sink

WebRTC traffic

WebRtcEndpoint

: a media server architecture and API – http://www.kurento.org

16
Media elements: HttpEndpoint
• Media downloading compatible with the HTML5 video
tag
– WebM (Chrome, Firefox)
– MP4 (Chrome, Firefox, IE, Safari)

• Media uploading compatible with HTML file input tag
– Multipart support

Media
Sink

HTTP WebM/MP4
HttpEndpoint

: a media server architecture and API – http://www.kurento.org

17
Media elements: RtpEndpoint
• Full-duplex RTP multimedia exchange
–
–
–
–

H.264
H.263
VP8
Many different audio codecs supported

Media
Source

RTP traffic

Media
Sink

RTP traffic

RtpEndpoint

: a media server architecture and API – http://www.kurento.org

18
Media elements: UriEndpoints
• PayerEndpoint
– Play media from file or URL
• Support for most popular formats

• RecorderEndpoint
– Record media to file or URL
• WebM
• MP4
Media
Sink

RecorderEndpoint

Media
Source

PlayerEndpoint
: a media server architecture and API – http://www.kurento.org

19
Media elements: Mixers (in progress)
•

Make possible group communications
– ForwardingMixer
•
•
•

One-to-many replication of flows
A source can be assigned to any of the sinks
Multiple sources supported

– MainMixer
•
•
•

Mixes media
A source can be assigned to a combination of sinks
Multiple sources supported

Media
Source
Media
Sink
Media
Source
Media
Sink

Mixer

Media
Sink

: a media server architecture and API – http://www.kurento.org

Media
Source
20
Filters
Seamless integration into OpenCV
Face recognition
Augmented reality
Subtitle adding
Color manipulation
QR detection
People counter
Plate recognition
Etc.

Filter
SRC

–
–
–
–
–
–
–
–

Sink

•

: a media server architecture and API – http://www.kurento.org

21
Filter with events
• Filters can provide events to the application
– Events are generated at the media server
– Events can be propagated to the client app

• Code example:
MediaPipeline mp = mpf.create();
PlayerEndPoint playerEndPoint = mp.newPlayerEndPoint(
"https://ci.kurento.com/video/barcodes.webm").build();
ZBarFilter filter = mp.newZBarFilter().build();
playerEndPoint.connect(filter);

Events

SRC

Media
Source

Sink

filter.addCodeFoundDataListener(new MediaEventListener<CodeFoundEvent>() {
@Override
public void onEvent(CodeFoundEvent event) {
session.publishEvent(new ContentEvent(event.getType(),
event.getValue()));
...

PlayerEndpoint
ZBarFilter
: a media server architecture and API – http://www.kurento.org

22
The magic of pipelines: Transparent
media adaptation
• Agnostic media adaptor
– Acts every time a source is connected to a sink
– Adapts media formats as required by the involved
media elements
– 100% transparent for the application developer
An agnostic media adaptor
is “hidden” behind every
connection making
compatible element
formats transparently

VP8

H.264

: a media server architecture and API – http://www.kurento.org

SRC

Media Element
Sink

SRC

Sink

Media Element

23
Complex examples: Heterogeneous
group communications
Media
Source

Media
Sink

Media
Sink

RecorderEndpoint

WebRtcEndpoint
Media
Source

Mixer

Media
Sink

WebRtcEndpoint
Media
Source

SRC

Media
Sink

Sink

Filter

RtpEndpoint
: a media server architecture and API – http://www.kurento.org

24
Complex examples: WebRTC to HTTP
Media
Source

Media
Sink

Media
Sink

RecorderEndpoint

Mixer

WebRtcEndpoint
Media
Sink

HttpEndpoint

Mixer

Media
Sink

HttpEndpoint

Media
Sink

HttpEndpoint
: a media server architecture and API – http://www.kurento.org
Complex examples: WebRTC Playing
Media
Source

Media
Sink

Media
Sink

RecorderEndpoint

Mixer

WebRtcEndpoint
Media
Sink

Filter

HttpEndpoint

Sink

SRC

Media
Source

PlayerEndpoint
: a media server architecture and API – http://www.kurento.org

26
Kurento’s Roadmap
Q1 2014
• Installer and
documentation
• Group communications
• Super scalable media
repository

Q4 2014
• Kurento cloud
infrastructure
• Hardware acceleration

Q2 2014

2015

• WebRTC support on
Android SDK
• Kurento iOS SDK
• Javascript Media API

• Elastric scalable Kurento
PaaS platform
• SDN Kurento QoS cloud
connectivity manager
• IMS/Telco infrastructure
integration
• 3D/Kinect multimedia
support

: a media server architecture and API – http://www.kurento.org

27
Upcoming opportunities for
developers
• FI-WARE is the platform of the FI-PPP initiative
– European Commission FP7
– Kurento is providing multimedia capabilities to FI-WARE

• FI-WARE is giving 800K€ in prices to developers
– You can opt to them developing on top of Kurento
– http://www.fi-ware.eu/challenges/

• FI-PPP is providing 100M€ in funding to SMEs and entrepreneurs
– http://www.fi-ppp.eu/how-to-participate/

: a media server architecture and API – http://www.kurento.org

28
Collaborations welcome
http://www.github.com/kurento

Thank you very much for your attention
Complains, suggestions and comments can be sent to:
Luis López
lulop@kurento.org

: a media server architecture and API – http://www.kurento.org

29

More Related Content

What's hot

우아한 모노리스
우아한 모노리스우아한 모노리스
우아한 모노리스
Arawn Park
 
HTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないときHTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないとき
Kazuho Oku
 
OWASP AppSecEU 2018 – Attacking "Modern" Web Technologies
OWASP AppSecEU 2018 – Attacking "Modern" Web TechnologiesOWASP AppSecEU 2018 – Attacking "Modern" Web Technologies
OWASP AppSecEU 2018 – Attacking "Modern" Web Technologies
Frans Rosén
 
WebRTC Real time media P2P, Server, Infrastructure, and Platform
WebRTC Real time media P2P, Server, Infrastructure, and PlatformWebRTC Real time media P2P, Server, Infrastructure, and Platform
WebRTC Real time media P2P, Server, Infrastructure, and Platform
Ryan Jespersen
 
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 overview
WebRTC overviewWebRTC overview
WebRTC overview
Rouyun Pan
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Lucas Jellema
 
Alfresco DevCon 2019 - Alfresco Identity Services in Action
Alfresco DevCon 2019 - Alfresco Identity Services in ActionAlfresco DevCon 2019 - Alfresco Identity Services in Action
Alfresco DevCon 2019 - Alfresco Identity Services in Action
Francesco Corti
 
Comunicação em tempo real com WebRTC e PHP
Comunicação em tempo real com WebRTC e PHPComunicação em tempo real com WebRTC e PHP
Comunicação em tempo real com WebRTC e PHP
Michael Douglas
 
Janus + Audio @ Open Source World
Janus + Audio @ Open Source WorldJanus + Audio @ Open Source World
Janus + Audio @ Open Source World
Lorenzo Miniero
 
Monitoring with Prometheus
Monitoring with PrometheusMonitoring with Prometheus
Monitoring with Prometheus
Richard Langlois P. Eng.
 
Dev.bg DevOps March 2024 Monitoring & Logging
Dev.bg DevOps March 2024 Monitoring & LoggingDev.bg DevOps March 2024 Monitoring & Logging
Dev.bg DevOps March 2024 Monitoring & Logging
Marian Marinov
 
Scaling WebRTC applications with Janus
Scaling WebRTC applications with JanusScaling WebRTC applications with Janus
Scaling WebRTC applications with Janus
Lorenzo Miniero
 
TP Git avancé DevoxxFR 2018 (exercices)
TP Git avancé DevoxxFR 2018 (exercices)TP Git avancé DevoxxFR 2018 (exercices)
TP Git avancé DevoxxFR 2018 (exercices)
Jérôme Tamborini
 
OFI libfabric Tutorial
OFI libfabric TutorialOFI libfabric Tutorial
OFI libfabric Tutorial
dgoodell
 
Ryu sdn framework
Ryu sdn framework Ryu sdn framework
Ryu sdn framework
Isaku Yamahata
 
MirrorMaker: Beyond the Basics with Mickael Maison
MirrorMaker: Beyond the Basics with Mickael MaisonMirrorMaker: Beyond the Basics with Mickael Maison
MirrorMaker: Beyond the Basics with Mickael Maison
HostedbyConfluent
 
runC – Open Container Initiative
runC – Open Container InitiativerunC – Open Container Initiative
runC – Open Container Initiative
Jeeva Chelladhurai
 
HTTP Request Smuggling
HTTP Request SmugglingHTTP Request Smuggling
HTTP Request Smuggling
Akash Ashokan
 
DoS and DDoS mitigations with eBPF, XDP and DPDK
DoS and DDoS mitigations with eBPF, XDP and DPDKDoS and DDoS mitigations with eBPF, XDP and DPDK
DoS and DDoS mitigations with eBPF, XDP and DPDK
Marian Marinov
 

What's hot (20)

우아한 모노리스
우아한 모노리스우아한 모노리스
우아한 모노리스
 
HTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないときHTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないとき
 
OWASP AppSecEU 2018 – Attacking "Modern" Web Technologies
OWASP AppSecEU 2018 – Attacking "Modern" Web TechnologiesOWASP AppSecEU 2018 – Attacking "Modern" Web Technologies
OWASP AppSecEU 2018 – Attacking "Modern" Web Technologies
 
WebRTC Real time media P2P, Server, Infrastructure, and Platform
WebRTC Real time media P2P, Server, Infrastructure, and PlatformWebRTC Real time media P2P, Server, Infrastructure, and Platform
WebRTC Real time media P2P, Server, Infrastructure, and Platform
 
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 overview
WebRTC overviewWebRTC overview
WebRTC overview
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
 
Alfresco DevCon 2019 - Alfresco Identity Services in Action
Alfresco DevCon 2019 - Alfresco Identity Services in ActionAlfresco DevCon 2019 - Alfresco Identity Services in Action
Alfresco DevCon 2019 - Alfresco Identity Services in Action
 
Comunicação em tempo real com WebRTC e PHP
Comunicação em tempo real com WebRTC e PHPComunicação em tempo real com WebRTC e PHP
Comunicação em tempo real com WebRTC e PHP
 
Janus + Audio @ Open Source World
Janus + Audio @ Open Source WorldJanus + Audio @ Open Source World
Janus + Audio @ Open Source World
 
Monitoring with Prometheus
Monitoring with PrometheusMonitoring with Prometheus
Monitoring with Prometheus
 
Dev.bg DevOps March 2024 Monitoring & Logging
Dev.bg DevOps March 2024 Monitoring & LoggingDev.bg DevOps March 2024 Monitoring & Logging
Dev.bg DevOps March 2024 Monitoring & Logging
 
Scaling WebRTC applications with Janus
Scaling WebRTC applications with JanusScaling WebRTC applications with Janus
Scaling WebRTC applications with Janus
 
TP Git avancé DevoxxFR 2018 (exercices)
TP Git avancé DevoxxFR 2018 (exercices)TP Git avancé DevoxxFR 2018 (exercices)
TP Git avancé DevoxxFR 2018 (exercices)
 
OFI libfabric Tutorial
OFI libfabric TutorialOFI libfabric Tutorial
OFI libfabric Tutorial
 
Ryu sdn framework
Ryu sdn framework Ryu sdn framework
Ryu sdn framework
 
MirrorMaker: Beyond the Basics with Mickael Maison
MirrorMaker: Beyond the Basics with Mickael MaisonMirrorMaker: Beyond the Basics with Mickael Maison
MirrorMaker: Beyond the Basics with Mickael Maison
 
runC – Open Container Initiative
runC – Open Container InitiativerunC – Open Container Initiative
runC – Open Container Initiative
 
HTTP Request Smuggling
HTTP Request SmugglingHTTP Request Smuggling
HTTP Request Smuggling
 
DoS and DDoS mitigations with eBPF, XDP and DPDK
DoS and DDoS mitigations with eBPF, XDP and DPDKDoS and DDoS mitigations with eBPF, XDP and DPDK
DoS and DDoS mitigations with eBPF, XDP and DPDK
 

Similar to Kurento: a media server architecture and API for WebRTC

The future of multimedia communications and services: Kurento and it's role
The future of multimedia communications and services: Kurento and it's roleThe future of multimedia communications and services: Kurento and it's role
The future of multimedia communications and services: Kurento and it's role
Luis Lopez
 
Recording and media manipulation of WebRTC streams
Recording and media manipulation of WebRTC streamsRecording and media manipulation of WebRTC streams
Recording and media manipulation of WebRTC streams
Luis Lopez
 
Developing applications with Kurento
Developing applications with KurentoDeveloping applications with Kurento
Developing applications with Kurento
Luis Lopez
 
Developing rich multimedia applications with FI-WARE.
Developing rich multimedia applications with FI-WARE.Developing rich multimedia applications with FI-WARE.
Developing rich multimedia applications with FI-WARE.
Luis Lopez
 
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
 
Nubomedia IETF96 hackthon - Kurento
Nubomedia IETF96 hackthon - KurentoNubomedia IETF96 hackthon - Kurento
Nubomedia IETF96 hackthon - Kurento
Ivan Gracia
 
Kurento - FI-WARE Bootcamp
Kurento - FI-WARE BootcampKurento - FI-WARE Bootcamp
Kurento - FI-WARE Bootcamp
Ivan Gracia
 
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
 
kurento-nubomedia-first-steps-v1
kurento-nubomedia-first-steps-v1kurento-nubomedia-first-steps-v1
kurento-nubomedia-first-steps-v1
Luis Lopez
 
0150519-kurento.pdf
0150519-kurento.pdf0150519-kurento.pdf
0150519-kurento.pdf
DejVoleti
 
Nubomedia IETF96 hackathon - The platform
Nubomedia IETF96 hackathon - The platformNubomedia IETF96 hackathon - The platform
Nubomedia IETF96 hackathon - The platform
Ivan Gracia
 
Remixing Media on the Semantic Web (ISWC 2014 Tutorial) Pt 1 Media Fragment S...
Remixing Media on the Semantic Web (ISWC 2014 Tutorial) Pt 1 Media Fragment S...Remixing Media on the Semantic Web (ISWC 2014 Tutorial) Pt 1 Media Fragment S...
Remixing Media on the Semantic Web (ISWC 2014 Tutorial) Pt 1 Media Fragment S...
LinkedTV
 
Introduction to the Stream Oriented GE (Kurento v6)
Introduction to the Stream Oriented GE (Kurento v6)Introduction to the Stream Oriented GE (Kurento v6)
Introduction to the Stream Oriented GE (Kurento v6)
Boni García
 
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
Boni García
 
Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time c...
Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time c...Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time c...
Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time c...Luis Lopez
 
Web application development ( basics )
Web application development ( basics )Web application development ( basics )
Web application development ( basics )
Chirag Nag
 
"In love with Open Source : Past, Present and Future" : Keynote OSDConf 2014
"In love with Open Source : Past, Present and Future" : Keynote OSDConf 2014"In love with Open Source : Past, Present and Future" : Keynote OSDConf 2014
"In love with Open Source : Past, Present and Future" : Keynote OSDConf 2014
Piyush Kumar
 
My Media at University of Toronto Libraries
My Media at University of Toronto LibrariesMy Media at University of Toronto Libraries
My Media at University of Toronto Libraries
University of Toronto Libraries - Information Technology Services
 
Tpdl2015 kochw
Tpdl2015 kochwTpdl2015 kochw
Tpdl2015 kochw
walter koch
 

Similar to Kurento: a media server architecture and API for WebRTC (20)

The future of multimedia communications and services: Kurento and it's role
The future of multimedia communications and services: Kurento and it's roleThe future of multimedia communications and services: Kurento and it's role
The future of multimedia communications and services: Kurento and it's role
 
Kurento cpmx
Kurento cpmxKurento cpmx
Kurento cpmx
 
Recording and media manipulation of WebRTC streams
Recording and media manipulation of WebRTC streamsRecording and media manipulation of WebRTC streams
Recording and media manipulation of WebRTC streams
 
Developing applications with Kurento
Developing applications with KurentoDeveloping applications with Kurento
Developing applications with Kurento
 
Developing rich multimedia applications with FI-WARE.
Developing rich multimedia applications with FI-WARE.Developing rich multimedia applications with FI-WARE.
Developing rich multimedia applications with FI-WARE.
 
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...
 
Nubomedia IETF96 hackthon - Kurento
Nubomedia IETF96 hackthon - KurentoNubomedia IETF96 hackthon - Kurento
Nubomedia IETF96 hackthon - Kurento
 
Kurento - FI-WARE Bootcamp
Kurento - FI-WARE BootcampKurento - FI-WARE Bootcamp
Kurento - FI-WARE Bootcamp
 
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-nubomedia-first-steps-v1
kurento-nubomedia-first-steps-v1kurento-nubomedia-first-steps-v1
kurento-nubomedia-first-steps-v1
 
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
 
Remixing Media on the Semantic Web (ISWC 2014 Tutorial) Pt 1 Media Fragment S...
Remixing Media on the Semantic Web (ISWC 2014 Tutorial) Pt 1 Media Fragment S...Remixing Media on the Semantic Web (ISWC 2014 Tutorial) Pt 1 Media Fragment S...
Remixing Media on the Semantic Web (ISWC 2014 Tutorial) Pt 1 Media Fragment S...
 
Introduction to the Stream Oriented GE (Kurento v6)
Introduction to the Stream Oriented GE (Kurento v6)Introduction to the Stream Oriented GE (Kurento v6)
Introduction to the Stream Oriented GE (Kurento v6)
 
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
 
Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time c...
Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time c...Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time c...
Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time c...
 
Web application development ( basics )
Web application development ( basics )Web application development ( basics )
Web application development ( basics )
 
"In love with Open Source : Past, Present and Future" : Keynote OSDConf 2014
"In love with Open Source : Past, Present and Future" : Keynote OSDConf 2014"In love with Open Source : Past, Present and Future" : Keynote OSDConf 2014
"In love with Open Source : Past, Present and Future" : Keynote OSDConf 2014
 
My Media at University of Toronto Libraries
My Media at University of Toronto LibrariesMy Media at University of Toronto Libraries
My Media at University of Toronto Libraries
 
Tpdl2015 kochw
Tpdl2015 kochwTpdl2015 kochw
Tpdl2015 kochw
 

Recently uploaded

LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 

Recently uploaded (20)

LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 

Kurento: a media server architecture and API for WebRTC

  • 1. Kurento: a media server architecture and API Live video technology Luis Lopez lulop@kurento.org
  • 2. Who am I? Associate Prof. • Computer Science • Multimedia protocols and systems 15 years of experience in multimedia applications and protocols research • Director of the FUN-LAB group Open Source Software enthusiast and contributor Coordinating the Kurento.org project : a media server architecture and API – http://www.kurento.org 2
  • 3. What’s Kurento? Kurento • Esperanto translation of “stream” Esperanto philosophy • Openness • Simplicity • Interoperability Kurento • Open source development framework for creating rich real-time multimedia applications. : a media server architecture and API – http://www.kurento.org 3
  • 4. Kurento’s history 2004 March 2013 • Different research efforts from private and public organizations in the area of multimedia • Kurento receives 4M€ by European Commission through different research initiatives 2012 December 2013 • The Kurento stack goes fully open source LGPL v2.1 • Kurento first release available : a media server architecture and API – http://www.kurento.org 4
  • 5. Why WebRTC? • WebRTC is a movement – … by Tsahi Levent-Levi • Are RTCs new? – Skype, H.323, Facetime, WebEx • Why WebRTC is raising such expectations – Millions of WWW developers WWW dev. community RTC/IMS dev. community WebRTC WebRTC = Multimedia RTC is just another feature of your WWW application : a media server architecture and API – http://www.kurento.org 5
  • 6. Why Kurento? WWW RTC developer experience Before WebRTC Developing the client side After WebRTC Begin Next natural step… End • • • • Begin • • • • Unified APIs Standards FOSS Multiplatform Developing the infrastructure side : a media server architecture and API – http://www.kurento.org End Unified APIs Standards FOSS Multiplatform Begin End • • • • Unified APIs Standards FOSS Multiplatform 6
  • 7. Kurento media framework components •Low level media capabilities •Signaling and control capabilities •SIP, HTTP, RESFul, etc. •Java •Spring + JBoss + Mobicents SIP Servlet •Transport, encode/decode, transcode, CV, mix, etc •C/C++ •C++ Media Server + Gstreamer plugins Kurento Media Server Kurento Application Server Kurento Android SDK Kurento WWW SDK •RTC library for Android •Java and C •Multicodec support : a media server architecture and API – http://www.kurento.org •HTML5 multimedia development •Video tag, WebRTC •Javascript 7
  • 8. Kurento Application Server: extending the WWW development model Signaling request: I want this media HTTP request: I want this resource Process WWW request - DDBB access - Transactions - Security tools - Etc. HTTP response: The resource Intuition behind traditional WWW Applications (Servlets, ASP, PHP, Rails, etc.) : a media server architecture and API – http://www.kurento.org Process media request - Media API - DDBB access Transactions Security tools Etc. Signaling response: The media is here Intuition behind Kurento development APIs: Multimedia RTC is just another feature of your application 8
  • 9. Media API: media elements and media pipelines  Media Element • Provides a specific media functionality • Send/receive media Process media Transform media The Media API provides the capability of creating media pipelines by joining media elements of the toolbox The Media API provides a toolbox of media elements ready to be used. New media elements can be added Media Element PlayerEndPoint Sink SRC : a media server architecture and API – http://www.kurento.org WebRtcEndPoint Filter Sink SRC SRC • the desired media functionality. Building block Sink • › › › ›  Media pipeline • Chain of media elements implementing 9
  • 10. Application architecture Other systems and databases Signaling and WWW traffic Media Media Signaling and WWW traffic HTTP Servlet SIP Servlet Web service s DD.BB. JMS Java EE compatible container Specific application logic Media API Decode Video Augmented Reality Video Playing and Recording Computer Vision Encode Video Kurento Media Server Infrastructure : a media server architecture and API – http://www.kurento.org 10
  • 11. Possible use cases: just integrate with Java EE and GStreamer • Verticals – E-Health • Kurento + HAPI (http://hl7api.sourceforge.net/) – P2D video conferences as Electronic Health Records – Smart cities • Kurento + NGSI + OpenCV + Google Maps – City crowds movement tracking – Traffic density tracking • Telco infrastructures – Kurento + Mobicents • IMS application server • B2B & B2C WWW RTC – Kurento + CRM APIs • Enriched video conferencing with customer personal data – Kurento + ESB • Billing, video event processing, physical security, etc. : a media server architecture and API – http://www.kurento.org 11
  • 12. Application example: requirements Kurento Media Server Infrastructure : a media server architecture and API – http://www.kurento.org 12
  • 13. Application example: code @WebRtcMediaService(name = "MyWebRtcService", path = "/pathToService") public class MyWebRtcService implements WebRtcMediaHandler { public void onMediaRequest(WebRtcMediaRequest request) { //I can authenticate using any of the Java EE available mechanisms MediaPipelineFactory mpf = request.getMediaPipelineFactory(); MediaPipeline mp = mpf.createMediaPipeline(); //I could decide the type of processing connecting to a DDBB JackVaderFilter filter = mp.newFilter().withType(JackVaderFilter.class).build(); RecorderEndpoint recorder = mp.newRecorderEndpoint().withUri("file:///myFile.webm"); filter.connect(recorder); HttpEndpoint httpEndpoint = mp.newHttpEndpoint().build(); filter.connect(filter); //I could connect only audio or video separately request.startMedia(filter, filter); } To file Media Sink RecorderEndpoint Media Sink Sink Video tag or CDN SRC Media Sink HttpEndpoint : a media server architecture and API – JackVaderFilter http://www.kurento.org To Network Media Source From network WebRtcEndpoint 13
  • 14. Application example: result : a media server architecture and API – http://www.kurento.org 14
  • 15. Media element toolbox Transport Repository Group communications • WebRtcEndpoint • RtpEndpoint • HttpEndpoint • PlayerEndPoint • RecorderEndPoint • MainMixer • GridMixer • RoundRobinMixer Filters • FaceRecognitionFilter (events) • JackVaderFilter • QR/Barcode detector • PlateRecognitionFilter (events) • ColorTrackingFilter (events) And growing … Available as part of : a media server architecture and API – http://www.kurento.org 15
  • 16. Media elements: WebRtcEndpoint • Full implementation of the RTCWeb protocol stack – SRTP – ICE – DTLS • Allow sending and receiving WebRTC flows at the media server infrastructure Media Source WebRTC traffic Media Sink WebRTC traffic WebRtcEndpoint : a media server architecture and API – http://www.kurento.org 16
  • 17. Media elements: HttpEndpoint • Media downloading compatible with the HTML5 video tag – WebM (Chrome, Firefox) – MP4 (Chrome, Firefox, IE, Safari) • Media uploading compatible with HTML file input tag – Multipart support Media Sink HTTP WebM/MP4 HttpEndpoint : a media server architecture and API – http://www.kurento.org 17
  • 18. Media elements: RtpEndpoint • Full-duplex RTP multimedia exchange – – – – H.264 H.263 VP8 Many different audio codecs supported Media Source RTP traffic Media Sink RTP traffic RtpEndpoint : a media server architecture and API – http://www.kurento.org 18
  • 19. Media elements: UriEndpoints • PayerEndpoint – Play media from file or URL • Support for most popular formats • RecorderEndpoint – Record media to file or URL • WebM • MP4 Media Sink RecorderEndpoint Media Source PlayerEndpoint : a media server architecture and API – http://www.kurento.org 19
  • 20. Media elements: Mixers (in progress) • Make possible group communications – ForwardingMixer • • • One-to-many replication of flows A source can be assigned to any of the sinks Multiple sources supported – MainMixer • • • Mixes media A source can be assigned to a combination of sinks Multiple sources supported Media Source Media Sink Media Source Media Sink Mixer Media Sink : a media server architecture and API – http://www.kurento.org Media Source 20
  • 21. Filters Seamless integration into OpenCV Face recognition Augmented reality Subtitle adding Color manipulation QR detection People counter Plate recognition Etc. Filter SRC – – – – – – – – Sink • : a media server architecture and API – http://www.kurento.org 21
  • 22. Filter with events • Filters can provide events to the application – Events are generated at the media server – Events can be propagated to the client app • Code example: MediaPipeline mp = mpf.create(); PlayerEndPoint playerEndPoint = mp.newPlayerEndPoint( "https://ci.kurento.com/video/barcodes.webm").build(); ZBarFilter filter = mp.newZBarFilter().build(); playerEndPoint.connect(filter); Events SRC Media Source Sink filter.addCodeFoundDataListener(new MediaEventListener<CodeFoundEvent>() { @Override public void onEvent(CodeFoundEvent event) { session.publishEvent(new ContentEvent(event.getType(), event.getValue())); ... PlayerEndpoint ZBarFilter : a media server architecture and API – http://www.kurento.org 22
  • 23. The magic of pipelines: Transparent media adaptation • Agnostic media adaptor – Acts every time a source is connected to a sink – Adapts media formats as required by the involved media elements – 100% transparent for the application developer An agnostic media adaptor is “hidden” behind every connection making compatible element formats transparently VP8 H.264 : a media server architecture and API – http://www.kurento.org SRC Media Element Sink SRC Sink Media Element 23
  • 24. Complex examples: Heterogeneous group communications Media Source Media Sink Media Sink RecorderEndpoint WebRtcEndpoint Media Source Mixer Media Sink WebRtcEndpoint Media Source SRC Media Sink Sink Filter RtpEndpoint : a media server architecture and API – http://www.kurento.org 24
  • 25. Complex examples: WebRTC to HTTP Media Source Media Sink Media Sink RecorderEndpoint Mixer WebRtcEndpoint Media Sink HttpEndpoint Mixer Media Sink HttpEndpoint Media Sink HttpEndpoint : a media server architecture and API – http://www.kurento.org
  • 26. Complex examples: WebRTC Playing Media Source Media Sink Media Sink RecorderEndpoint Mixer WebRtcEndpoint Media Sink Filter HttpEndpoint Sink SRC Media Source PlayerEndpoint : a media server architecture and API – http://www.kurento.org 26
  • 27. Kurento’s Roadmap Q1 2014 • Installer and documentation • Group communications • Super scalable media repository Q4 2014 • Kurento cloud infrastructure • Hardware acceleration Q2 2014 2015 • WebRTC support on Android SDK • Kurento iOS SDK • Javascript Media API • Elastric scalable Kurento PaaS platform • SDN Kurento QoS cloud connectivity manager • IMS/Telco infrastructure integration • 3D/Kinect multimedia support : a media server architecture and API – http://www.kurento.org 27
  • 28. Upcoming opportunities for developers • FI-WARE is the platform of the FI-PPP initiative – European Commission FP7 – Kurento is providing multimedia capabilities to FI-WARE • FI-WARE is giving 800K€ in prices to developers – You can opt to them developing on top of Kurento – http://www.fi-ware.eu/challenges/ • FI-PPP is providing 100M€ in funding to SMEs and entrepreneurs – http://www.fi-ppp.eu/how-to-participate/ : a media server architecture and API – http://www.kurento.org 28
  • 29. Collaborations welcome http://www.github.com/kurento Thank you very much for your attention Complains, suggestions and comments can be sent to: Luis López lulop@kurento.org : a media server architecture and API – http://www.kurento.org 29