mediastreamer2 学习之开始认识它
2012-06-20 11:33
344 查看
What is mediastreamer2
mediastreamer2 is a powerful engine to make audio and video streams. mediastreamer2 is GPL (COPYING). Please understand the licencing details before using it!For any use of this library beyond the rights granted to you by the GPL license, please contact antisip at <jack@atosc.org>.
Some definitions.
Filter: A filter is a mediastreamer2 component that process data. A filter have 0 or several INPUT pins and 0 or several OUTPUT pins. Here is a list of possible use of filters: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.
How do I use mediastremer2?
Mediastreamer2 can be used for a lot of different purpose. The primary use is to manage RTP audio and video session. You will need to use the API to build filters, link them together in a graph. Then the ticker API will help you to start and stop the graph.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.
List of existing filters.
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: 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.
Detailed Description
mediastreamer2 Version 2.2.0
See also:
http://savannah.gnu.org/projects/linphone
What is mediastreamer2
mediastreamer2 is a powerful engine to make audio and video streams. mediastreamer2 is GPL (COPYING). Please understand the licencing details before using it!
For any use of this library beyond the rights granted to you by the GPL license, please contact antisip at <jack@atosc.org>.
Some definitions.
Filter: A filter is a mediastreamer2 component that process data. A filter have 0 or several INPUT pins and 0 or several OUTPUT pins. Here is a list of possible use of filters:
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.
How do I use mediastremer2?
Mediastreamer2 can be used for a lot of different purpose. The primary use is to manage RTP audio and video session. You will need to use the API to build filters, link them together in a graph. Then the ticker API will help you to start and stop the graph.
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.
List of existing filters.
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:
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.
Thanks
相关文章推荐
- jQuery框架学习第一天:开始认识jQuery
- jQuery框架学习第一天:开始认识jQuery
- 学习JAVA,从认识关键字开始
- 从认识易经开始——学习易经系列(1)
- 初步认识 LESS,我要开始学习LESS啦!
- 认识Ubuntu/Linux两个月的纪念兼开始学习.net framework3.0(wpf,wcf,etc)
- jQuery框架学习第一天:开始认识jQuery
- 转:jQuery框架学习第一天:开始认识jQuery
- 开始Html5学习:认识基础概念
- 转:jQuery框架学习第一天:开始认识jQuery
- 从今天开始学习iOS开发(iOS 7版)--构建一款App之教程:串联图
- 正式开始学习 SSM框架
- watir学习之旅(一):从Hello,world开始
- 打算开始学习flex和red5了
- 开始学习的道路
- 学习Uml开始
- 从0开始学习 GitHub 系列之:向GitHub 提交代码
- 认识08年开始创业的人
- 开始学习《心理学的故事》
- 开始学习RPG开发了(1)