Flexible and powerful multi-stream media server ready for WebRTC and other RTP based technologies.
- Not ready yet. Work must be done on the ControlProtocol and the high level API in order to make MediaSoup usable. Working on it.
- Supports WebRTC media requirements (ICE-Lite, DTLS-SRTP, rtcp-mux, bundle) along with classic VoIP technologies (SDES-SRTP, plain RTP/RTCP).
- ICE/DTLS/RTP/RTCP over UDP and TCP.
- Multi participant real-time sessions.
- IPv6 ready.
- Signaling agnostic. MediaSoup does not deal with SIP or other signaling protocols. In the other side, it can deal with any signaling protocol.
- SDP unaware. Really, MediaSoup will not parse a SDP for you.
- Just media. MediaSoup cares about media processing so it relies on an external application which deals with your preferred signaling protocol and manages MediaSoup by using the MediaSoup ControlProtocol.
- Extremely powerful. MediaSoup is coded in C++ on top of the awesome libuv asychronous I/O library. MediaSoup is a single process application with multiple Worker threads for media handling. MediaSoup takes full advantage of your CPU capabilities.
- libuv: Cross-platform asychronous I/O C library. Version ~1.0.2 required.
- libconfig: C/C++ library for processing configuration files. Version ~1.4.8 required.
- openssl. Version >=1.0.1 required.
- libsrtp. Version >=1.5.0 required.
MediaSoup runs in any Posix system (tested in Linux Debian 7 "Wheezy" and OSX 10.9 "Mavericks") in both 32 or 64 bits architectures (Big or Little Endian).
MediaSoup requires C++11 and other features available in gcc >= 4.7 or clang >= 5.
- Install dependencies (see above).
- Compile MediaSoup:
$ make
TODO: make install
, make test
, etc still missing.
The mediasoup
binary is placed at the bin/
directory. For help on its usage run it with -h
or --help
:
$ ./bin/mediasoup --help
MediaSoup v0.0.1
Copyright (c) 2014 Iñaki Baz Castillo | https://github.com/ibc
Usage: mediasoup [options]
Options:
-c, --configfile FILE Path to the configuration file
-d, --daemonize Run in daemon mode
-p, --pidfile FILE Create a PID file (requires daemon mode)
-u, --user USER Run with the given system user
-g, --group GROUP Run with the given system group
-v, --version Show version
-h, --help Show this message
An example configuration file is provided at etc/mediasoup.default.cfg
. Rename it to mediasoup.cfg
and edit it as per your needs.
Once it is running MediaSoup configuration can be reload by sending a SIGUSR1 signal to the process:
$ kill -USR1 $(pidof mediasoup)
NOTE: Just certain options in the configuration file are reloaded (currently just logLevel).
MediaSoup Documentation is placed in the docs/
folder.
Iñaki Baz Castillo (@ibc at Github)