README 3.44 KB
Newer Older
aymeric's avatar
aymeric committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
Project    : mediastreamer2 - a modular sound and video processing and streaming
Email      : simon.morlat_at_linphone.org
License    : GPL
Home Page  : http://savannah.gnu.org/projects/linphone

Mediastreamer2 is a GPL licensed library to make audio and
video real-time streaming and processing. Written in pure C,
it is based upon the ortp library.

Design:
------

Using mediastreamer2 will allow you to chain filters in a graph. Each
filter will be responsible for doing some kind of processing and will
deliver data to the next filter. As an example, you could get some
data from network and unpack it in an RTP filter. This RTP filter will
deliver the data to a decoder (speex, G711...) which will deliver it
to a filter that is able to play the PCM data or record it into a .wav
file.

There is a doxygen documentation for more information.

Features:
--------

mediastreamer2 already provides a large set of filters.
Here is a complete list of built-in filters.

 All supported platforms:
 *  RTP receiver
 *  RTP sender
 *  tee (duplicate data)

 Audio Filters:
Simon Morlat's avatar
Simon Morlat committed
35
 *  audio capture & playback
aymeric's avatar
aymeric committed
36 37
 *    mme API (windows)
 *    alsa API (linux)
Simon Morlat's avatar
Simon Morlat committed
38 39 40 41
 *    oss and oss4 apis (linux)
 *    MacOS X Audio Units
 *    MacOS X Audio Queues (discouraged)
 *    iOS Audio Unit (Voice Processing audio unit for iPhone)
Simon Morlat's avatar
Simon Morlat committed
42
 *    Android sound system
Simon Morlat's avatar
Simon Morlat committed
43
 *    portaudio API (macosx and other)
aymeric's avatar
aymeric committed
44 45 46 47 48
 *  several audio encoder/decoder: PCMU, PCMA, speex, gsm
 *  wav file reader.
 *  wav file recorder.
 *  resampler.
 *  conference bridge.
smorlat's avatar
smorlat committed
49
 *  volume analyser, gain control, and automatic gain control.
aymeric's avatar
aymeric committed
50
 *  acoustic echo canceller.
Simon Morlat's avatar
Simon Morlat committed
51 52
 *  dtmf and custom tone generation filter.
 *  custom tone detection
smorlat's avatar
smorlat committed
53
 *  parametric equalizer, can be used to compensate the spectral response of a bad quality speaker or microphone
Simon Morlat's avatar
Simon Morlat committed
54
 *  echo limiter for cases where echo cancellation cannot work because of heavy distorsion.
aymeric's avatar
aymeric committed
55 56 57

 Video Filters:
 *  video capture
smorlat's avatar
smorlat committed
58
 *    v4w API (windows, deprecated)
aymeric's avatar
aymeric committed
59
 *    directshow API (windows)
smorlat's avatar
smorlat committed
60
 *    video4linux and video4linux2 APIs (linux)
61
 *    QTKit API (macosx)
aymeric's avatar
aymeric committed
62
 *  video display
Simon Morlat's avatar
Simon Morlat committed
63
 *    vfw API (windows)
64
 *    SDL API (linux, macosx [>=1.3], ...)
Simon Morlat's avatar
Simon Morlat committed
65 66
 *    Android native display
 *  several audio encoder/decoder: H263-1998, MP4V-ES, H264, theora
aymeric's avatar
aymeric committed
67 68 69 70 71
 *  image resizer.
 *  format converter. (RBG24, I420...)

 Plugin Filters:
 * iLBC decoder/encoder.
smorlat's avatar
smorlat committed
72 73
 * H264 codec, based on x264

aymeric's avatar
aymeric committed
74 75 76 77

Note that, you can build your own components/filters to do your
own processing or support other codecs.

Simon Morlat's avatar
Simon Morlat committed
78 79 80 81 82 83 84 85 86 87 88
Compilation and installation
----------------------------

* Required dependencies:
	- oRTP
	- libspeex and libspeexdsp
* Optional dependencies (for video to be enabled, see --enable-video):
	- libavcodec
	- libswscale
	- x11 with libxv-dev on linux
	- theora
aymeric's avatar
aymeric committed
89

Simon Morlat's avatar
Simon Morlat committed
90
 For Linux, MacOS, mingw compilation:
aymeric's avatar
aymeric committed
91 92 93 94 95

   $> ./configure
   $> make
   $> su -c 'make install'

Simon Morlat's avatar
Simon Morlat committed
96 97 98 99
 For Windows with Visual Studio 2008 IDE, open build/win32native/mediastreamer2.sln

More instructions and advices can be found for the mingw compilation procedure in Linphone's README.mingw.

aymeric's avatar
aymeric committed
100 101 102 103
Contact information:
--------------------

For more information on mediastreamer2, any contributions, or any remarks,
104
you can contact me at <simon.morlat_at_linphone.org>.
aymeric's avatar
aymeric committed
105 106 107 108 109 110 111

Use the *linphone* mailing list for question about mediastreamer2.
  <linphone-developers@nongnu.org>.

Subscribe by writing to:
  <linphone-developers-request@nongnu.org> with a subject set to "subscribe".

112 113
Commercial support and licensing is provided by Belledonne Communications
http://www.belledonne-communications.com
aymeric's avatar
aymeric committed
114 115