Modular Media Server - Modular Media Server Introduction

From RidgeRun Developer Connection
Jump to: navigation, search



  Index Next: Modular Media Server Introduction/ Modules supported





This section goes through a simple explanation of what's Modular Media Server, the functionalities the library has, and a simple explanation of how it works.

What is a Media Server

A media server is a software package that provides multimedia all-in-one features, such as video capture, encoding, streaming, recording, and, in some cases, the ability to trigger actions under certain events, for example, automatically taking a snapshot. More advanced features are also part of media servers such as deep learning inferencing, and computer vision processing, among other.

Figure 1 shows a typical media server layout, every input or output module offers different functionality according to the customer requirements.



Error creating thumbnail: Unable to save thumbnail to destination
Figure 1: Typical media server layout


What are Modular Media Server Modules

In order to understand what Modular Media Sever is, you must first understand what modules are. Modules refer to encapsulated multimedia functionalities that work independently and can be coupled with other modules in order to create more complex structures, called multimedia groups, with a specific purpose. An example of this would be coupling a recording module with encoding and a file recording module, to generate mp4 files. To support independent modules and avoid memory copies, GstInterpipe is used, which is an open-source project that enables pipeline buffers and events to flow between two or more independent pipelines.

What is Modular Media Server

Modular Media Server is a system that can use your device cameras and process the multimedia to forward it to other modules that can do post-processing such as display or to the network as a video stream. The baseline of MMS has the following modules:

  • V4L2 and Argus cameras : MMS can capture from cameras using V4L2 and NVIDIA Argus APIs.
  • H.265 and H.264 encoders : MMS offers encoding in these two video coding formats.
  • MP4 recording: provides support to save video multimedia in disc using MPEG-4 (.mp4) container.
  • MPEG recording: provides support to save video multimedia in disc using MPEG Transport Stream (.mpeg) container.

Also, new modules can be developed with minimum effort by RidgeRun's team in order to satisfy customer's requirements, such like:

  • Network stream
  • Video display
  • Deep Learning inference
  • Computer vision-based processing modules

These modules can be arranged so that you can have complex systems with main and secondary data streams. To control these modules, an interface is provided through which you can interact with the different stream flows. Different operations can be performed on these streams such as stopping, pausing, and playing, among others. A possible x86 configuration using the described above modules is:

Error creating thumbnail: Unable to save thumbnail to destination
Figure 2: x86 Modular Media Server simple pipeline diagram


Also, you can also produce a stream group using NVIDIA components as follows:

Error creating thumbnail: Unable to save thumbnail to destination
Figure 3: NVIDIA Modular Media Server simple pipeline diagram




  Index Next: Modular Media Server Introduction/ Modules supported