|Howto 1: build a sample audio graph.|
For any use of this library beyond the rights granted to you by the GPL license, please contact antisip at <email@example.com>.
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.
Basic graph sample:
AUDIO CAPTURE --> ENCODE --> RTP FILTER --> FILTER --> FILTER
The above graph is composed of three filters. The first one has no input: tt 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 encode the data and send it to its OUTPUT pin. This pin is connected to the INPUT pin of a filter capable to build and send RTP packets.
The modular design helps you to encode in many different format just by replacing the "ENCODE FILTER" with another one. mediastreamer2 contains internal support for g711u, g711a, speex and gsm. You can add new encoding format by implementing new filters which can then be dynamically loaded.
All supported platforms: RTP receiver RTP sender tee (duplicate data)
Audio Filters: audio capture audio playback mme API (windows) alsa API (linux) oss API (linux) arts API (linux) portaudio API (macosx and other) macsnd API (native macosx API -please do more testing...-) several audio encoder/decoder: PCMU, PCMA, speex, gsm wav file reader. wav file recorder. resampler. conference bridge. volume analyser. acoustic echo canceller. dtmf generation filter.
Video Filters: video capture v4w API (windows) directshow API (windows) video4linux API (linux) video display v4w API (windows) SDL API (linux, macosx...) several audio encoder/decoder: H263-1998, MP4V-ES, theora image resizer. format converter. (RBG24, I420...)
Plugin Filters: iLBC decoder/encoder.