| 1 | Project : mediastreamer2 - a modular sound and video processing and streaming |
|---|
| 2 | Email : simon.morlat_at_linphone.org |
|---|
| 3 | License : GPL |
|---|
| 4 | Home Page : http://savannah.gnu.org/projects/linphone |
|---|
| 5 | |
|---|
| 6 | Mediastreamer2 is a GPL licensed library to make audio and |
|---|
| 7 | video real-time streaming and processing. Written in pure C, |
|---|
| 8 | it is based upon the ortp library. |
|---|
| 9 | |
|---|
| 10 | Design: |
|---|
| 11 | ------ |
|---|
| 12 | |
|---|
| 13 | Using mediastreamer2 will allow you to chain filters in a graph. Each |
|---|
| 14 | filter will be responsible for doing some kind of processing and will |
|---|
| 15 | deliver data to the next filter. As an example, you could get some |
|---|
| 16 | data from network and unpack it in an RTP filter. This RTP filter will |
|---|
| 17 | deliver the data to a decoder (speex, G711...) which will deliver it |
|---|
| 18 | to a filter that is able to play the PCM data or record it into a .wav |
|---|
| 19 | file. |
|---|
| 20 | |
|---|
| 21 | There is a doxygen documentation for more information. |
|---|
| 22 | |
|---|
| 23 | Features: |
|---|
| 24 | -------- |
|---|
| 25 | |
|---|
| 26 | mediastreamer2 already provides a large set of filters. |
|---|
| 27 | Here is a complete list of built-in filters. |
|---|
| 28 | |
|---|
| 29 | All supported platforms: |
|---|
| 30 | * RTP receiver |
|---|
| 31 | * RTP sender |
|---|
| 32 | * tee (duplicate data) |
|---|
| 33 | |
|---|
| 34 | Audio Filters: |
|---|
| 35 | * audio capture & playback |
|---|
| 36 | * mme API (windows) |
|---|
| 37 | * alsa API (linux) |
|---|
| 38 | * oss API (linux) |
|---|
| 39 | * arts API (linux) |
|---|
| 40 | * portaudio API (macosx and other) |
|---|
| 41 | * audio queues (audio queue, mac os API ) |
|---|
| 42 | * audio unit (iOS) |
|---|
| 43 | * Android sound system |
|---|
| 44 | * several audio encoder/decoder: PCMU, PCMA, speex, gsm |
|---|
| 45 | * wav file reader. |
|---|
| 46 | * wav file recorder. |
|---|
| 47 | * resampler. |
|---|
| 48 | * conference bridge. |
|---|
| 49 | * volume analyser, gain control, and automatic gain control. |
|---|
| 50 | * acoustic echo canceller. |
|---|
| 51 | * dtmf and custom tone generation filter. |
|---|
| 52 | * custom tone detection |
|---|
| 53 | * parametric equalizer, can be used to compensate the spectral response of a bad quality speaker or microphone |
|---|
| 54 | * echo limiter for cases where echo cancellation cannot work because of heavy distorsion. |
|---|
| 55 | |
|---|
| 56 | Video Filters: |
|---|
| 57 | * video capture |
|---|
| 58 | * v4w API (windows, deprecated) |
|---|
| 59 | * directshow API (windows) |
|---|
| 60 | * video4linux and video4linux2 APIs (linux) |
|---|
| 61 | * video display |
|---|
| 62 | * vfw API (windows) |
|---|
| 63 | * SDL API (linux, macosx...) |
|---|
| 64 | * Android native display |
|---|
| 65 | * several audio encoder/decoder: H263-1998, MP4V-ES, H264, theora |
|---|
| 66 | * image resizer. |
|---|
| 67 | * format converter. (RBG24, I420...) |
|---|
| 68 | |
|---|
| 69 | Plugin Filters: |
|---|
| 70 | * iLBC decoder/encoder. |
|---|
| 71 | * H264 codec, based on x264 |
|---|
| 72 | |
|---|
| 73 | |
|---|
| 74 | Note that, you can build your own components/filters to do your |
|---|
| 75 | own processing or support other codecs. |
|---|
| 76 | |
|---|
| 77 | Installation procedure: |
|---|
| 78 | ----------------------- |
|---|
| 79 | |
|---|
| 80 | The program is known to run on linux, but might work |
|---|
| 81 | on any unix and windows systems. |
|---|
| 82 | |
|---|
| 83 | $> ./configure |
|---|
| 84 | $> make |
|---|
| 85 | $> su -c 'make install' |
|---|
| 86 | |
|---|
| 87 | Contact information: |
|---|
| 88 | -------------------- |
|---|
| 89 | |
|---|
| 90 | For more information on mediastreamer2, any contributions, or any remarks, |
|---|
| 91 | you can contact me at <simon.morlat_at_linphone.org>. |
|---|
| 92 | |
|---|
| 93 | Use the *linphone* mailing list for question about mediastreamer2. |
|---|
| 94 | <linphone-developers@nongnu.org>. |
|---|
| 95 | |
|---|
| 96 | Subscribe by writing to: |
|---|
| 97 | <linphone-developers-request@nongnu.org> with a subject set to "subscribe". |
|---|
| 98 | |
|---|
| 99 | Commercial support and licensing is provided by Belledonne Communications |
|---|
| 100 | http://www.belledonne-communications.com |
|---|
| 101 | |
|---|
| 102 | |
|---|