Kurento with its Architecture and Protocols

Posted By : Oodles Admin | 22-Apr-2015

Kurento - An Introduction

 

What is Kurento?

 

 

Kurento is a media server based on WebRTC. In order to make life of developers easier, it offers client APIs for application development. Using these APIs advanced applications can be developed for Web and handheld devices. Besides WebRTC, Kurento also offers recording, broadcasting, transcoding, etc.

 

Apart from that, the features which make Kurento interesting for developers are, media processing capabilities like Computer Vision, Video Indexing, Augmented Reality and Speech Analysis.

 

Kurento offers following salient features:

  • Support for all major streaming protocols, including HTTP, RTP and WebRTC.

  • Support for Group Communication (via MCU and SFU) which enables Media Mixing and Routing.

  • Generic support for computational vision and augmented reality filters.

  • Supports Media Storage Operations for WebM and MP4.

  • Supports Media Transcodification automatically between any of the codecs supported by GStreamer.

 

Kurento API, Clients and Protocol

 

Kurento Clients are API Libraries which are exposed to application developers for faster and easier application development. By default, the clients are offered in Java and Javascript. In case if a programmer wishes to use some other programming language then Kurento Exposes Kurento Protocol. This protocol is based on internet standards such as WebSocket and JSON-RPC.

 

 

Kurento offers Media Elements which are responsible for specific media capability, for example, Player Endpoint, Recorder Endpoint, etc.

 

Basic application architecture

When Media Elements are connected together, they are called Media Pipeline. Hence, when a pipeline is created the Developers can choose which Media Elements they want to use and topology determining which media element feeds media to other media element (the connectivity). The Connectivity is controlled through connect primitive, exposed to all Kurento Client APIs.

Typically, the code snippet looks like as follows:

 

sourceMediaElement.connect(sinkMediaElement)

 

It has to be kept in mind that Media Pipelines can communicate to each other only if they belong to same pipeline. Different Media Pipelines work independently and cannot share media.

 


 

About Author

Author Image
Oodles Admin

Divya has more than 6 years of industrial experience in different domains – SAP EP, Search Quality Operations and Content Writing. She loves travelling across the world and also enjoys watching movies.

Request for Proposal

Name is required

Comment is required

Sending message..