Stream Oriented (Kurento)

What it is

The Stream Oriented GE is a development framework that provides an abstraction layer for multimedia capabilities, allowing non-expert developers to include interactive media components to their applications. At the heart of this enabler there is the Open API. A REST-like API, based on JSON RPC 2.0, exposing a toolbox of Media Elements that can be chained to create complex media processing pipelines. The Stream Oriented GE provides several client implementations of the Open API. The Java client allows developers to include media capabilities to Java or JEE applications. There is also a Javascript client ready to be used with NodeJS or directly in browser applications. Thanks to these, the Stream Oriented GE provides developers with a set of robust end-to-end interoperable multimedia communication capabilities to deal with the complexity of transport, encoding/decoding, processing and rendering tasks in an easy and efficient way.

Why get it

The development of interactive multimedia applications is a complex task, which usually requires specific expertise and huge investments. Stream Oriented GE brings a number of abstractions and enablers democratizing multimedia technologies and making possible to any WWW developer to create powerful applications involving advanced features such as: interoperable audio visual communications, computer vision, augmented reality, flexible media playing, recording, etc. The Stream Oriented GE will be particularly useful and intuitive for developers familiar with Java EE and JavaScript technologies, although its capabilities are also exposed through agnostic interoperable network interfaces that can be consumed from any other language of system. In a nutshell, it makes possible the development of complex interactive multimedia communications in a fast, simple and easy way.

Avaliable for:

Requirements:

Architecture

The conceptual representation of the GE architecture is shown in the following figure.


3g

The right side of the picture shows the application, which is in charge of the signaling plane and contains the business logic and connectors of the particular multimedia application being deployed. It can be build with any programming technology like Java, Node.js, PHP, Ruby, .NET, etc. The application can use mature technologies such as HTTP and SIP Servlets, Web Services, database connectors, messaging services, etc. Thanks to this, this plane provides access to the multimedia signaling protocols commonly used by end-clients such as SIP, RESTful and raw HTTP based formats, SOAP, RMI, CORBA or JMS. These signaling protocols are used by client side of applications to command the creation of media sessions and to negotiate their desired characteristics on their behalf. Hence, this is the part of the architecture, which is in contact with application developers and, for this reason, it needs to be designed pursuing simplicity and flexibility.

On the left side, we have the Media Server, which implements the media plane capabilities providing access to the low-level media features: media transport, media encoding/decoding, media transcoding, media mixing, media processing, etc. The Media Server must be capable of managing the multimedia streams with minimal latency and maximum throughput. Hence the Media Server must be optimized for efficiency.

Webpage

Stream-oriented - Kurento Fiware Webpage
Stream-oriented - Kurento Webpage

Documentation

Stream-oriented - Kurento Documentation

Download

Stream-oriented - Kurento Download

Fiware Academy

Stream-oriented - Kurento Courses

Screenshots

Click on the images to enlarge them.