An open-source software developed in France since 2001
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).
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:
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.
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 |
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.