mediastreamer2
mediastreamer2 is a powerful engine to make audio and video streams.
It is licensed under the GPL.
Commercial licenses and support can be ordered from antisip .
Here is a short introduction about mediastreamer2 design:
- each processing entity is contained within a MSFilter object. MSFilter(s) have inputs and/or outputs.
For example MSRtpRecv is a MSFilter that receives RTP packets from the network, unpacketize them and post them on its only output.
MSSpeexDec is a MSFilter that takes everything on its input assuming these are speex encoded packets, and decodes them and put the result on its output.
MSFileRec is a MSFilter that takes everything on its input and write it to wav file (assuming the input is 16bit linear pcm).
MSFilters can be connected together to become filter chain. If we assemble the three above examples, we obtain a processing chain that receives RTP packet, decode them and write the uncompressed result into a wav file.
Currently mediastreamer2 contains elementary bricks to do the following features:
- Read/Write from to an alsa device, an oss device, a windows waveapi device
- Send and receive RTP packets
- Encode and decode the following formats: speex, G711, GSM, H263, theora.
- Read and write from/to a wav file
- Read YUV pictures from a webcam (provided that it has video4linux driver)
- Display YUV pictures (using SDL library)
- Dual tones generation
- Echo cancelation, using the extraordinary echo canceler algorithm from the speex library
Mediastreamer2 can be extended with dynamic plugins.
A quick start little API is available to create audio and video stream, as simple as:
AudioStream *as=audio_stream_start(.../*list of parameters*/);
audio_stream_stop(as);

