Kurento: the WebRTC Modular Media Server Luis López Universidad Rey Juan Carlos Camino del Molino S/N 28943 Fuenlabrada (Spain) luis.lopez@urjc.es Boni García Universidad Rey Juan Carlos Camino del Molino S/N 28943 Fuenlabrada (Spain) boni.garcia@urjc.es Raul Benítez Universidad Rey Juan Carlos Camino del Molino S/N 28943 Fuenlabrada (Spain) raul.benitez.mejias@urjc.es Radu Tom Vlad Naevatec C/ Chile 10, Of. 8 Las Rozas de Madrid (Spain) rvlad@naevatec.com Miguel París Universidad Rey Juan Carlos Camino del Molino S/N 28943 Fuenlabrada (Spain) miguel.paris@urjc.es Micael Gallego Universidad Rey Juan Carlos Camino del Molino S/N 28943 Fuenlabrada (Spain) micael.gallego@urjc.es Jose A. Santos Naevatec C/ Chile 10, Of. 8 Las Rozas de Madrid (Spain) jcaden@naevatec.com Iván Gracia Naevatec C/ Chile 10, Of. 8 Las Rozas de Madrid (Spain) igracia@naevatec.com Santiago Carot Universidad Rey Juan Carlos Camino del Molino S/N 28943 Fuenlabrada (Spain) santiago.carot@urjc.es Francisco Gortázar Universidad Rey Juan Carlos Camino del Molino S/N 28943 Fuenlabrada (Spain) francisco.gortazar@urjc.es David Fernández Naevatec C/ Chile 10, Of. 8 Las Rozas de Madrid (Spain) dfernandez@naevatec.com Francisco Javier Lopez Naevatec C/ Chile 10, Of. 8 Las Rozas de Madrid (Spain) fjlopez@naevatec.com ABSTRACT In this paper we introduce Kurento Media Server: an open source WebRTC Media Server providing a toolbox of capabilities which include group communications, recording, routing, transcoding and mixing. Kurento supports a large number of media protocols such as WebRTC, plain RTP, RTSP or HTTP and bunch of codecs including VP8, VP9, H.264, H.263, OPUS, Speex, PCM or AMR. Kurento Media Server is based on a modular architecture, which makes it possible for developers to extend and customize its native capabilities with advanced media processing features such as computer vision, augmented reality or speech analysis. Kurento is ideal for WWW developers who find natural programming with its Java and JavaScript APIs following the traditional three tiered WWW development model. Keywords Media Server; Real-Time Multimedia, WebRTC; Modularity; Recording, Computer Vision, Augmented Reality 1. INTRODUCTION WebRTC [1] is the umbrella term for a number of emerging technologies and APIs having the ambition of bringing Real-Time Communications (RTC) to the WWW. Although still in its infancy, WebRTC is one of the technological initiatives getting most worldwide attention. WebRTC standardization bodies are investing huge efforts on addressing most of the problems of creating client-side WebRTC implementations for the WWW [1]. Thanks to this, both Chrome and Firefox browsers support it. This means that, at the time of this writing, around 2 billion devices enjoy built-in WebRTC capabilities. This number is expected to grow during the next few years as other browsers, including Edge and Safari are creating their WebRTC implementations. Originally, most WebRTC applications were based on peer-to- peer communication models. However, the use of WebRTC media servers and infrastructures for making richer applications is becoming common practice. For example, WebRTC media gateways are typical on services requiring protocol or format adaptations (as happens when integrating WebRTC with IMS), Multi Point Control Units (MCUs) are often used to support group communications, recording media servers are helpful when one needs to persist WebRTC calls, etc. In this paper, we concentrate on that infrastructure side of the problem. For this, we present Kurento [2]: a WebRTC media server and a set of client APIs making simple the development of advanced video applications for WWW and smartphone platforms. Kurento features include group communications, transcoding, recording, mixing, broadcasting and routing of Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from Permissions@acm.org. MM '16, October 15-19, 2016, Amsterdam, Netherlands © 2016 ACM. ISBN 978-1-4503-3603-1/16/10…$15.00 DOI: http://dx.doi.org/10.1145/2964284.2973798 1187