The document discusses Kurento, an open-source multimedia infrastructure platform that allows developing rich multimedia applications. Kurento provides a media server (KMS) that handles media processing and streaming. It exposes APIs to define media pipelines for processing streams. Applications are developed by creating handlers that specify logic to execute when receiving signaling requests for media. The Kurento application server hosts handlers and dispatches requests to the appropriate one.
Kurento: a media server architecture and API for WebRTCLuis Lopez
Introducing Kurento for WebRTC Expo 2013 (Paris). Kurento is an Open Source multimedia framework, which provides a Java EE compatible API suitable for adding real-time communication capabilities to any WWW application in a simple and seamless way.
This presentation was carried out at the different FI-WARE Bootcamps, for presenting Kurento, its capabilities and APIs to a group of startups.
Kurento makes it possible to create rich video applications supporting WebRTC and HTTP pseudo-streaming (video tag) and exposing Kurento Media Server capabilities, which include computer vision, augmented reality, group communications and recording.
This presentation was used in the context of a FI-WARE webminar for introducing Kurento. Kurento is a framework for building multimedia and streaming applications based on predefined blocks. Send and receive median through RTP, WebRTC, HTTP and RTSP. Use processing for making face detection, plate recognition or object tracking. Use augmented reality, group communications or media mixing and blending among others. During the webminar, we used Kurento APIs for showing how to create media applications for videoconferencing or video streaming in a simple and seamless manner. We also demonstrated how these applications can be enriched with Kurento's advanced processing capabilities.
FOSDEM 2016 - Creating rich WebRTC Applications with KurentoLuis Lopez
WebRTC is a disruptive media technology bringing real-time multimedia communications to HTML5 standards. WebRTC is currently available for billions of users as a built-in feature of common browsers such as Chrome and Firefox. This makes possible the emergence of a truly open and interoperable technology competing with proprietary conferencing solutions and enabling developers to create specific-purpose WWW peer-to-peer real-time media applications in a simple and seamless manner.
However, WebRTC developers commonly require more than plain peer-to-peer video conferencing. For this, we introduce Kurento (http://www.kurento.org), a Free Open Source Software (FOSS) initiative build on top of GStreamer providing developers a set of high level abstract APIs making possible the creation of HTML5 multimedia-enabled web application. Kurento pushes GStreamer to the limit building a media server with interesting features such as media recording, media mixing for group communications, media adaption and transcoding, media augmentation, integration with computer vision capabilities, etc.
In the talk we will introduce what’s Kurento and how WWW developers can take advantage of it showing the following aspects of the framework:
- First, introducing Kurento Java and JavaScript APIs and we explain how they interact with the signaling plane in an application server. This allows WebRTC application developers to create their application logic using popular technologies such as Java EE or Node.js.
- Second, by presenting a unique media plane written on top of GStreamer. GStreamer is based on the concept of media pipelines, which can be seen as chains of media elements performing operations to a media flow in real-time. Currently there are more than 1000 media elements written for GStreamer implementing many different capabilities such as codecs (e.g. H.264, H.263, VP8, etc.), recorders and players (for storing/recovering media from files), blenders (for augmenting media), filters (i.e. face blurring, face recognition, etc.) and others. Hence, Kurento enables to inject WebRTC streams into a chain of such elements and perform, in real time, the operations the developer wishes.
- Third, introducing and abstraction of all the complexities of signaling, media control and media management through a powerful server-side API that can be used by average developers who do not require particular expertise about multimedia protocols or formats.
Developing rich multimedia applications with Kurento: a tutorial for JavaScri...Luis Lopez
This presentation was carried out at DevCon5'14 (New York) for introducing the Kurento new JavaScript developer APIs. These APIs make possible to create rich video applications supporting WebRTC and HTTP pseudo-streaming (video tag) and leveraging Kurento Media Server capabilities, which include computer vision, augmented reality, group communications and recording.
Developing rich multimedia applications with FI-WARE.Luis Lopez
FI-WARE will deliver a novel service infrastructure, building upon elements called Generic Enablers (GEs), which offer reusable and commonly shared functions making it easier to develop Future Internet Applications in multiple sectors. This presentation provides an overview of Kurento: the FI-WARE Generic Enabler that will ease development of advanced multimedia stream processing applications.
Kurento: a media server architecture and API for WebRTCLuis Lopez
Introducing Kurento for WebRTC Expo 2013 (Paris). Kurento is an Open Source multimedia framework, which provides a Java EE compatible API suitable for adding real-time communication capabilities to any WWW application in a simple and seamless way.
This presentation was carried out at the different FI-WARE Bootcamps, for presenting Kurento, its capabilities and APIs to a group of startups.
Kurento makes it possible to create rich video applications supporting WebRTC and HTTP pseudo-streaming (video tag) and exposing Kurento Media Server capabilities, which include computer vision, augmented reality, group communications and recording.
This presentation was used in the context of a FI-WARE webminar for introducing Kurento. Kurento is a framework for building multimedia and streaming applications based on predefined blocks. Send and receive median through RTP, WebRTC, HTTP and RTSP. Use processing for making face detection, plate recognition or object tracking. Use augmented reality, group communications or media mixing and blending among others. During the webminar, we used Kurento APIs for showing how to create media applications for videoconferencing or video streaming in a simple and seamless manner. We also demonstrated how these applications can be enriched with Kurento's advanced processing capabilities.
FOSDEM 2016 - Creating rich WebRTC Applications with KurentoLuis Lopez
WebRTC is a disruptive media technology bringing real-time multimedia communications to HTML5 standards. WebRTC is currently available for billions of users as a built-in feature of common browsers such as Chrome and Firefox. This makes possible the emergence of a truly open and interoperable technology competing with proprietary conferencing solutions and enabling developers to create specific-purpose WWW peer-to-peer real-time media applications in a simple and seamless manner.
However, WebRTC developers commonly require more than plain peer-to-peer video conferencing. For this, we introduce Kurento (http://www.kurento.org), a Free Open Source Software (FOSS) initiative build on top of GStreamer providing developers a set of high level abstract APIs making possible the creation of HTML5 multimedia-enabled web application. Kurento pushes GStreamer to the limit building a media server with interesting features such as media recording, media mixing for group communications, media adaption and transcoding, media augmentation, integration with computer vision capabilities, etc.
In the talk we will introduce what’s Kurento and how WWW developers can take advantage of it showing the following aspects of the framework:
- First, introducing Kurento Java and JavaScript APIs and we explain how they interact with the signaling plane in an application server. This allows WebRTC application developers to create their application logic using popular technologies such as Java EE or Node.js.
- Second, by presenting a unique media plane written on top of GStreamer. GStreamer is based on the concept of media pipelines, which can be seen as chains of media elements performing operations to a media flow in real-time. Currently there are more than 1000 media elements written for GStreamer implementing many different capabilities such as codecs (e.g. H.264, H.263, VP8, etc.), recorders and players (for storing/recovering media from files), blenders (for augmenting media), filters (i.e. face blurring, face recognition, etc.) and others. Hence, Kurento enables to inject WebRTC streams into a chain of such elements and perform, in real time, the operations the developer wishes.
- Third, introducing and abstraction of all the complexities of signaling, media control and media management through a powerful server-side API that can be used by average developers who do not require particular expertise about multimedia protocols or formats.
Developing rich multimedia applications with Kurento: a tutorial for JavaScri...Luis Lopez
This presentation was carried out at DevCon5'14 (New York) for introducing the Kurento new JavaScript developer APIs. These APIs make possible to create rich video applications supporting WebRTC and HTTP pseudo-streaming (video tag) and leveraging Kurento Media Server capabilities, which include computer vision, augmented reality, group communications and recording.
Developing rich multimedia applications with FI-WARE.Luis Lopez
FI-WARE will deliver a novel service infrastructure, building upon elements called Generic Enablers (GEs), which offer reusable and commonly shared functions making it easier to develop Future Internet Applications in multiple sectors. This presentation provides an overview of Kurento: the FI-WARE Generic Enabler that will ease development of advanced multimedia stream processing applications.
Recording and media manipulation of WebRTC streamsLuis Lopez
This presentation introduces Kurento technologies to developers at the WebRTC Conference & Expo 2014 in San Jose. It focuses on Kurento Client APIs and on its capabilities for recording and manipulating the audio and video streams in WebRTC sessions.
Developing rich multimedia applications with Kurento: a tutorial for Java Dev...Luis Lopez
This presentation contains a tutorial devoted to showing how Java developers can create rich multimedia applications with Kurento. Java developers will find natural Kurento development model, which is based on standard Java EE technologies and is inspired on the WWW Servlet model.
If you have ever developed a Web application, you may be familiar with this scheme. At the browser, HTML and JavaScript code is in charge of user interaction and generates HTTP requests to the server. This code is usually programmed with the help of APIs such as jQuery, DOM, XHR or others. Upon reception, HTTP requests are processed by some kind of server side technology (e. g.. PHP, Java, Ruby, etc.) using service APIs providing features such as DB access, communications, transactions, XML parsing, and others. As a result, an HTTP response is issued and sent back to the client. Following this scheme, both server and client side APIs are just capabilities simplifying developer work and providing abstractions for programming faster and more efficiently.
Kurento technologies adapt to the Web development model so that, from a programmer perspective, Kurento can be seen just as an additional set of APIs. Developers does not need to learn novel programming schemes and can reuse all their knowledge and previous background on WWW application development. When you need multimedia, just use Kurento APIs. For the rest, use your preferred APIs or reuse previous code. Kurento APIs have been designed for simplicity and Web developers will find them familiar and intuitive. Most of the low level details related to codecs, formats, protocols, profiles and containers are abstracted by the framework. Programmers just concentrate on specifying the sequence of processing steps that they want to execute on the media flows.
WebRTC services have already permeated in corporate communications in the form of videoconferencing solutions. However, WebRTC has the potential of going beyond and catalyze a new class of services providing more than calls with capabilities such as mass-scale real-time media broadcasting, enriched and augmented video, person-to-machine and machine-to-machine communications. In this talk we introduce the technologies required for implementing these ideas and some early experiments performed in the Kurento open source software community in areas such as entertainment, video surveillance, interactive media broadcasting, gaming or advertising. To conclude, we discuss their potential business applications beyond plain call models.
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...Luis Lopez
Creating WebRTC applications is simple, but making them scalable in a robust and efficient way isn’t. Due to this, many application developers do not dare to use their own infrastructures and instead prefer to leverage third party clouds for creating their scalable WebRTC services. These clouds are private and usually expose some kind of API that developers consume for accessing WebRTC communication capabilities such as group-communications, media recording or media transcoding. This model is very convenient for creating simple vertical applications, but it also has some drawbacks. First, these clouds billing models are based on pay-per-minute schemes that are not always compatible with the business models desired by application developers. Second, the exposed APIs tend to be restrictive and limit the freedom of developers for innovating. Third, these clouds, being fully private, cannot be extended or customized for specific needs developers may have.
In this talk, we propose an alternative solution to private WebRTC PaaS models based on leveraging novel cloud orchestration technologies such as Cloud Formation or Heat Templates for enabling developers to create their very own platform on top of public clouds. We analyze the technological ingredients required for enabling such models and present some experiments and production deployments showing how any developer may bring her own IaaS cloud for growing on it a full featured WebRTC platform with elastic scalability and full control on the billing and on the underlying technology evolution.
The future of multimedia communications and services: Kurento and it's roleLuis Lopez
This is a presentation specifically created for the GSMA interest group on WebRTC. This presentations introduces Kurento from the perspective of operators. Kurento is a multimedia development framework. It has been created to ease the life of multimedia application developers. Using multimedia capabilities such as embedding a video onto your app or establishing a video conferencing link between two clients may be tricky, but there is no rocket science there. However, for applications requiring more advanced features things quickly get unmanageable. If you have been involved in multimedia projects, you probably know that features such as interoperable group communications, different communication roles (e. g.. publishers/viewers), video transforming and transcoding, video storage and tagging, integration into legacy video/voice infrastructures, computer vision, augmented reality, integration with external systems and databases and many others, pose quite a complex challenge, which usually requires huge expertise and effort. Specially when real-time communications are involved. If this is your case, Kurento will help you.
Advanced Kurento Real Time Media Stream ProcessingFIWARE
Advanced Kurento Real Time Media Stream Processing presentation, by Juan Ángel Fuentes.
Stream Oriented GE. How-to sessions. 1st FIWARE Summit, Málaga, Dec. 13-15, 2016.
Google and Intel speak on NFV and SFC service delivery
The slides are as presented at the meet up "Out of Box Network Developers" sponsored by Intel Networking Developer Zone
Here is the Agenda of the slides:
How DPDK, RDT and gRPC fit into SDI/SDN, NFV and OpenStack
Key Platform Requirements for SDI
SDI Platform Ingredients: DPDK, IntelⓇRDT
gRPC Service Framework
IntelⓇ RDT and gRPC service framework
GlueCon 2018: Are REST APIs Still Relevant Today?LaunchAny
A look at common API styles available today, a look back at historical API styles, and guidance for selecting the right API styles for your organization. Deep-dive of HTTP, mentioned in the presentation, can be found at: http://bit.ly/power-http
WebRTC/Kurento/NUBOMEDIA Hackathon at IETF’96Boni García
In this hackathon you will be playing with WebRTC technologies and standards for creating rich real-time communication applications. For this, in addition to using WebRTC clients, we will introduce a WebRTC infrastructure suitable for providing advanced capabilities that include group communications, recording, transcoding and media processing. This infrastructure will be based on NUBOMEDIA: a cloud Platform as a Service where you will be able to deploy, execute and scale your WebRTC applications in a seamless way.
In this presentation we introduce Nubomedia (http://www.nubomedia.eu), the first open source PaaS platform capable of acting as an “infinite media server”. Most state-of-the-art media servers just provide three types of capabilities: transcoding, group communications and recording. Nubomedia is a research effort funded by the European Commission which, in addition to these, provides flexible media processing features including computer vision, augmented reality, media blending, media filtering and much more. In a world where plain communications are becoming a commodity, business models based on “just calls” are not really profitable. For this reason, these advanced media processing mechanisms open new opportunities given that they might provide differentiation and added value to applications in many specific verticals including e-Health, e-Learning, security, entertainment, games, advertising or CRMs just to cite a few.
Getting More Out of the Node.js, PHP, and Python Agents - AppSphere16AppDynamics
Hear from our product management and engineering teams about three topics that will help you unlock more value from our dynamic languages agents:
• Diagnosing a slow business transaction in Node.js
• Using the agent APIs to create custom transactions and exit calls
• Getting the Java proxy out of your Docker containers and connecting multiple agents to one proxy
For more information, go to: www.appdynamics.com
ASP.NET Web API is the de facto framework for building HTTP-based services in the .NET ecosystem. With its WCF and MVC lineage, Web API brings to the table better architecture, easier configuration, increased testability, and as always, it's customizable from top to bottom. But to properly use Web API it is not enough to get familiar with its architecture and API, you also need to really understand what HTTP is all about. HTTP is the most common application layer protocol in the world, and yet, not many web developers are familiar with HTTP concepts such as of chunking, caching, and persisted connections. In this full-day tutorial, we will focus on designing and implementing HTTP-based services with ASP.NET Web API, and you will learn how to better use it to implement the features provided by HTTP.
Recording and media manipulation of WebRTC streamsLuis Lopez
This presentation introduces Kurento technologies to developers at the WebRTC Conference & Expo 2014 in San Jose. It focuses on Kurento Client APIs and on its capabilities for recording and manipulating the audio and video streams in WebRTC sessions.
Developing rich multimedia applications with Kurento: a tutorial for Java Dev...Luis Lopez
This presentation contains a tutorial devoted to showing how Java developers can create rich multimedia applications with Kurento. Java developers will find natural Kurento development model, which is based on standard Java EE technologies and is inspired on the WWW Servlet model.
If you have ever developed a Web application, you may be familiar with this scheme. At the browser, HTML and JavaScript code is in charge of user interaction and generates HTTP requests to the server. This code is usually programmed with the help of APIs such as jQuery, DOM, XHR or others. Upon reception, HTTP requests are processed by some kind of server side technology (e. g.. PHP, Java, Ruby, etc.) using service APIs providing features such as DB access, communications, transactions, XML parsing, and others. As a result, an HTTP response is issued and sent back to the client. Following this scheme, both server and client side APIs are just capabilities simplifying developer work and providing abstractions for programming faster and more efficiently.
Kurento technologies adapt to the Web development model so that, from a programmer perspective, Kurento can be seen just as an additional set of APIs. Developers does not need to learn novel programming schemes and can reuse all their knowledge and previous background on WWW application development. When you need multimedia, just use Kurento APIs. For the rest, use your preferred APIs or reuse previous code. Kurento APIs have been designed for simplicity and Web developers will find them familiar and intuitive. Most of the low level details related to codecs, formats, protocols, profiles and containers are abstracted by the framework. Programmers just concentrate on specifying the sequence of processing steps that they want to execute on the media flows.
WebRTC services have already permeated in corporate communications in the form of videoconferencing solutions. However, WebRTC has the potential of going beyond and catalyze a new class of services providing more than calls with capabilities such as mass-scale real-time media broadcasting, enriched and augmented video, person-to-machine and machine-to-machine communications. In this talk we introduce the technologies required for implementing these ideas and some early experiments performed in the Kurento open source software community in areas such as entertainment, video surveillance, interactive media broadcasting, gaming or advertising. To conclude, we discuss their potential business applications beyond plain call models.
elasticRTC -- how to have your own WebRTC cloud scaling to be billions in min...Luis Lopez
Creating WebRTC applications is simple, but making them scalable in a robust and efficient way isn’t. Due to this, many application developers do not dare to use their own infrastructures and instead prefer to leverage third party clouds for creating their scalable WebRTC services. These clouds are private and usually expose some kind of API that developers consume for accessing WebRTC communication capabilities such as group-communications, media recording or media transcoding. This model is very convenient for creating simple vertical applications, but it also has some drawbacks. First, these clouds billing models are based on pay-per-minute schemes that are not always compatible with the business models desired by application developers. Second, the exposed APIs tend to be restrictive and limit the freedom of developers for innovating. Third, these clouds, being fully private, cannot be extended or customized for specific needs developers may have.
In this talk, we propose an alternative solution to private WebRTC PaaS models based on leveraging novel cloud orchestration technologies such as Cloud Formation or Heat Templates for enabling developers to create their very own platform on top of public clouds. We analyze the technological ingredients required for enabling such models and present some experiments and production deployments showing how any developer may bring her own IaaS cloud for growing on it a full featured WebRTC platform with elastic scalability and full control on the billing and on the underlying technology evolution.
The future of multimedia communications and services: Kurento and it's roleLuis Lopez
This is a presentation specifically created for the GSMA interest group on WebRTC. This presentations introduces Kurento from the perspective of operators. Kurento is a multimedia development framework. It has been created to ease the life of multimedia application developers. Using multimedia capabilities such as embedding a video onto your app or establishing a video conferencing link between two clients may be tricky, but there is no rocket science there. However, for applications requiring more advanced features things quickly get unmanageable. If you have been involved in multimedia projects, you probably know that features such as interoperable group communications, different communication roles (e. g.. publishers/viewers), video transforming and transcoding, video storage and tagging, integration into legacy video/voice infrastructures, computer vision, augmented reality, integration with external systems and databases and many others, pose quite a complex challenge, which usually requires huge expertise and effort. Specially when real-time communications are involved. If this is your case, Kurento will help you.
Advanced Kurento Real Time Media Stream ProcessingFIWARE
Advanced Kurento Real Time Media Stream Processing presentation, by Juan Ángel Fuentes.
Stream Oriented GE. How-to sessions. 1st FIWARE Summit, Málaga, Dec. 13-15, 2016.
Google and Intel speak on NFV and SFC service delivery
The slides are as presented at the meet up "Out of Box Network Developers" sponsored by Intel Networking Developer Zone
Here is the Agenda of the slides:
How DPDK, RDT and gRPC fit into SDI/SDN, NFV and OpenStack
Key Platform Requirements for SDI
SDI Platform Ingredients: DPDK, IntelⓇRDT
gRPC Service Framework
IntelⓇ RDT and gRPC service framework
GlueCon 2018: Are REST APIs Still Relevant Today?LaunchAny
A look at common API styles available today, a look back at historical API styles, and guidance for selecting the right API styles for your organization. Deep-dive of HTTP, mentioned in the presentation, can be found at: http://bit.ly/power-http
WebRTC/Kurento/NUBOMEDIA Hackathon at IETF’96Boni García
In this hackathon you will be playing with WebRTC technologies and standards for creating rich real-time communication applications. For this, in addition to using WebRTC clients, we will introduce a WebRTC infrastructure suitable for providing advanced capabilities that include group communications, recording, transcoding and media processing. This infrastructure will be based on NUBOMEDIA: a cloud Platform as a Service where you will be able to deploy, execute and scale your WebRTC applications in a seamless way.
In this presentation we introduce Nubomedia (http://www.nubomedia.eu), the first open source PaaS platform capable of acting as an “infinite media server”. Most state-of-the-art media servers just provide three types of capabilities: transcoding, group communications and recording. Nubomedia is a research effort funded by the European Commission which, in addition to these, provides flexible media processing features including computer vision, augmented reality, media blending, media filtering and much more. In a world where plain communications are becoming a commodity, business models based on “just calls” are not really profitable. For this reason, these advanced media processing mechanisms open new opportunities given that they might provide differentiation and added value to applications in many specific verticals including e-Health, e-Learning, security, entertainment, games, advertising or CRMs just to cite a few.
Getting More Out of the Node.js, PHP, and Python Agents - AppSphere16AppDynamics
Hear from our product management and engineering teams about three topics that will help you unlock more value from our dynamic languages agents:
• Diagnosing a slow business transaction in Node.js
• Using the agent APIs to create custom transactions and exit calls
• Getting the Java proxy out of your Docker containers and connecting multiple agents to one proxy
For more information, go to: www.appdynamics.com
ASP.NET Web API is the de facto framework for building HTTP-based services in the .NET ecosystem. With its WCF and MVC lineage, Web API brings to the table better architecture, easier configuration, increased testability, and as always, it's customizable from top to bottom. But to properly use Web API it is not enough to get familiar with its architecture and API, you also need to really understand what HTTP is all about. HTTP is the most common application layer protocol in the world, and yet, not many web developers are familiar with HTTP concepts such as of chunking, caching, and persisted connections. In this full-day tutorial, we will focus on designing and implementing HTTP-based services with ASP.NET Web API, and you will learn how to better use it to implement the features provided by HTTP.
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/2ohJwnX.
Matt Heath discusses why Go is suited for a microservices architecture, the language features that make it particularly attractive to high volume, low latency, distributed applications, and how easy it is to adopt into existing systems and organisations. Filmed at qconlondon.com.
Matt Heath works as a Distributed Systems Engineer at Monzo.
Web 2.0 has brought new life to the Internet, providing a more interactive user experience that is comparable to fat client desktop applications. Web 2.0 introduces new types of services that are designed to share presentation and multimedia objects (presentation services) and give the ability to develop a new application by combining services from different sites or applications (e.g. through Mashups). One of the popular components of today’s Web 2.0 is Rich Internet Applications (RIAs). They include new features to process information and interactive user interfaces based on Ajax, Flex, JavaFX, Silverlight, etc. The user no longer has to wait for a new page to load whenever he makes a request; some information retrieval now happens asynchronously in the background while the user is interacting with the GUI, while other requests can be managed by logic that runs on the client without requiring calls over the Internet to the server side. However, what users see is merely a facade. It is powered by server-side distributed Business services that process data according to client requests. The question then becomes how services should be designed to support the requirements of RIA clients. We will look at RIA support services that are included in a SOA infrastructure and are managed through SOA governance tools.
Cloud Native Night, April 2018, Mainz: Workshop led by Jörg Schad (@joerg_schad, Technical Community Lead / Developer at Mesosphere)
Join our Meetup: https://www.meetup.com/de-DE/Cloud-Native-Night/
PLEASE NOTE:
During this workshop, Jörg showed many demos and the audience could participate on their laptops. Unfortunately, we can't provide these demos. Nevertheless, Jörg's slides give a deep dive into the topic.
DETAILS ABOUT THE WORKSHOP:
Kubernetes has been one of the topics in 2017 and will probably remain so in 2018. In this hands-on technical workshop you will learn how best to deploy, operate and scale Kubernetes clusters from one to hundreds of nodes using DC/OS. You will learn how to integrate and run Kubernetes alongside traditional applications and fast data services of your choice (e.g. Apache Cassandra, Apache Kafka, Apache Spark, TensorFlow and more) on any infrastructure.
This workshop best suits operators focussed on keeping their apps and services up and running in production and developers focussed on quickly delivering internal and customer facing apps into production.
You will learn how to:
- Introduction to Kubernetes and DC/OS (including the differences between both)
- Deploy Kubernetes on DC/OS in a secure, highly available, and fault-tolerant manner
- Solve operational challenges of running a large/multiple Kubernetes cluster
- One-click deploy big data stateful and stateless services alongside a Kubernetes cluster
apidays LIVE Jakarta - REST the events: REST APIs for Event-Driven Architectu...apidays
apidays LIVE Jakarta 2021 - Accelerating Digitisation
February 24, 2021
REST the events: REST APIs for Event-Driven Architecture
Mark Teehan, Principal Solution Engineer at Confluent APAC
Building high performance microservices in finance with Apache ThriftRX-M Enterprises LLC
Apache Roadshow Chicago Talk on May 14, 2019
In this talk we’ll look at the ways Apache Thrift can solve performance problems commonly facing next generation applications deployed in performance sensitive capital markets and banking environments. The talk will include practical examples illustrating the construction, performance and resource utilization benefits of Apache Thrift. Apache Thrift is a high-performance cross platform RPC and serialization framework designed to make it possible for organizations to specify interfaces and application wide data structures suitable for serialization and transport over a wide variety of schemes. Due to the unparalleled set of languages supported by Apache Thrift, these interfaces and structs have similar interoperability to REST type services with an order of magnitude improvement in performance. Apache Thrift services are also a perfect fit for container technology, using considerably fewer resources than traditional application server style deployments. Decomposing applications into microservices, packaging them into containers and orchestrating them on systems like Kubernetes can bring great value to an organization; however, it can also take a very fast monolithic application and turn it into a high latency web of slow, resource hungry services. Apache Thrift is a perfect solution to the performance and resource ills of many microservice based endeavors.
In the realm of real-time applications, Large Language Models (LLMs) have long dominated language-centric tasks, while tools like OpenCV have excelled in the visual domain. However, the future (maybe) lies in the fusion of LLMs and deep learning, giving birth to the revolutionary concept of Large Action Models (LAMs).
Imagine a world where AI not only comprehends language but mimics human actions on technology interfaces. For example, the Rabbit r1 device presented at CES 2024, driven by an AI operating system and LAM, brings this vision to life. It executes complex commands, leveraging GUIs with unprecedented ease.
In this presentation, join me on a journey as a software engineer tinkering with WebRTC, Janus, and LLM/LAMs. Together, we’ll evaluate the current state of these AI technologies, unraveling the potential they hold for shaping the future of real-time applications.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Welcome to the first live UiPath Community Day Dubai! Join us for this unique occasion to meet our local and global UiPath Community and leaders. You will get a full view of the MEA region's automation landscape and the AI Powered automation technology capabilities of UiPath. Also, hosted by our local partners Marc Ellis, you will enjoy a half-day packed with industry insights and automation peers networking.
📕 Curious on our agenda? Wait no more!
10:00 Welcome note - UiPath Community in Dubai
Lovely Sinha, UiPath Community Chapter Leader, UiPath MVPx3, Hyper-automation Consultant, First Abu Dhabi Bank
10:20 A UiPath cross-region MEA overview
Ashraf El Zarka, VP and Managing Director MEA, UiPath
10:35: Customer Success Journey
Deepthi Deepak, Head of Intelligent Automation CoE, First Abu Dhabi Bank
11:15 The UiPath approach to GenAI with our three principles: improve accuracy, supercharge productivity, and automate more
Boris Krumrey, Global VP, Automation Innovation, UiPath
12:15 To discover how Marc Ellis leverages tech-driven solutions in recruitment and managed services.
Brendan Lingam, Director of Sales and Business Development, Marc Ellis
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Monitoring Java Application Security with JDK Tools and JFR Events
Kurento cpmx
1. Real-time Multimedia Stream Processing
Developing rich multimedia applications with Kurento
The Stream oriented GE:
Developing rich multimedia applications with Kurento
igracia@naevatec.com
h0p://www.kurento.org
Open APIs for Open Minds
h"ps://join.me/kurentoCPMX
2. Mul8media
infrastructures
for
the
Future
Internet
Media
is
here
Media
got
there
Media
got
there
Analyze
Transform
Store
Transport
Enrich
Augment
Adapt
Sensors
Context
Events
Media
is
here
2
5. • Interoperable
media
exchange
(mul8plaUorm/mul8protocol)
• WebRTC,
RTP,
HTTP
(video
tag),
etc.
• Process
media
(Computer
vision,
augmented
reality,
media
indexing,
etc.)
• Media
and
metadata
recording
and
recovery
• Transform
and
adapt
media
(H.264,
H.263,
VP8,
Ogg,
and
others)
• Media
rou8ng
and
mixing
• Etc.
Mul8media
infrastructure
• REST
API
• JavaScript
API
• Java
API
APIs
• LGPL
2.1
Is
distributed
through
a
flexible
FOSS
license
What’s
Kurento
5
6. Kurento
Media
Server
(KMS):
the
nucleus
of
Kurento
• KMS
is
a
middleware
for
media
streams
– Receives
the
stream
– Process
the
stream
– Issues
the
stream
Send
Receive
Analyze
Augment
Enrich
Transform
Transcode
Record
Process
Replicate
Media
Source
Media
Sink
KMS
6
7. The
Media
API:
The
API
for
accessing
KMS
capabili8es
Send
Receive
Analyze
Augment
Enrich
Transform
Transcode
Record
Process
Replicate
Media
Source
Media
Sink
KMS
Java
Media
API
JavaScript
Media
API
REST
API
Applica8ons
define
the
processing
of
streams
geeng
through
KMS
7
8. Media
API:
Media
Elements
and
Media
Pipelines
Sink%SRC%
Sink%
SRC%
SRC%Sink%
Sink%
§ Media Element
• Provides a specific media
functionality
› Send/receive media
› Process media
› Transform media
• Exchange media through
› Sources
› Sinks
§ Media pipeline
• Chain of media elements
implementing the desired media
logic.
• The Media API provides the
capability of creating media
pipelines by joining media
elements of the toolbox
Media
Element
Sink
SRC
8
9. Media
API:
trivial
example
(Java)
MediaPipeline
mp
=
contentSession.getMediaPipelineFactory().create();
PlayerEndpoint
playerEndpoint
=
mp.newPlayerEndpoint(“file:///myFile.webm”).build();
H2pGetEndpoint
h"pEndpoint
=
mp.newH"pGetEndpoint().terminateOnEOS().build();
playerEndpoint.connect(h"pEndpoint);
h"pEndpoint.getUrl();
//URL
where
the
media
is
made
available
Media
Pipeline
(inside
KMS)
H"pGetEndpoint
Media
from
file
or
URI
HTTP
media
streaming
Sink
SRC
PlayerEndpoint
9
10. Is
that
enough?
Think
about
the
WWW
development
model
Process
WWW
request
-‐ DDBB
access
-‐ Authen8ca8on
-‐ XML
processing
-‐ Etc.
HTTP
request:
I
want
this
resource
HTTP
response:
The
resource
• Intui8on
behind
the
WWW
model
– Client
asks
what
it
wants
• GET
/this_resource
HTTP/1.1
– Server
side
APIs
execute
the
associated
processing
You
develop
this
using
…
• Servlet
• JSP
• ASP
• PHP
• Ruby
on
Rails
• CGI
• Etc.
10
11. We
need
an
equivalent
model:
the
role
of
the
Signaling
Plane
• We
need
“something”
with
the
capability
of
nego8a8ng
what,
when
and
how
media
is
exchanged
• A
protocol
for
“saying”
– I
want
“this
media”
…
• Iden8fica8on
of
the
media
to
exchange
– File
in
hard-‐drive,
IP
camera,
user,
etc.
– in
“this
way”
…
• Iden8fica8on
of
the
processing
of
media
– Augmented,
analyzed,
etc.
– with
“this
format”
…
• Quality
– Codec,
screen-‐size,
frame-‐rate,
etc.
– at
“this
moment”
• Stream
control
– Play,
stop,
start,
pause,
etc.
11
12. Don’t
get
it?
think
about
WWW
development
again
…
Process
WWW
request
-‐ DDBB
access
-‐ Authen8ca8on
-‐ XML
processing
-‐ Etc.
HTTP
request:
I
want
this
resource
HTTP
response:
The
resource
Process
media
request
-‐ Media
API
-‐ DDBB
access
-‐ Authen8ca8on
-‐ XML
processing
-‐ Etc.
Signaling
request:
I
want
this
media
Signaling
response:
The
media
is
here
This
is
how
you
create
WWW
applica8ons
(Servlets,
ASP,
PHP,
Rails,
etc.)
This
is
how
you
create
Kurento
enabled
applica8ons:
Mul8media
RTC
is
just
another
feature
of
your
applica8on
You,
as
a
programmer,
create
this
12
13. Abstrac8ng
the
signaling
plane:
The
Content
Handler
KMS
Sink
SRC
Sink
SRC
Sink
SRC
Sink
Media
API
REST
API
(Open
API
protocol)
The
Content
Handler
Equivalent
to
a
Servlet/ASP/PHP
script
Exposes
APIs
for
specifying:
-‐ when
receiving
“this
request”…
-‐ …
execute
“this
logic”
Developer
can
use
the
media
API
Code
building
the
media
pipeline
and
execu8ng
the
applica8on
logic
the
developer
wants
13
14. Kurento
Applica8on
Server:
The
container
of
Handlers
• Is
an
extension
of
Java
EE
technologies.
• Compa8ble
with
all
Java
EE
Servlet
containers
• Hold
Handlers
– Your
specific
applica8on
code
• Receives
signaling
requests:
– I
want
“this
media”
in
this
way
…
• Dispatches
request
to
the
appropriate
handler
– @annota8ons
based
mapping
• Generate
an
answer
showing
“where
and
how
to
find
the
media”
– URL
where
media
is
located
– Nego8ated
SDP
Java
EE
compaJble
container
HTTP
Servlet
SIP
Servlet
Web
services
Kurento
REST
API
Specific
handler
implementa8ons
Media
API
DD.BB.
Kurento
ApplicaJon
Server
(KAS)
Other
java
APIs.
14
15. Kurento
Architecture:
pueng
it
all
together
Kurento
Media
Server
(KMS)
Receive
Video
Augmented
Reality
Send
Video
Computer
Vision
Video
Playing
and
Recording
Java
EE
compaJble
container
HTTP
Servlet
SIP
Servlet
Web
services
Kurento
REST
API
Specific
handler
implementa8ons
Signaling
and
WWW
traffic
Media
Media
Signaling
and
WWW
traffic
Media
API
DD.BB.
Kurento
ApplicaJon
Server
(KAS)
Other
java
APIs.
15
16. Applica8on
execu8on
flow
Client
Code
Applica8on
Server
(KAS)
Media
Server
(KMS)
I
want
this
media
in
this
way
…
(JSON-‐RPC
request)
Commands
reques8ng
the
crea8on
of
a
pipeline
What
you
want
is
here
…
(JSON-‐RPC
answer)
Media
negoJaJon
phase
Media
exchange
phase
1
2
Specific
applica8on
logic
at
the
server-‐side
(Content
Handler)
Media
pipeline
creaJon
Media
exchange
between
client
and
server
16
17. Content
Handler:
trivial
example
//Specify
the
type
of
service
provided
by
this
handler:
Player,
Recorder,
WebRTC,
RTP,
etc.
@H2pPlayerService(path
=
"/player”)
//Mapping
of
handler
specified
in
path
public
class
MyPlayerHandler
extends
H"pPlayerHandler
{
@Override
public
void
onContentRequest(H"pPlayerSession
contentSession)
{
//Thie
client
wants
the
media
this
handler
provides
//Create
the
pipeline
for
providing
the
media
}
@Override
public
void
onContentStarted(H"pPlayerSession
contentSession)
{
//Media
started
flowing,
you
can
execute
addi8onal
ac8ons
}
@Override
Public
void
onSessionTerminated(H"pPlayerSession
contentSenssion){
//Media
exchange
termianted,
you
can
collect
your
resources
}
17
18. Let’s
develop
with
Kurento
• What
you
need
– A
Kurento
instance
• You
can
install
your
own
Kurento
instance
• You
can
launch
a
Kurento
instance
at
the
FI-‐LAB
(FI-‐WARE
project)
– h"p://lab.fi-‐ware.org
• Geeng
help
– FI-‐WARE
catalogue
• h"p://catalogue.fi-‐ware.org/enablers/stream-‐oriented-‐kurento
– Kurento
web
site
• h"p://www.kurento.org
– Kurento
mailing
list
• h"ps://groups.google.com/forum/#!forum/kurento
– Twi"er
• @kurentoms
19. • FI-‐LAB
– Working
instance
of
FI-‐WARE
enabling
free
experimenta8on
with
technology
– h"p://lab.fi-‐ware.org
• Crea8ng
a
Kurento
instance
from
an
image
– Use
latest
version
of
Kurento
images.
• Crea8ng
a
Kurento
instance
using
recipes
– Use
Ubuntu
13.10
clear
image
– Use
latest
version
of
Kurento
recipes
• Accessing
the
Kurento
demo
at
FI-‐LAB
– h"p://kurento.lab.fi-‐ware.org:8080/fi-‐lab-‐demo
19
Kurento
at
the
FI-‐LAB
20. Kurento
Hello
World:
Playing
a
file
with
an
HTML5
client
Media
Pipeline
H"pGetEndpoint
Media
from
file
or
URI
HTTP
media
streaming
Sink
SRC
PlayerEndpoint
Media
API
REST
API
(Open
API
protocol)
Handler
code
I
want
“this
media”
Media
is
“at
this
URL”
20
21. Playing
a
file
with
an
HTML5
client:
Handler
code
@H"pPlayerService(path
=
"/player”)
public
class
MyPlayerHandler
extends
H"pPlayerHandler
{
@Override
public
void
onContentRequest(H"pPlayerSession
contentSession)
throws
Excep8on
{
MediaPipeline
mp
=
contentSession.getMediaPipelineFactory().create();
contentSession.releaseOnTerminate(mp);
PlayerEndpoint
playerEndpoint
=
mp.newPlayerEndpoint(
"h2p://media.w3.org/2010/05/sintel/trailer.webm").build();
contentSession.setA"ribute("player",
playerEndpoint);
H2pGetEndpoint
h2pEndpoint
=
mp.newH2pGetEndpoint().terminateOnEOS().build();
playerEndpoint.connect(h2pEndpoint);
contentSession.start(h"pEndpoint);
}
@Override
public
void
onContentStarted(H"pPlayerSession
contentSession)
{
PlayerEndpoint
playerEndpoint
=
(PlayerEndpoint)
contentSession.getA"ribute("player");
playerEndpoint.play();
}
}
Source:
h"ps://github.com/Kurento/kurento-‐media-‐framework/blob/develop/kmf-‐samples/kmf-‐tutorial/src/main/java/com/kurento/tutorial/
MyPlayerHandler.java
21
22. Playing
a
file
with
an
HTML5
client:
client
code
<!DOCTYPE
html>
<html>
<head>
<script
src="./js/kws-‐content-‐api.js"></script>
<script>
var
conn;
func8on
start()
{
var
op8ons
=
{
remoteVideoTag
:
"remoteVideo"
};
conn
=
new
kwsContentApi.KwsContentPlayer("./player",
op8ons);
}
func8on
terminate()
{
conn.terminate();
}
</script>
</head>
<body>
<bu"on
onclick="start();">Start</bu"on>
<bu"on
onclick="terminate();">Terminate</bu"on>
<br
/>
<video
id="remoteVideo"
autoplay></video>
</body>
</html>
Source:
h"ps://github.com/Kurento/kurento-‐media-‐framework/blob/develop/kmf-‐samples/kmf-‐tutorial/src/main/
webapp/player.html
22
23. Playing
a
file
with
an
HTML5
client:
See
the
example
working
h"ps://www.youtube.com/watch?v=n5BQlhYgGSo
23
24. Media
Pipeline
Adding
Computer
Vision
H"pGetEndpoint
Media
from
file
or
URI
HTTP
media
streaming
Sink
SRC
PlayerEndpoint
SRC
Sink
JackVaderFilter
Media
API
REST
API
(Open
API
protocol)
Handler
code
I
want
“this
media”
Media
is
“at
this
URL”
24
27. Adding
Computer
Vision:
See
the
example
working
h"ps://www.youtube.com/watch?v=yJAQs23eoXw
27
28. WebRTC
loopback
Kurento
Media
Server
WebRTC
Streaming
Media
API
JSON-‐RPC
API
Handler
code
I
want
“this
media”
(offer
SDP)
Media
is
“here”
(answer
SDP)
Sink
SRC
28
Kurento
ApplicaJon
Server
WebRtcEndpoint
Client
Browser
31. WebRTC
loopback:
see
the
example
working
h"ps://www.youtube.com/watch?v=HaVqO06uuNA
31
32. WebRTC
recording
Media
Pipeline
WebRTC
Streaming
Media
API
REST
API
(Open
API
protocol)
Handler
code
I
want
“this
media
(SDP)”
Media
is
“at
here
(SDP)”
Sink
SRC
Sink
Media
to
file
or
URI
32
33. WebRTC
recorder:
Handler
code
33
Source
h"ps://github.com/Kurento/kurento-‐media-‐framework/blob/develop/kmf-‐samples/kmf-‐tutorial/src/main/java/com/kurento/
tutorial/MyWebRtcRecorder.java
Source
of
handler
playing
the
recorded
video:
h"ps://github.com/Kurento/kurento-‐media-‐framework/blob/develop/kmf-‐samples/kmf-‐tutorial/src/main/java/com/kurento/
tutorial/MyPlayerRecording.java
@WebRtcContentService(path
=
"/webRtcRecorder")
public
class
MyWebRtcRecorder
extends
WebRtcContentHandler
{
@Override
public
void
onContentRequest(WebRtcContentSession
contentSession)
throws
Excep8on
{
MediaPipeline
mp
=
contentSession.getMediaPipelineFactory().create();
contentSession.releaseOnTerminate(mp);
WebRtcEndpoint
webRtcEndpoint
=
mp.newWebRtcEndpoint().build();
RecorderEndpoint
recorderEndpoint
=
mp.newRecorderEndpoint("file:///tmp/recording").build();
contentSession.setA"ribute("recorder",
recorderEndpoint);
webRtcEndpoint.connect(webRtcEndpoint);
webRtcEndpoint.connect(recorderEndpoint);
contentSession.start(webRtcEndpoint);
}
@Override
public
void
onContentStarted(WebRtcContentSession
contentSession)
{
RecorderEndpoint
recorderEndpoint
=
(RecorderEndpoint)
contentSession.getA"ribute("recorder");
recorderEndpoint.record();
}
}
33
43. WebRTC
game:
see
the
example
working
h"ps://www.youtube.com/watch?v=5eJRnwKxgbY
43
44. Complex
applica8on
44
Result:
h"ps://www.youtube.com/watch?v=PYCw9-‐4oWWA
Sink
SRC
Sink
Sink
SRC
Sink
SRC
Sink
SRC
Sink
SRC
WebRtcEndpoint
MirrorFilter
PointerDetectorFilter
ChromaFilter
FaceOverlayFilter
Media
Pipeline
• Beyond
video-‐conferencing:
receiving
events
from
the
media
stream
– Immersive
and
personalized
adver8sing
– Games
and
entertainment
Events
(bu"ons)
Game
or
adver8sement
logic
Change
face
Change
background