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 communication technologies 5G HD 3D Video 4G HD Video 3G Video 2G Audio 4 http://www.kurento.org
The Kurento vision From this … … to this Knowledge 5 http://www.kurento.org
Cooking Kurento 6 http://www.kurento.org
WebRTC: present and future Before WebRTC After WebRTC Next natural step… Developing the client side Begin End Begin End • Unified APIs • Unified APIs • Standards • Standards • FOSS • FOSS • Multiplatform • Multiplatform Developing the infrastructure Begin End side • Unified APIs • Standards • FOSS • Multiplatform 7 http://www.kurento.org
WebRTC infrastructures Peer-to-Peer WebRTC Application (without media infrastructure) WebRTC video stream WebRTC Application based on media infrastructure media infrastructure 8 http://www.kurento.org
Function of WebRTC media servers Transcoding media server VP8 H.264 MCU/SFU media server Recording media server 9 http://www.kurento.org
Kurento as a WebRTC media server What common WebRTC Current media servers Media is Media Servers do: Media goes Transcoding here MCU/SFU there • Transcoding Recording • MCU • Recording Media is What future Media Future media servers Rich Media here Servers will do: goes there Transcoding, • Flexible processing MCU/SFU, Recording, • Augmented reality Enrich, • Blending Augment, • Mixing Analyze, Context • Analyzing Combine, Media Transform, Content • Etc. Adapt, … Events Commands 10 http://www.kurento.org
Why is this important Advertising Broadcasting Making calls Gaming WARNING! Overcrowded eLearning Blue Ocean Content and Making WebRTC entertainment calls IoT M2M Smart cities P2M Emergencies Multimedia Security Blue Ocean
WebRTC as a disruptive technology General purpose Specific purpose RTC RTC multimedia Services multimedia services Number of users Disruption direction of WebRTC Who cares about the immense minority? Commodity, no business Many business opportunities here opportunities here 12 http://www.kurento.org
Kurento Media Server Media Element Media pipeline • Provides a specific media • Chain of media elements functionality implementing the desired media › Send/receive media logic. • The Media API provides the › Process media capability of creating media › Transform media pipelines by joining media • Exchange media through elements of the toolbox › Sources › Sinks Media Element Sink SRC 13 http://www.kurento.org
Creating applications basing on Kurento Media Server Application 2 Application 1 Application 3 Toolbox of media elements 14 http://www.kurento.org
Creating applications with Kurento 15 http://www.kurento.org
16 http://www.kurento.org
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/
Starting with Kurento • 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 18 http://www.kurento.org
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 19 http://www.kurento.org
Kurento “Hello World!” 20 http://www.kurento.org
Kurento “Hello World!” • Tutorial – http://www.kurento.org/docs/current/tutorials/js/tuto rial-1-helloworld.html • Code – https://github.com/Kurento/kurento-tutorial- js/tree/release-5.1/kurento-hello-world • Video – https://www.youtube.com/watch?v=vGEnkSOp_xc 21 http://www.kurento.org
Understanding this example Browser Application Code kurento-utils Kurento-client-js getUserMedia API PeerConnection API WebSocket API Media Signaling Kurento Media Server 22 http://www.kurento.org
Recording and playing SRC Sink Sink SRC SRC Sink 23 http://www.kurento.org
Recording and playing • Get code here – https://github.com/Kurento/kurento-tutorial- js/tree/release-5.1/kurento-hello-world-recorder- generator – WARNING: Example using generators!! • Video – https://www.youtube.com/watch?v=rDd2NjFXcS0 24 http://www.kurento.org
JavaScript Generators • Generators – Black magic for avoiding callback hell – Program asynchronously with synchronous philosophy • Warning – “Enable Experimental JavaScript” flag 25 http://www.kurento.org
One-to-many example WebRtcEndpoint 4 User 4 Sink WebRTC streaming SRC WebRtcEndpoint 3 User 3 Sink WebRTC streaming SRC WebRtcEndpoint 2 WebRtcEndpoint 1 User 1 User 2 SRC Sink WebRTC WebRTC streaming streaming Sink SRC Media Pipeline 26 http://www.kurento.org
One-to-many • Java EE – http://www.kurento.org/docs/current/tutorials/java/t utorial-3-one2many.html • Node.js – http://www.kurento.org/docs/current/tutorials/node/ utorial-3-one2many.html 27 http://www.kurento.org
Face overlay example Browser JavaScript • – http://www.kurento.org/docs/current/tutorials/js/tutorial-2-magicmirror.html • Java – http://www.kurento.org/docs/current/tutorials/java/tutorial-2-magicmirror.html • Node.js – http://www.kurento.org/docs/current/tutorials/node/tutorial-3-one2many.html • Video – https://www.youtube.com/watch?v=h84HFkvWGgw 28 http://www.kurento.org
Augmented Reality example Sink SRC SRC Sink • Video – https://www.youtube.com/watch?v=JlRg4PzeRKQ 29 http://www.kurento.org
Motion detector • Video – https://www.youtube.com/watch?v=r91nExNEHiw 30 http://www.kurento.org
Crowd detector CrowdEvents Sink SRC CrowdDetector RtspPlayer SRC SRC Sink • Video – https://www.youtube.com/watch?v=S6iWSCysgT0 31 http://www.kurento.org
Many other examples • Face segmentator (aka get a Kiss) – https://www.youtube.com/watch?v=WRmzzblZGDo • Room communications – https://www.youtube.com/watch?v=hkT8fLROdwo • B2B calls – https://www.youtube.com/watch?v=ocJBDo8K6eM • Etc. 32 http://www.kurento.org
Beyond media servers: WebRTC clouds and the problem of scalability WebRTC Application based on media infrastructure WebRTC Cloud 33 http://www.kurento.org
Cloud models for WebRTC infrastructures IaaS SaaS PaaS Provider Provider - Service - Computing resources Provider Developer - Development API - Installation Developer - Administration - Nothing to do - Security Developer - Application logic - Application logic 34 http://www.kurento.org
WebRTC PaaS APIs: Requirements Requirements of WebRTC PaaS APIs • – Functional requirements • Media transport – Media endpoint – Media replication – Media routing • Media persistence – Media storage – Media recovery • Media processing – Transcoding – Analysis – Augmentation – Non-functional requirements • Security • Dependability • Scalability 35 http://www.kurento.org
WebRTC multimedia session RFC 5117 • – A multimedia session is an association among a group of participants engaged in the communication via one or more RTP Sessions. • Characterized by – Communication topology • Graph of multimedia flows – Multimedia processing • Function of each edge of the graph of media flows Transport Transcode Record Analyze Etc. 36 http://www.kurento.org
Scalability of RTC multimedia services TV “Beyond RTC calls” Broadcasting Number of users per session “Broadcasting Non-RTC” CDNs “RTC calls” “Home-made Media Server based Services RTC” Phone system WebRTC PaaS Number of concurrent sessions 37 http://www.kurento.org
Scalability of RTC multimedia services TV “Beyond RTC calls” Broadcasting Number of users per session “Broadcasting Non-RTC” CDNs “RTC calls” “Home-made Media Server based Services RTC” Phone system WebRTC PaaS Number of concurrent sessions 38 http://www.kurento.org
The scalability problem in “call” clouds l Call Call Call Call Call Call Call Call Call Call Call Call Call Call Call Call
Anatomy of WebRTC PaaS for call models: Flat Architecture Application Server Broker Function Load Balancer Media Server Function Function Function Cloud Orchestrator IaaS Cloud Manager 40 http://www.kurento.org
Cloud functions: IaaS manager • Function Cloud Cloud Orchestrator Orchestrator – Provides APIs for IaaS management • Images • Instances Infrastructure as a Service APIs • Storage • Metrics Image Metrics and Security • Security Management KPIs Management • Etc. Computing Storage Networking Management Management Management • Requires IaaS Cloud Manager IaaS Cloud Manager – Physical infrastructure 41 http://www.kurento.org
Recommend
More recommend