mediastreamer2 - 多媒体流引擎

原文:http://www.linphone.org/eng/documentation/dev/mediastreamer2.html

Mediastreamer2 是一个功能强大且小巧的流引擎,专门为音视频电话应用而开发。
这个库为linphone中所有的接收、发送多媒体流提供处理,包括音/视频捕获,编码和解码,渲染。

特色
  • 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, iLBC, AMR , H263, theora, MPEG4, and H264.
  • Read and write from/to a wav file
  • Read YUV pictures from a webcam (provided that it has video4linux v1 or v2 driver)
  • Display YUV pictures (using SDL library or native apis on windows)
  • Dual tones generation
  • Echo cancelation, using the extraordinary echo canceler algorithm from the speex library
  • Audio conferencing
  • Audio parametric equalizer using a FIR filter
  • Volume control, automatic gain control
Mediastreamer2可以使用动态插件进行扩展,当前可用的插件有H264,ILBCt和AMR

可移植性
  • Linux/x86 Linux/x86_64
  • Embedded Linux: ARM and Blackfin
  • Windows XP, Vista and 7
  • Mac OS X
  • Google Android

设计理念
每一个处理实体都被封装在MSFilter对像中。MSFilter使用inputs 和 outputs与其它MSFilter进行连接。
一个帮助理解的小示例:
  •      MSRtpRecv 是一个从网络接收RTP包的MSFilter,解包后将数据发送到output上
  •      MSSpeexDec的处理依赖于它的输入,如果输入的是speex编码的包,就进行解码并将结果发送到output上
  •      MSFileRec的处理也依赖于它的输入,如果输入的是16位的pcm数据则保存为wav文件.
MSFilters 可以连接在一起组成filter chain。如果我们把上面3个filter连接在一起,我们就可以得到一个处理链,接收RTP包,解码并把结果写入到wav文件中。
媒体处理任务通过“MSTicker”对像进行调度,线程每10ms处理一次MSFilter chains中的数据。可以同时存在几个MSTicker对像,例如一个处理音频filters,一个处理视频filters.


使用简单
如果你的目的是创建音视频流,可以使用audiostream.h和videostream.h中定义的简单的创建音视频流的API
如果你的目的是添加新的功能,你将高兴的发现,实现mediastreamer2 filter是非常容易的,mediastreamer2 filter是非常轻量级的封装。


文档
Mediastreamer2的doxygen文档, http://download-mirror.savannah.gnu.org/releases/linphone/mediastreamer/doc/modules.html


适合嵌入式系统
  • Mediastreamer2是轻量级的。例如,在linux/x86平台上,使用共享库的时全功能大约只有800k。
  • 纯c开发
  • 只需要oRTP、libc作为最小依赖库,其它(ffmpeg,speex,alsa...)根据需要添加
  • 提供插件机制 ,mediastreamer2很容易扩展,如编解码器
下载
Mediastreamer2 是 linphone 的一部分
你也可能使用git获取最新的源码:
git clone git://git.linphone.org/mediastreamer2.git

采用GPL许可协议 


你可能感兴趣的:(Algorithm,windows,git,filter,引擎,output)