Audio and video stream management engine for telecommunications

An open-source software developed in France since 2001

Software Architecture

Mediastreamer2 is a powerful and lightweight streaming engine designed for voice and video telephony applications.

This open-source library handles the reception and transmission of all multimedia streams in Linphone, including voice/video capture, encoding, decoding, and rendering.

Mediastreamer2 integrates the oRTP library, which implements the Real-Time Transport Protocol (RTP – RFC 3550).

Design and Principles

Each processing entity is contained within an object called MSFilter. MSFilters have inputs and/or outputs that can be used to connect them to other MSFilters.

 

A simple example can illustrate this:

  • MSRtpRecv: An MSFilter that receives RTP packets from the network, unpacks them, and posts them to its single output.
  • MSSpeexDec: An MSFilter that takes everything from its input (Speex-encoded packets), decodes it, and places the result on its output.
  • MSFileRec: An MSFilter that takes everything from its input and writes it to a WAV file (assuming the input is 16-bit linear PCM).

MSFilters can be connected together to form a chain of filters. For instance, connecting the three examples above creates a processing chain that receives RTP packets, decodes them, and writes the uncompressed results to a WAV file:
MSRtpRecv –> MSSpeexDec –> MSFileRec

The execution of media processing is scheduled by an MSTicker object, a thread that wakes up every 10 ms to process data in all MSFilter chains it manages. Multiple MSTickers can operate simultaneously, for example: one for audio filters, another for video filters, or even one per processor on the machine it’s running on.

Source code

Via Gitlab

Compilation via Git

Project Git Repository
Mediastreamer2 git clone https://gitlab.linphone.org/BC/public/mediastreamer2.git
oRTP git clone https://gitlab.linphone.org/BC/public/ortp.git

Documentation

Supported Features and Standards

Version History

ORTP API Documentation

Licensing model

Mediastreamer2 is available under a dual-license model.

You can choose between an open-source license or a proprietary license. Our proprietary licenses grant you the right to modify the source code while keeping your changes closed.

Open source license

Mediastreamer2 can be integrated into your project under the terms of the open-source GNU / Affero GPLv3 license.

Source code license

Do you wish to avoid the conditions of the AGPL license? Purchase a proprietary license.

Request a Quote