mediastreamer2 2.12.1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

Modules
Introduction to mediastreamer2 concepts

## Modules
| Howto 1: build a sample audio graph.

## Detailed Description

# What is mediastreamer2?

mediastreamer2 is a powerful engine to make audio and video streams. mediastreamer2 is GPL (COPYING). Please understand the licencing details before using it!

Commercial support and licensing is provided by Belledonne Communications http://www.belledonne-communications.com

See also
  http://www.linphone.org/eng/documentation/dev/mediastreamer2.html

# Some definitions

- Filter: A filter is a mediastreamer2 component that process data. A filter have 0 or several INPUT pins and 0 or several OUTPUT pins. Here is a list of possible use of filters:
  - capture audio or video data.
  - play audio or display video data.
  - send or receive RTP data.
  - encode or decode audio or video data.
  - transform (resize video, resample audio...) data.
  - duplicate any kind of data.
  - mix audio/video data.
- Graph: A graph is a manager of filters connected together. It will transfer data from OUTPUT pins to INPUT pins and will be responsible for running filters.

# How do I use mediastreamer2?

Mediastreamer2 can be used for a lot of different purpose. The primary use is to manage RTP audio and video session. You will need to use the API to build filters, link them together in a graph. Then the ticker API will help you to start and stop the graph.

Basic graph example:

The above graph is composed of three filters. The first one has no input: it captures audio data directly from the drivers and provide it to the OUTPUT pin. This data is sent to the INPUT pin of the encoder which of course encodes the data and sends it to its OUTPUT pin. This pin is connected to the INPUT pin of a filter capable of building and sending RTP packets.

The modular design helps you to encode in many different formats just by replacing the "ENCODE FILTER" with another one. mediastreamer2 contains internal support for g711u, g711a, speex and gsm. Other encoding formats can be added by implementing new filters as plugins which can then be dynamically loaded.

See also
  Filters documentation