Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time communications
Luis Lopez lulop@kurento.org
Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia - - PowerPoint PPT Presentation
Nubomedia: the cloud infrastructure for WebRTC and IMS multimedia real-time communications Luis Lopez lulop@kurento.org Human communications 2 http://www.kurento.org The value of technology 3 http://www.kurento.org Multimedia
Luis Lopez lulop@kurento.org
http://www.kurento.org
2
http://www.kurento.org
3
http://www.kurento.org
4 2G
3G 4G
Audio
Video
HD Video
HD 3D Video
http://www.kurento.org
5
From this … … to this Knowledge
http://www.kurento.org
6
http://www.kurento.org
7
Developing the client side Developing the infrastructure side Before WebRTC After WebRTC Next natural step…
Begin End Begin End Begin End
http://www.kurento.org
8
Peer-to-Peer WebRTC Application (without media infrastructure)
WebRTC video stream
WebRTC Application based on media infrastructure
media infrastructure
http://www.kurento.org
9
Transcoding media server VP8 H.264 MCU/SFU media server Recording media server
http://www.kurento.org
10
What common WebRTC Media Servers do:
What future Media Servers will do:
Media is here Media goes there
Transcoding MCU/SFU Recording
Current media servers 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
WebRTC Making calls Content and entertainment IoT M2M P2M Multimedia Making calls WARNING! Overcrowded Advertising Broadcasting Gaming eLearning Blue Ocean Smart cities Emergencies Security Blue Ocean
http://www.kurento.org
12
Number of users
General purpose RTC multimedia Services Specific purpose RTC multimedia services
Commodity, no business
Who cares about the immense minority? Many business opportunities here
Disruption direction
http://www.kurento.org
13
functionality
› Send/receive media › Process media › Transform media
› Sources › Sinks
implementing the desired media logic.
capability of creating media pipelines by joining media elements of the toolbox
Media Element
Sink SRC
http://www.kurento.org
14
Application 2 Application 3 Application 1 Toolbox of media elements
http://www.kurento.org
15
http://www.kurento.org
16
– http://www.html5rocks.com/en/tutorials/webrtc/ basics/
– http://www.html5rocks.com/en/tutorials/webrtc/ infrastructure/
http://www.kurento.org
18
– http://www.kurento.org/documentation
– Catalogue site
kurento
– Documentation
kurento/documentation
http://www.kurento.org
19
– Ubuntu 14.04 box (sudo) – Internet connectivity
– sudo add-apt-repository ppa:kurento/kurento – sudo apt-get update – sudo apt-get install kurento-media-server
– sudo service kurento-media-server start
http://www.kurento.org
20
http://www.kurento.org
21
– http://www.kurento.org/docs/current/tutorials/js/tuto rial-1-helloworld.html
– https://github.com/Kurento/kurento-tutorial- js/tree/release-5.1/kurento-hello-world
– https://www.youtube.com/watch?v=vGEnkSOp_xc
http://www.kurento.org
22
PeerConnection API getUserMedia API kurento-utils Kurento-client-js Application Code WebSocket API Kurento Media Server
Browser Signaling Media
http://www.kurento.org
23
Sink SRC Sink Sink SRC SRC
http://www.kurento.org
24
– https://github.com/Kurento/kurento-tutorial- js/tree/release-5.1/kurento-hello-world-recorder- generator – WARNING: Example using generators!!
– https://www.youtube.com/watch?v=rDd2NjFXcS0
http://www.kurento.org
25
– Black magic for avoiding callback hell – Program asynchronously with synchronous philosophy
– “Enable Experimental JavaScript” flag
http://www.kurento.org
26
Media Pipeline
WebRTC streaming
Sink SRC
WebRTC streaming
SRC Sink SRC Sink
WebRTC streaming WebRtcEndpoint 1 WebRtcEndpoint 3 WebRtcEndpoint 2
SRC Sink
WebRTC streaming WebRtcEndpoint 4 User 1 User 2 User 3 User 4
http://www.kurento.org
27
– http://www.kurento.org/docs/current/tutorials/java/t utorial-3-one2many.html
– http://www.kurento.org/docs/current/tutorials/node/ utorial-3-one2many.html
http://www.kurento.org
28
– http://www.kurento.org/docs/current/tutorials/js/tutorial-2-magicmirror.html
– http://www.kurento.org/docs/current/tutorials/java/tutorial-2-magicmirror.html
– http://www.kurento.org/docs/current/tutorials/node/tutorial-3-one2many.html
– https://www.youtube.com/watch?v=h84HFkvWGgw
http://www.kurento.org
29
– https://www.youtube.com/watch?v=JlRg4PzeRKQ
Sink SRC Sink SRC
http://www.kurento.org
30
– https://www.youtube.com/watch?v=r91nExNEHiw
http://www.kurento.org
31
– https://www.youtube.com/watch?v=S6iWSCysgT0
CrowdEvents
SRC Sink SRC
CrowdDetector RtspPlayer
Sink SRC
– https://www.youtube.com/watch?v=WRmzzblZGDo
– https://www.youtube.com/watch?v=hkT8fLROdwo
– https://www.youtube.com/watch?v=ocJBDo8K6eM
http://www.kurento.org
32
http://www.kurento.org
33
WebRTC Application based on media infrastructure
WebRTC Cloud
http://www.kurento.org
34
Provider
Developer
Provider
Developer
Provider
Developer
– Functional requirements
– Media endpoint – Media replication – Media routing
– Media storage – Media recovery
– Transcoding – Analysis – Augmentation
– Non-functional requirements
http://www.kurento.org
35
– A multimedia session is an association among a group of participants engaged in the communication via one or more RTP Sessions.
– Communication topology
– Multimedia processing
http://www.kurento.org
36
Transport Transcode Record Analyze Etc.
http://www.kurento.org
37
Number of concurrent sessions Number of users per session
WebRTC PaaS Phone system TV Broadcasting CDNs Media Server based Services
“RTC calls” “Home-made RTC” “Broadcasting Non-RTC” “Beyond RTC calls”
http://www.kurento.org
38
Number of concurrent sessions Number of users per session
WebRTC PaaS Phone system TV Broadcasting CDNs Media Server based Services
“RTC calls” “Home-made RTC” “Broadcasting Non-RTC” “Beyond RTC calls”
Call Call l Call Call Call Call Call Call Call Call Call Call Call Call Call Call
http://www.kurento.org
40
Load Balancer Function IaaS Cloud Manager Application Server Function Broker Function Media Server Function Cloud Orchestrator
http://www.kurento.org
41
IaaS Cloud Manager Cloud Orchestrator
– Provides APIs for IaaS management
– Physical infrastructure
IaaS Cloud Manager Cloud Orchestrator
Image Management Computing Management Storage Management Networking Management Security Management Metrics and KPIs Infrastructure as a Service APIs
http://www.kurento.org
42
IaaS Cloud Manager Cloud Orchestrator
– Lifecycle management of the platform
allocate them to the specific services
– Runtime management with autoscaling
in situations of peak load
whenever they are not required any longer
– Autoscaling rules
two new instances
Image Management Computing Management Storage Management Networking Management Security Management Metrics and KPIs Infrastructure as a Service APIs
http://www.kurento.org
43
Send Receive Analyze Augment Enrich Transform Transcode Record Process Replicate
Media Server Instance
Application Server Instance
Media Control Protocol
– Provides media capabilities
– Control Protocol – Media Protocols – Media Codecs
Media Server Instance
http://www.kurento.org
44
Broker Function
Application Server Instance
Media Server Instance Media Server Instance Media Server Instance Media Server Instance
– Assigns “call” to specific media server instances
instance to take care of this call
– “call” are never split among media servers
– Scheduling policy
– Registration of MSis
to be known by the broker
Call Call
http://www.kurento.org
45
Application Server Instance
Signaling frontend Security logic API logic Client request
– Signaling
– Security logic
Accounting
– PaaS API logic
for providing API semantics
– Signaling protocol implementation
– Security rules
– Specific logic
– Distributes client requests among available AS instances – Usually stateful
– Balancing policy
– Low
http://www.kurento.org
46
Load Balancer Function
Client App. Application Server Instance Client App. Client App. Application Server Instance Application Server Instance
http://www.kurento.org
47
Load Balancer Function IaaS Cloud Manager Application Server Function Broker Function Media Server Function Cloud Orchestrator
http://www.kurento.org
48
OpenStack Swift OpenStack Glance
Media Server Image Application Server Image Broker Image Load Balancer Image
Heat Orchestration Template OpenStack Nova
Scalability Group
Open Stack Heat Packer
Autoscaling Rules Launch configurations Scalability Group Scalability Group Scalability Group Load Balancer Instance Application Server Instance Application Server Instance Broker Instance Media Server Instance Media Server Instance Media Server Instance
http://www.kurento.org
49
Number of concurrent sessions Number of users per session
WebRTC PaaS Phone system TV Broadcasting CDNs Media Server based Services
“RTC calls” “Home-made RTC” “Broadcasting Non-RTC” “Beyond RTC calls”
http://www.kurento.org
50
Users in call Monitoring users Users can dynamically change their role
http://www.kurento.org
51
Media stream
http://www.kurento.org
52
Load Balancer Function IaaS Cloud Manager Application Server Function Broker Function Media Server Function Cloud Orchestrator
http://www.kurento.org
53
Media Server Instance Media Server Instance Media Server Instance Media Server Instance Media Server Instance Media Server Instance
– Provides elastics media capabilities
among media server instances
following a specific topology
– Glue mechanism among media server instances
http://www.kurento.org
54
– On the number of media pipelines
sessions
– On the number of elements per media pipeline
per session
– Media Pipeline
– The media element is a monolithic (non distributed) entity
http://www.kurento.org
55
Broker Function
Application Server Instance
– Assigns “call legs” to specific media server instances
take care of this call
– “call” are split among different media server instances
– Scheduling policy
– Very complex problem
media server instances
Media Server Instance Media Server Instance Media Server Instance Media Server Instance Media Server Instance
http://www.kurento.org
56 56
Own implementation